本文共 3974 字,大约阅读时间需要 13 分钟。
操作PDF文档时的打印需求因项目而异,常见的打印场景可分为多种情况,如静默打印、指定页码范围、纸张大小设置等。以下将介绍10种常见的PDF打印需求及其实现方法。
默认打印机通常是系统预装的打印机(如Windows自带的打印机)。在代码中可以通过Spire.PDF for .NET库实现默认打印机打印PDF文档的功能。
// 创建PdfDocument对象并加载PDF文档PdfDocument doc = new PdfDocument();doc.LoadFromFile("Test.pdf");// 使用默认打印机打印文档doc.Print(); Microsoft XPS Document Writer是一种常用的虚拟打印机,可以将PDF文档转换为XPS格式文件进行打印。
// 创建PdfDocument对象并加载PDF文档PdfDocument doc = new PdfDocument();doc.LoadFromFile("Test.pdf");// 设置打印机为Microsoft XPS Document Writerdoc.PrintSettings.PrinterName = "Microsoft XPS Document Writer";// 将PDF文档打印为XPS格式文件doc.PrintSettings.PrintToFile("PrintToXps.xps");doc.Print(); 在某些场景下,可能需要指定特定打印机并设置打印页码范围。以下是如何实现的方法:
// 创建PdfDocument对象并加载PDF文档PdfDocument doc = new PdfDocument();doc.LoadFromFile("Test.pdf");// 设置打印机为HP LaserJet P1007doc.PrintSettings.PrinterName = "HP LaserJet P1007";// 设置打印页码范围为1-5页doc.PrintSettings.SelectPageRange(1, 5);// 打印PDF文档doc.Print(); 静默打印是指在打印过程中不显示打印界面,适用于需要自动化打印的场景。
// 创建PdfDocument对象并加载PDF文档PdfDocument doc = new PdfDocument();doc.LoadFromFile("Test.pdf");// 设置静默打印doc.PrintSettings.PrintController = new StandardPrintController();// 打印PDF文档doc.Print(); 双面打印可以节省纸张,但需要确保打印机支持该功能。以下是如何实现的方法:
// 创建PdfDocument对象并加载PDF文档PdfDocument doc = new PdfDocument();doc.LoadFromFile("Test.pdf");// 检查打印机是否支持双面打印if (doc.PrintSettings.CanDuplex){ // 设置双面打印模式(可选:Default/Simplex/Horizontal/Vertical) doc.PrintSettings.Duplex = Duplex.Default; // 打印PDF文档 doc.Print();} 在某些场合下,可能需要将PDF文档打印为黑白版本。以下是实现方法:
// 创建PdfDocument对象并加载PDF文档PdfDocument pdf = new PdfDocument();pdf.LoadFromFile("Test.pdf");// 设置打印为黑白模式pdf.PrintSettings.Color = false;// 打印PDF文档pdf.Print(); 在一些打印场景下,可能需要根据需要选择不同的纸盒进行打印。
// 创建PdfDocument对象并加载PDF文档PdfDocument doc = new PdfDocument();doc.LoadFromFile("Test.pdf");// 设置纸盒交替规则doc.PrintSettings.PaperSettings += delegate(object sender, PdfPaperSettingsEventArgs e){ // 设置页面1-50使用纸盒1 if (1 <= e.CurrentPaper && e.CurrentPaper < 50) { e.CurrentPaperSource = e.PaperSources[0]; } // 设置剩余页面使用纸盒2 else { e.CurrentPaperSource = e.PaperSources[1]; }};// 打印PDF文档doc.Print(); 在某些场景下,可能需要将PDF文档打印多份,以下是实现方法:
// 创建PdfDocument对象并加载PDF文档PdfDocument doc = new PdfDocument();doc.LoadFromFile("Test.pdf");// 设置打印份数为2份doc.PrintSettings.Copies = 2;// 打印PDF文档doc.Print(); Spire.PDF支持将PDF文档的多张页面打印到一张纸上(如2页/张),或将单张页面打印成多张纸。
单页打印为多页:
// 创建PdfDocument对象并加载PDF文档PdfDocument pdf = new PdfDocument();pdf.LoadFromFile("Input.pdf");// 将PDF文档的每两张页面打印到一张纸上(排版格式为1行,2列)pdf.PrintSettings.SelectMultiPageLayout(1, 2);pdf.Print(); 多页打印为单页:
// 创建PdfDocument对象并加载PDF文档PdfDocument pdf = new PdfDocument();pdf.LoadFromFile("Input1.pdf");// 将PDF文档的单张页面根据标准页面大小(A4纸,595pt*842pt)拆分并打印pdf.PrintSettings.SelectSplitPageLayout();pdf.Print(); Spire.PDF支持自定义纸张大小打印,以下是实现方法:
使用虚拟打印机自定义纸张大小:
// 创建PdfDocument对象并加载需要打印的PDF文档Spire.Pdf.PdfDocument doc = new Spire.Pdf.PdfDocument();doc.LoadFromFile("FileName.pdf");// 获取原文档第一页的纸张大小Point size = doc.Pages[0].Size;// 创建自定义纸张大小PaperSize paper = new PaperSize("Custom", (int)(size.Width / 72 * 100), (int)(size.Height / 72 * 100));paper.RawKind = (int)PaperKind.Custom;// 设置打印纸张大小为自定义大小doc.PrintSettings.PaperSize = paper;// 设置打印为原纸张大小模式doc.PrintSettings.SelectSinglePageLayout(PdfSinglePageScalingMode.FitSize, true);// 打印文档doc.Print(); 使用真实打印机设置纸盒中的纸张大小:
// 创建PdfDocument对象并加载需要打印的PDF文档Spire.Pdf.PdfDocument doc = new Spire.Pdf.PdfDocument();doc.LoadFromFile("FileName.pdf");// 获取当前打印机支持的纸张大小PaperSize p = null;PrintDocument printDoc = new PrintDocument();foreach (PaperSize ps in printDoc.PrinterSettings.PaperSizes){ if (ps.PaperName.Equals("A3")) { p = ps; break; }}// 设置打印纸张大小为A3doc.PrintSettings.PaperSize = p;// 设置打印为原纸张大小模式doc.PrintSettings.SelectSinglePageLayout(PdfSinglePageScalingMode.FitSize, true);// 打印文档doc.Print(); 转载地址:http://uunkz.baihongyu.com/