关于上篇修改打印机设置的补充.

博客展示了一段实现打印功能的代码。代码中获取默认打印机设置,进行副本复制,设置新的打印参数,如纸张大小、长度等,然后执行打印操作,最后还原打印机设置。涉及打印机设置的修改和恢复。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  internal void PrintProof()
  {
   PrintDocument pd = new PrintDocument();
   pd.PrintPage += new PrintPageEventHandler(pd_PrintPage);


   // 获取默认打印机设置
   PrinterData oldPD = new PrinterData();
            Printing.CustomprinterSettings.PrinterSettings ps = new Printing.CustomprinterSettings.PrinterSettings();
   ps.ChangePrinterSetting(ref oldPD, false);

   // 打印机设置Copy副本
   PrinterData newPD = new PrinterData();
   newPD = oldPD;

   // 设置新参数
   Printing.Proof pftest = (Proof)getPf();
   float height = pftest.nowPosY.Value;


   

   newPD.pmFields |= (int)DmFields.DM_DUPLEX | (int)DmFields.DM_ORIENTATION
    | (int)DmFields.DM_DEFAULTSOURCE | (int)DmFields.DM_PAPERSIZE
    | (int)DmFields.DM_PAPERLENGTH | (int)DmFields.DM_PAPERWIDTH;
   newPD.Size = Printing.CustomprinterSettings.PaperSize.DMPAPER_USER;
   newPD.pLength = (int) (height * 100 / 25.4) + common.Uitls.readPrintBlank();
   //newPD.pWidth = 1200;
   bool x = ps.ChangePrinterSetting(ref newPD, true);
   

   //PrintControl(pd);


   //PrintPreviewDialog pdialog = new PrintPreviewDialog();
   //pdialog.Document = pd;
   //pdialog.ShowDialog();
   pd.Print();

   // 还原设置
   bool y = ps.ChangePrinterSetting(ref oldPD, true);
  }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值