关于c#窗口应用程序静默打印问题(已解决2021 3 29)

目录

废话不多说 引入库
通过NuGet安装

库名

PdfiumViewer
PdfiumViewer.Native.x86_64.v8-xfa
或者
32 位的
这

关于引入包的问题这里我遇到64位库文件报错 我这里没事用用32位的,看了下网上教程需自己重新编译

打印机设置

public void printset(string printer ,string sourpath,Duplex Duplexs) {


            //string printerName = @"HP LaserJet Pro MFP M128fp";
            //string filename = @"D:\Discrete Job Pick List Report\11.pdf";
            string printerName=printer;
            string filename = sourpath;
            string pageSize = "A4";//[54] = {[PaperSize 用户定义大小 Kind=Custom Height=1169 Width=827]}{[PaperSize B5 ISO Kind=Custom Height=984 Width=693]}[42] = {[PaperSize 8" x 10.5" Kind=Custom Height=1050 Width=800]}
            PrintPDF(printerName, pageSize, filename, 1,Duplexs);
            // PrintPdf(filename);
            Console.ReadLine();

            //pdfPrint("D:\\Job Order\\111.pdf");
        
        
        }
在这里插入代码片

这是 纸张设置 打印机名 和pdf文件路径 还有双面打印的翻转

标题静默打印代码

  public static bool PrintPDF(string printer, string paperName, string filename, int copies,Duplex Duplexs)
        {
            try{
               // iTextSharp.text.Rectangle pageSize = new iTextSharp.text.Rectangle(600, 830);
               // pageSize.Left = -80;

               // PdfReader reader = new PdfReader(filename);
               // Document doc = new Document(pageSize, 0, 0, 0, 0);
               // PdfWriter writer = PdfWriter.GetInstance(doc,
               // new FileStream(".\\ccy.pdf", FileMode.Create));
               // doc.Open();



               // PdfContentByte cb;
               //     PdfImportedPage  page;
                   
               // for(int i=1;i<=reader.NumberOfPages;i++)
               // {
               //     if (i % 2 == 0) { doc.PageSize.Left = 0; }
               //     else {
               //         doc.PageSize.Left = 90;
               //     }

                    
               // doc.NewPage(); 
               // cb = writer.DirectContent;
               // page = writer.GetImportedPage(reader, i); //page #1
                
               // cb.AddTemplate(page,0,0);
               // //cb.AddTemplate(page,Scale,Scale,true,Scale,Scale,Scale,t
                   
               //}
                

               // doc.Close();

                //iTextSharp.text.Rectangle pageSize = new iTextSharp.text.Rectangle(1000, 500);
                // Document document = new Document(pageSize, 10, 10, 120, 80);
                //PdfWriter writer = PdfWriter.GetInstance(document, new FileStream(filename, FileMode.Create));

                //writer.Close();
                //filename = ".\\ccy.pdf";
               
                // Create the printer settings for our printer
                var printerSettings = new PrinterSettings
                {
                    PrinterName = printer, 
               
                    Duplex = Duplexs,
                    
                    
                   
                    Copies = (short)copies,
                    
                    

                    //双面打印开关
                  };

               
                // Create our page settings for the paper size selected
                var pageSettings = new PageSettings(printerSettings)
                {   
                    Margins=new Margins(0,0,0,0),
                

                };
                foreach (PaperSize paperSize in printerSettings.PaperSizes)
                {
                    if (paperSize.PaperName == paperName)
                    {
                       
                        pageSettings.PaperSize = paperSize;
                        
                        
                        //pageSettings.Landscape = false;
                        break;
                    }
                }

                // Now print the PDF document
                
                using (var document = PdfiumViewer.PdfDocument.Load(filename))
                {
                   
                    using (var printDocument = document.CreatePrintDocument())
                    {
                       
                        
                       
                        printDocument.PrinterSettings = printerSettings;

                        printDocument.DefaultPageSettings = pageSettings;
                     
                      
                        printDocument.PrintController = new StandardPrintController(); 
                       
                        
                        printDocument.Print();
                    }
                }
                return true;
            }
            catch
            {
                return false;
            }
        }

关于pdf打印为啥设边距没用

#公司小美女说pdf不可以在打印预览中设置边距
有谁知道请告知

后面我还做了些Pdf重建可以实现多种打印 如:装订线 缩小等

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值