打印本文 打印本文  关闭窗口 关闭窗口  
C++Builder动态更改自定义打印纸张
作者:佚名  文章来源:不详  点击数  更新时间:2008/5/24 20:03:33  文章录入:杜斌  责任编辑:杜斌

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

打印本文 打印本文  关闭窗口 关闭窗口