C++Builder動態(tài)更改自定義打印紙張

字號:

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();
    }