1. 程式人生 > >C# 自定義紙張大小列印 PDF

C# 自定義紙張大小列印 PDF

當列印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();