/// <summary> /// Print /// </summary> /// <param name="printerName">Printer Name</param> public void PrintX(string printername) { if (PdfResult == 0 && pdfFile != null) { try { //打印机设置 PrinterSettings settings = new PrinterSettings(); settings.PrinterName = printername; settings.PrintToFile = false; settings.Copies = 1; settings.PrintRange = PrintRange.AllPages; //设置纸张大小(可以不设置取,取默认设置) PaperSize ps = new PaperSize("Your Paper Name", 595, 842); ps.RawKind = 9; //如果是自定义纸张,就要大于118 //打印设置 PDFRender.Printing.PDFPrintSettings pdfPrintSettings = new PDFRender.Printing.PDFPrintSettings(settings); pdfPrintSettings.AutoRotate = false; //自动旋转 pdfPrintSettings.BitmapPrintResolution = 560; //图片打印精度 pdfPrintSettings.PaperSize = ps; //纸张尺寸 pdfPrintSettings.PageScaling = PDFRender.Printing.PageScaling.FitToPrinterMarginsProportional; pdfFile.Print(pdfPrintSettings); } catch (Exception ex) { Console.Write(ex.Message); PdfResult = 14; } } }
public bool pdf_Printer_fast(printerParam param, int copys, out string resultString) { resultString = ""; PDFFile pdf = PDFFile.Open(param.FileName); try { PrinterSettings settings = new PrinterSettings(); settings.PrinterName = param.printerName; settings.PrintToFile = false; if (!settings.IsValid) { throw new Exception("打印机:" + param.printerName + "无效"); } //设置纸张大小(可以不设置,取默认设置)3.90 in, 8.65 in PaperSize ps = new PaperSize("test", 4, 9); ps.RawKind = 9; //如果是自定义纸张,就要大于118,(A4值为9,详细纸张类型与值的对照请看http://msdn.microsoft.com/zh-tw/library/system.drawing.printing.papersize.rawkind(v=vs.85).aspx) O2S.Components.PDFRender4NET.Printing.PDFPrintSettings pdfPrintSettings = new O2S.Components.PDFRender4NET.Printing.PDFPrintSettings(settings); pdfPrintSettings.PaperSize = ps; pdfPrintSettings.PageScaling = O2S.Components.PDFRender4NET.Printing.PageScaling.FitToPrinterMarginsProportional; pdfPrintSettings.PrinterSettings.Collate = true; if (pdf.GetPageSize(0).Width > pdf.GetPageSize(0).Height) { pdfPrintSettings.PrinterSettings.DefaultPageSettings.Landscape = true; } else { pdfPrintSettings.PrinterSettings.DefaultPageSettings.Landscape = false; } pdfPrintSettings.PrinterSettings.Copies = Convert.ToInt16(copys); if (!param.isColor) { if (pdfPrintSettings.PrinterSettings.PaperSources.Count <= param.PaperSource) { //MessageBox.Show("纸盒参数错误!"); throw new Exception("纸盒参数错误!"); } else { pdfPrintSettings.PaperSource = pdfPrintSettings.PrinterSettings.PaperSources[param.PaperSource]; } } else { for (int i = 0; i < pdfPrintSettings.PrinterSettings.PaperSources.Count; i++) { if (pdfPrintSettings.PrinterSettings.PaperSources[i].SourceName.ToString().Contains("纸盘 " + (param.PaperSource + 1).ToString())) { pdfPrintSettings.PaperSource = pdfPrintSettings.PrinterSettings.PaperSources[i]; } } if (pdfPrintSettings.PaperSource == null) { throw new Exception("纸盒参数错误!"); } } pdfPrintSettings.PrinterSettings.DefaultPageSettings.Margins.Left = Math.Max(0, (int)(pdfPrintSettings.PrinterSettings.DefaultPageSettings.PaperSize.Width - pdf.GetPageSize(0).Width) / 2); pdfPrintSettings.PrinterSettings.DefaultPageSettings.Margins.Top = Math.Max(0, (int)(pdfPrintSettings.PrinterSettings.DefaultPageSettings.PaperSize.Height - pdf.GetPageSize(0).Height) / 2); if (param.isColor) { pdfPrintSettings.PrinterSettings.DefaultPageSettings.Color = true; } bool isDuplex = pdfPrintSettings.PrinterSettings.CanDuplex; if (!isDuplex) { if (param.DoubleForm) { throw new Exception("该打印机不支持双面打印!"); } else { pdfPrintSettings.PrinterSettings.Duplex = System.Drawing.Printing.Duplex.Simplex; } } else { if (param.DoubleForm) { if (pdf.GetPageSize(0).Width > pdf.GetPageSize(0).Height) { pdfPrintSettings.PrinterSettings.Duplex = System.Drawing.Printing.Duplex.Horizontal; } else { pdfPrintSettings.PrinterSettings.Duplex = System.Drawing.Printing.Duplex.Vertical; } } else { pdfPrintSettings.PrinterSettings.Duplex = System.Drawing.Printing.Duplex.Simplex; } } pdf.Print(pdfPrintSettings); pdf.Dispose(); resultString = ""; return(true); } catch (Exception ex) { resultString += ex.Message + ";"; pdf.Dispose(); return(false); } }
/// <summary> /// Print /// </summary> /// <param name="printerName">Printer Name</param> public void PrintX(string printername) { if(PdfResult == 0 && pdfFile != null) { try { //打印机设置 PrinterSettings settings = new PrinterSettings(); settings.PrinterName = printername; settings.PrintToFile = false; settings.Copies = 1; settings.PrintRange = PrintRange.AllPages; //设置纸张大小(可以不设置取,取默认设置) PaperSize ps = new PaperSize("Your Paper Name",595,842); ps.RawKind = 9; //如果是自定义纸张,就要大于118 //打印设置 PDFRender.Printing.PDFPrintSettings pdfPrintSettings = new PDFRender.Printing.PDFPrintSettings(settings); pdfPrintSettings.AutoRotate = false; //自动旋转 pdfPrintSettings.BitmapPrintResolution = 560; //图片打印精度 pdfPrintSettings.PaperSize = ps; //纸张尺寸 pdfPrintSettings.PageScaling = PDFRender.Printing.PageScaling.FitToPrinterMarginsProportional; pdfFile.Print(pdfPrintSettings); } catch(Exception ex) { Console.Write(ex.Message); PdfResult = 14; } } }