C++Builder编程中动态更改自定义打印纸张

    技术2022-05-11  161

    C++Builder编程中动态更改自定义打印纸张 因网上只有Delphi例子本人在用CB编写时发现有一些例子不能用, 所以一生气就索性查了查资料自己写了,怕网友们在用编程时也遇见此类情况, 就马上传了上来。 void __fastcall TForm1::BitBtn1Click(TObject *Sender) { char *ADevice, *ADriver, *APort; THandle DeviceMode; PDeviceMode DevMode; int length,width;   length=1400;   width=2410;//设定自定义纸张的尺寸单位为0.1毫米   ADevice =new char[100];   ADriver =new char[100];   APort =new char[100];   //获取打印机   Printer()->GetPrinter(ADevice, ADriver, APort,DeviceMode);   //获取PDevMode结构   DevMode =(_devicemodeA*) GlobalLock((void *)DeviceMode);   //设定可以修改的值   DevMode->dmFields = DevMode->dmFields|DM_PAPERSIZE;   DevMode->dmFields = DevMode->dmFields|DM_PAPERLENGTH;   DevMode->dmFields = DevMode->dmFields|DM_PAPERWIDTH;   //设定要修改的值   DevMode->dmPaperSize=DMPAPER_USER;//设为自定义纸张   DevMode->dmPaperLength=length;   DevMode->dmPaperWidth=width;   //测试打印   Printer()->BeginDoc();   TextOut(Printer()->Handle, 0, 0, "-----------------",17);   Printer()->NewPage();   TextOut(Printer()->Handle, 0, 0, "++++++++++++++++++",18);   Printer()->NewPage();   Printer()->EndDoc(); }

    最新回复(0)