C# 自定義紙張大小列印 PDF
阿新 • • 發佈:2018-11-22
當列印PDF文件的時候,預設情況下紙張大小是A4。但是有些情況下原文件不是A4大小,我們需要保持原來的頁面大小怎麼辦呢?這個時候就需要自定義紙張大小來實現這個功能。本文將介紹如何使用.NET PDF元件Spire.PDF在C#應用程式中自定義紙張大小列印PDF。
在使用以下程式碼前,需要下載Spire.PDF安裝,並從安裝路徑下引用Spire.Pdf.dll到工程中(或可從NuGet搜尋Spire.PDF並安裝)。
使用虛擬印表機自定義紙張大小列印,比如保持原來頁面大小列印到PDF
//載入需要列印的PDF文件 Spire.Pdf.PdfDocument doc = new Spire.Pdf.PdfDocument(); doc.LoadFromFile(FileName); //獲取原文件第一頁的紙張大小,這裡的單位是Point SizeF size = doc.Pages[0].Size; //例項化PaperSize物件,設定其寬高 //需要特別注意的是這裡涉及到單位的轉換,PaperSize的寬高參數預設單位是百英寸 PaperSize paper = new PaperSize("Custom", (int)size.Width/72*100, (int)size.Height/72*100); paper.RawKind = (int)PaperKind.Custom; //設定列印的紙張大小為原來文件的大小 doc.PrintSettings.PaperSize = paper; //需要選擇FitSize列印模式 doc.PrintSettings.SelectSinglePageLayout(PdfSinglePageScalingMode.FitSize, true); //列印 doc.Print();
使用真實印表機設定紙盒中的紙張大小列印,比如原來A4的文件列印成A3的大小
//載入需要列印的PDF文件 Spire.Pdf.PdfDocument doc = new Spire.Pdf.PdfDocument(); doc.LoadFromFile(FileName); PaperSize p = null; //例項化一個PrintDialog物件來獲取當前印表機的紙盒資訊 PrintDialog dialogPrint = new PrintDialog(); //遍歷印表機紙盒裡面的紙張,找到需要的A3 foreach (PaperSize ps in dialogPrint.PrinterSettings.PaperSizes) { if (ps.PaperName.Equals("A3")) p = ps; } //設定列印的紙張大小為A3 doc.PrintSettings.PaperSize = p; //列印 doc.PrintSettings.SelectSinglePageLayout(PdfSinglePageScalingMode.FitSize, true); doc.Print();