C++Builder编程中动态更改自定义打印纸张
生活随笔
收集整理的這篇文章主要介紹了
C++Builder编程中动态更改自定义打印纸张
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
C++Builder編程中動態(tài)更改自定義打印紙張
因網(wǎng)上只有Delphi例子本人在用CB編寫時發(fā)現(xiàn)有一些例子不能用,
所以一生氣就索性查了查資料自己寫了,怕網(wǎng)友們在用編程時也遇見此類情況,
就馬上傳了上來。
void __fastcall TForm1::BitBtn1Click(TObject *Sender)
{
char *ADevice, *ADriver, *APort;
THandle DeviceMode;
PDeviceMode DevMode;
int length,width;
??length=1400;
??width=2410;//設(shè)定自定義紙張的尺寸單位為0.1毫米
??ADevice =new char[100];
??ADriver =new char[100];
??APort =new char[100];
??//獲取打印機
??Printer()->GetPrinter(ADevice, ADriver, APort,DeviceMode);
??//獲取PDevMode結(jié)構(gòu)
??DevMode =(_devicemodeA*) GlobalLock((void *)DeviceMode);
??//設(shè)定可以修改的值
??DevMode->dmFields = DevMode->dmFields|DM_PAPERSIZE;
??DevMode->dmFields = DevMode->dmFields|DM_PAPERLENGTH;
??DevMode->dmFields = DevMode->dmFields|DM_PAPERWIDTH;
??//設(shè)定要修改的值
??DevMode->dmPaperSize=DMPAPER_USER;//設(shè)為自定義紙張
??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();
}
因網(wǎng)上只有Delphi例子本人在用CB編寫時發(fā)現(xiàn)有一些例子不能用,
所以一生氣就索性查了查資料自己寫了,怕網(wǎng)友們在用編程時也遇見此類情況,
就馬上傳了上來。
void __fastcall TForm1::BitBtn1Click(TObject *Sender)
{
char *ADevice, *ADriver, *APort;
THandle DeviceMode;
PDeviceMode DevMode;
int length,width;
??length=1400;
??width=2410;//設(shè)定自定義紙張的尺寸單位為0.1毫米
??ADevice =new char[100];
??ADriver =new char[100];
??APort =new char[100];
??//獲取打印機
??Printer()->GetPrinter(ADevice, ADriver, APort,DeviceMode);
??//獲取PDevMode結(jié)構(gòu)
??DevMode =(_devicemodeA*) GlobalLock((void *)DeviceMode);
??//設(shè)定可以修改的值
??DevMode->dmFields = DevMode->dmFields|DM_PAPERSIZE;
??DevMode->dmFields = DevMode->dmFields|DM_PAPERLENGTH;
??DevMode->dmFields = DevMode->dmFields|DM_PAPERWIDTH;
??//設(shè)定要修改的值
??DevMode->dmPaperSize=DMPAPER_USER;//設(shè)為自定義紙張
??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();
}
總結(jié)
以上是生活随笔為你收集整理的C++Builder编程中动态更改自定义打印纸张的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: button 样式_实战PyQt5: 1
- 下一篇: 世界定级 企业即时通讯软件