操作PDF文檔時,列印是常見的需求之一。針對不同的列印需求,可分多種情況來進行,如設置靜默列印、指定列印頁碼範圍和列印紙張大小、雙面列印、黑白列印等等。經過測試,下面將對常見的幾種PDF列印需求做一些歸納總結,這裡歸納了10種列印需求及方法。如下:
使用默認印表機列印PDF文檔
使用虛擬印表機(Microsoft XPS Document Writer)列印PDF文檔
指定印表機及PDF文檔列印頁碼範圍
靜默列印PDF文檔
雙面列印PDF文檔
黑白列印PDF文檔
列印PDF文檔時選擇不同的出紙盒
將PDF文檔列印多份
列印PDF一頁為多頁、列印多頁為一頁
自定義紙張大小列印PDF
使用工具:Spire.PDF for .NET獲取方法:1. 通過官網下載。在程序中添加引用Spire.Pdf.dll,dll文件在安裝路徑下的bin文件夾中。
2. 通過Nuget網站下載。
C# 示例代碼【示例1】使用默認印表機列印PDFPdfDocument doc = new PdfDocument();doc.LoadFromFile("Test.pdf");
doc.Print();【示例2】使用虛擬印表機(Microsoft XPS Document Writer)列印PDF
PdfDocument doc = new PdfDocument();doc.LoadFromFile("Test.pdf");
doc.PrintSettings.PrinterName = "Microsoft XPS Document Writer";
doc.PrintSettings.PrintToFile("PrintToXps.xps");doc.Print();【示例3】指定印表機及PDF文檔列印頁碼範圍
PdfDocument doc = new PdfDocument();doc.LoadFromFile("Test.pdf");
doc.PrintSettings.PrinterName = "HP LaserJet P1007";
doc.PrintSettings.SelectPageRange(1, 5);
doc.Print();【示例4】靜默列印PDF
PdfDocument doc = new PdfDocument();doc.LoadFromFile("Test.pdf");
doc.PrintSettings.PrintController = new StandardPrintController();doc.Print();【示例5】雙面列印PDF
PdfDocument doc = new PdfDocument();doc.LoadFromFile("Test.pdf");
if (doc.PrintSettings.CanDuplex){ doc.PrintSettings.Duplex = Duplex.Default; doc.Print();}【示例6】黑白列印PDF
PdfDocument pdf = new PdfDocument();pdf.LoadFromFile("Test.pdf");
pdf.PrintSettings.Color = false;pdf.Print();【示例7】列印PDF文檔時選擇不同的出紙盒
PdfDocument doc = new PdfDocument();doc.LoadFromFile("Test.pdf");
doc.PrintSettings.PaperSettings += delegate(object sender, PdfPaperSettingsEventArgs e){ if (1 <= e.CurrentPaper && e.CurrentPaper <= 50) { e.CurrentPaperSource = e.PaperSources[0]; } else { e.CurrentPaperSource = e.PaperSources[1]; }};
doc.Print();【示例8】將PDF文檔列印多份
PdfDocument doc = new PdfDocument();doc.LoadFromFile("Test.pdf");
doc.PrintSettings.Copies = 2;
doc.Print();
【示例9】列印PDF一頁為多頁,多頁為一頁1. 調用PdfPrintSettings類的SelectMultiPageLayout方法將一個PDF文檔的多張頁面列印到一張紙上。
PdfDocument pdf = new PdfDocument();pdf.LoadFromFile("Input.pdf");
pdf.PrintSettings.SelectMultiPageLayout(1, 2);pdf.Print()2. PdfPrintSettings類的SelectSplitPageLayout方法支持將一個PDF文檔的單張頁面列印到多張紙上。該方法是根據A4紙的標準尺寸595pt*842pt對PDF頁面進行拆分,超過該大小的頁面,列印時其超過部分將會被列印到下一張紙。
PdfDocument pdf = new PdfDocument();pdf.LoadFromFile("Input1.pdf");
pdf.PrintSettings.SelectSplitPageLayout();pdf.Print()【示例10】自定義紙張大小列印PDF
1. 使用虛擬印表機自定義紙張大小列印:保持原來頁面大小列印到PDF
Spire.Pdf.PdfDocument doc = new Spire.Pdf.PdfDocument();doc.LoadFromFile(FileName);
SizeF 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();2. 使用真實印表機設置紙盒中的紙張大小列印:將原來A4的文檔列印成A3的大小。
Spire.Pdf.PdfDocument doc = new Spire.Pdf.PdfDocument(); doc.LoadFromFile(FileName);
PaperSize p = null; PrintDocument printDoc = new PrintDocument();
foreach (PaperSize ps in printDoc.PrinterSettings.PaperSizes) { if (ps.PaperName.Equals("A3")) { p = ps; break; } }
doc.PrintSettings.PaperSize = p;
doc.PrintSettings.SelectSinglePageLayout(PdfSinglePageScalingMode.FitSize, true); doc.Print();推薦一個公眾號:dotNET編程大全,掃碼關注!
需加微信交流群的,請加小編微信號z438679770,切記備註 加群,小編將會第一時間邀請你進群!
每日分享不易,"在看"就是鼓勵!