这篇文章将介绍如何使用 Spire.PDF 组件打印 PDF 文档。本文适用于 Spire.PDF Hotfix Version 3.9.360 之后的版本,如果你使用的是免费版或是该版本以前的旧版本,请参考这篇文章。
Spire.PDF 组件支持多种PDF文档打印方式,本文将逐一介绍以下8种方式:
- 使用默认打印机打印PDF文档
- 使用虚拟打印机(Microsoft XPS Document Writer)打印PDF文档
- 指定打印机及PDF文档打印页码范围
- 静默打印PDF文档
- 双面打印PDF文档
- 黑白打印PDF文档
- 打印PDF文档时选择不同的出纸盒
- 将PDF文档打印多份
除以上几种打印方式以外,Spire.PDF还支持将PDF文档的多页打印到一页和将一页打印到多页以及自定义纸张大小打印 PDF。
使用默认打印机
C#
//加载PDF文档
PdfDocument doc = new PdfDocument();
doc.LoadFromFile("Test.pdf");
//使用默认打印机打印文档所有页面
doc.Print();
VB.NET
'加载PDF文档
Dim doc As New PdfDocument()
doc.LoadFromFile("Test.pdf")
'使用默认打印机打印文档所有页面
doc.Print()
使用虚拟打印机
//加载PDF文档
PdfDocument doc = new PdfDocument();
doc.LoadFromFile("Test.pdf");
//选择Microsoft XPS Document Writer打印机
doc.PrintSettings.PrinterName = "Microsoft XPS Document Writer";
//打印PDF文档到XPS格式
doc.PrintSettings.PrintToFile("PrintToXps.xps");
doc.Print();
VB.NET
'加载PDF文档
Dim doc As New PdfDocument()
doc.LoadFromFile("Test.pdf")
'选择Microsoft XPS Document Writer打印机
doc.PrintSettings.PrinterName = "Microsoft XPS Document Writer"
'打印PDF文档到XPS格式
doc.PrintSettings.PrintToFile("PrintToXps.xps")
doc.Print()
指定打印机及文档打印页码范围
C#
//加载PDF文档
PdfDocument doc = new PdfDocument();
doc.LoadFromFile("Test.pdf");
//指定打印机
doc.PrintSettings.PrinterName = "HP LaserJet P1007";
//设置文档打印页码范围
doc.PrintSettings.SelectPageRange(1, 5);
//打印不连续的页面
//doc.PrintSettings.SelectSomePages(new int[] { 1, 3, 5, 7 });
//打印PDF文档
doc.Print();
VB.NET
'加载PDF文档
Dim doc As New PdfDocument()
doc.LoadFromFile("Test.pdf")
'指定打印机
doc.PrintSettings.PrinterName = "HP LaserJet P1007"
'设置文档打印页码范围
doc.PrintSettings.SelectPageRange(1, 5)
'打印不连续的页面
'doc.PrintSettings.SelectSomePages(new int[] { 1, 3, 5, 7 });
'打印PDF文档
doc.Print()
静默打印
C#
//加载PDF文档
PdfDocument doc = new PdfDocument();
doc.LoadFromFile("Test.pdf");
//静默打印PDF文档
doc.PrintSettings.PrintController = new StandardPrintController();
doc.Print();
VB.NET
'加载PDF文档
Dim doc As New PdfDocument()
doc.LoadFromFile("Test.pdf")
'静默打印PDF文档
doc.PrintSettings.PrintController = New StandardPrintController()
doc.Print()
双面打印
//加载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();
}
VB.NET
'加载PDF文档
Dim doc As New PdfDocument()
doc.LoadFromFile("Test.pdf")
'判断打印机是否支持双面打印
If doc.PrintSettings.CanDuplex Then
'如果支持则设置双面打印模式,可选:Default/Simplex/Horizontal/Vertical
doc.PrintSettings.Duplex = Duplex.[Default]
'打印PDF文档
doc.Print()
End If
黑白打印
C#
//加载PDF文档
PdfDocument pdf = new PdfDocument();
pdf.LoadFromFile("Test.pdf");
//黑白打印PDF文档
pdf.PrintSettings.Color = false;
pdf.Print();
VB.NET
'加载PDF文档
Dim pdf As New PdfDocument()
pdf.LoadFromFile("Test.pdf")
'黑白打印PDF文档
pdf.PrintSettings.Color = False
pdf.Print()
打印时选择不同的出纸盒
C#
//加载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();
VB.NET
'加载PDF文档
Dim doc As New PdfDocument()
doc.LoadFromFile("Test.pdf")
'设置纸盒
'设置页面1-50的纸张来源为纸盒1
doc.PrintSettings.PaperSettings += Sub(sender As Object, e As PdfPaperSettingsEventArgs) If 1 <= e.CurrentPaper AndAlso e.CurrentPaper <= 50 Then
e.CurrentPaperSource = e.PaperSources(0)
Else
'设置余下页面的纸张来源为纸盒2
e.CurrentPaperSource = e.PaperSources(1)
End If
'打印PDF文档
doc.Print()
将PDF文档打印多份
C#
//加载PDF文档
PdfDocument doc = new PdfDocument();
doc.LoadFromFile("Test.pdf");
//设置打印份数为2份
doc.PrintSettings.Copies = 2;
//打印PDF文档
doc.Print();
VB.NET
'加载PDF文档
Dim doc As New PdfDocument()
doc.LoadFromFile("Test.pdf")
'设置打印份数为2份
doc.PrintSettings.Copies = 2
'打印PDF文档
doc.Print()