将 PDF 发送到打印机是我们日常生活中最常见的任务之一。例如,您可能需要在纸上打印合同、发票或简历,以便人们能够在不使用设备的情况下查看它们。本文通过以下七个示例向您展示如何使用 Spire.PDF for .NET 在 C# 和 VB.NET 中打印 PDF 文档。
- 使用默认打印机打印 PDF
- 使用指定的打印机打印选定的页面
- 使用虚拟打印机将 PDF 打印到 XPS
- 静默打印 PDF
- 以双面模式打印 PDF
- 将 PDF 打印成黑白色
- 将不同的页面范围打印到不同的纸盘
安装 Spire.PDF for .NET
首先,您需要添加 Spire.PDF for .NET 包中包含的 DLL 文件作为 .NET 项目中的引用。DLL 文件可以从此链接下载或通过 NuGet 安装。
PM> Install-Package Spire.PDF
使用默认打印机打印 PDF
以下是使用 Spire.PDF for .NET 在 C# 和 VB.NET 中使用默认打印机打印 PDF 文档的步骤。
- 创建一个 PdfDocument 对象。
- 使用 PdfDocument.LoadFromFile() 方法加载 PDF 文件。
- 调用 PdfDocument.Print() 方法直接使用默认打印机打印文档。
- C#
- VB.NET
using Spire.Pdf;
namespace PrintWithDefaultPrinter
{
class Program
{
static void Main(string[] args)
{
//创建一个PdfDocument对象
PdfDocument doc = new PdfDocument();
//加载一个PDF文件
doc.LoadFromFile(@"C:\Users\Administrator\Desktop\sample.pdf");
//使用默认打印机打印
doc.Print();
}
}
}
Imports Spire.Pdf
Namespace PrintWithDefaultPrinter
Class Program
Shared Sub Main(ByVal args() As String)
'创建一个PdfDocument对象 Dim doc As PdfDocument = New PdfDocument() '加载一个PDF文件
doc.LoadFromFile("C:\Users\Administrator\Desktop\sample.pdf")
'使用默认打印机打印 doc.Print() End Sub End Class End Namespace
使用指定的打印机打印选定的页面
以下是使用 Spire.PDF for .NET 在 C# 和 VB.NET 中使用指定打印机打印 PDF 文档的步骤。
- 创建一个 PdfDocument对象。
- 使用 PdfDocument.LoadFromFile()方法加载 PDF 文件。
- 通过 PrintSettings.PrinterName属性指定打印机名称。
- 使用 PrintSettings.SelectSomePages()方法或 PrintSettings.SelectPageRange()方法选择要打印的不连续页面或连续页面。
- 调用 PdfDocument.Print()方法执行打印。
- C#
- VB.NET
using Spire.Pdf;namespace PrintWithSpecifiedPrinter{class Program{static void Main(string[] args){//创建一个PdfDocument对象 PdfDocument doc = new PdfDocument();//加载PDF文件 doc.LoadFromFile(@"C: \Users\Administrator\Desktop\sample.pdf");//指定打印机名称 doc.PrintSettings.PrinterName = "HP LaserJet P1007";//选择要打印的页面范围 doc.PrintSettings.SelectPageRange(1,5);//选择不连续的页面进行打印 //doc.PrintSettings.SelectSomePages(new int[]{1,3,5,7});//打印文件 doc.Print();}}}
Imports Spire.Pdf Namespace PrintWithSpecifiedPrinter Class Program Shared Sub Main(ByVal args() As String) '创建一个PdfDocument对象
Dim doc As PdfDocument = New PdfDocument()
'加载PDF文件 doc.LoadFromFile("C:\Users\Administrator\Desktop\sample.pdf") '指定打印机名称
doc.PrintSettings.PrinterName = "HP LaserJet P1007"
'选择要打印的页面范围 doc.PrintSettings.SelectPageRange(1,5) '选择不连续的页面进行打印
'doc.PrintSettings.SelectSomePages(new int[]{1,3,5,7});'打印文件
doc.Print()
End Sub
End Class
End Namespace
使用虚拟打印机将 PDF 打印到 XPS
以下是使用 C# 和 VB.NET 中的 Microsoft XPS Document Writer 将 PDF 打印到 XPS 的步骤。
- 创建一个 PdfDocument 对象。
- 使用 PdfDocument.LoadFromFile() 方法加载 PDF 文件。
- 通过 PrintSettings.PrinterName 属性将打印机名称设置为 Microsoft XPS Document Writer。
- 使用 PrintSettings.PrintToFile() 方法设置打印文件的路径和名称。
- 使用 PdfDocument.Print() 方法执行打印。
- C#
- VB.NET
using Spire.Pdf;
namespace PrintPdfToXps
{
class Program
{
static void Main(string[] args)
{
//创建一个PdfDocument对象
PdfDocument doc = new PdfDocument();
//加载PDF文档
doc.LoadFromFile(@"C: \Users\Administrator\Desktop\sample.pdf");
//将打印机名称设置为 Microsoft XPS Document Writer
doc.PrintSettings.PrinterName = "Microsoft XPS Document Writer";
//设置打印文件路径和名称
doc.PrintSettings.PrintToFile("PrintToXps.xps");
//执行打印
doc.Print();
}
}
}
Imports Spire.Pdf
Namespace PrintPdfToXps
Class Program
Shared Sub Main(ByVal args() As String)
'创建一个PdfDocument对象 Dim doc As PdfDocument = New PdfDocument() '加载PDF文档
doc.LoadFromFile("C:\Users\Administrator\Desktop\sample.pdf")
'将打印机名称设置为 Microsoft XPS Document Writer doc.PrintSettings.PrinterName = "Microsoft XPS Document Writer" '设置打印文件路径和名称
doc.PrintSettings.PrintToFile("PrintToXps.xps")
'执行打印 doc.Print() End Sub End Class End Namespace
静默打印 PDF
以下是使用 Spire.PDF for .NET 在 C# 和 VB.NET 中静默打印 PDF 文档的步骤。
- 创建一个 PdfDocument对象。
- 使用 PdfDocument.LoadFromFile()方法加载 PDF 文件。
- 通过 PrintSettings.PrinterName属性指定打印机名称。
- 将 PrintSettings.PrintController属性的值设置为 StandardPrintController类的实例,这将阻止打印过程的显示。
- 使用 PdfDocument.Print()方法执行打印。
- C#
- VB.NET
using Spire.Pdf;using System.Drawing.Printing;namespace PrintPdfSilently{class Program{static void Main(string[] args){//创建一个PdfDocument对象 PdfDocument doc = new PdfDocument();//加载PDF文件 doc.LoadFromFile(@"C: \Users\Administrator\Desktop\sample.pdf");//指定打印机名称 doc.PrintSettings.PrinterName = "HP LaserJet P1007";//静默打印 doc.PrintSettings.PrintController = new StandardPrintController();//打印文档 doc.Print();}}}
Imports Spire.Pdf Imports System.Drawing.Printing Namespace PrintPdfSilently Class Program Shared Sub Main(ByVal args() As String) '创建一个PdfDocument对象
Dim doc As PdfDocument = New PdfDocument()
'加载PDF文件 doc.LoadFromFile("C:\Users\Administrator\Desktop\sample.pdf") '指定打印机名称
doc.PrintSettings.PrinterName = "HP LaserJet P1007"
'静默打印 doc.PrintSettings.PrintController = New StandardPrintController() '打印文档
doc.Print()
End Sub
End Class
End Namespace
以双面模式打印 PDF
以下是在 C# 和 VB.NET 中使用 Spire.PDF for .NET 以双面模式打印 PDF 文档的步骤。
- 创建一个 PdfDocument 对象。
- 使用 PdfDocument.LoadFromFile() 方法加载 PDF 文件。
- 通过 PrintSettings.PrinterName 属性指定打印机名称。
- 通过 PrintSettings.CanDuplex 属性确定打印机是否支持双面打印。如果是,请将 PrintSettings.Duplex 属性设置为 Duplex.Defatult。
- 使用 PdfDocument.Print() 方法执行打印。
- C#
- VB.NET
using Spire.Pdf;
using System.Drawing.Printing;
namespace PrintInDuplexMode
{
class Program
{
static void Main(string[] args)
{
//创建一个PdfDocument对象
PdfDocument doc = new PdfDocument();
//加载PDF文件
doc.LoadFromFile(@"C: \Users\Administrator\Desktop\sample.pdf");
//指定打印机名称
doc.PrintSettings.PrinterName = "HP LaserJet P1007";
//确定打印机是否支持双面打印
if (doc.PrintSettings.CanDuplex)
{
//设置为双面打印模式
doc.PrintSettings.Duplex = Duplex.Default;
//打印文档
doc.Print();
}
}
}
}
Imports Spire.Pdf
Imports System.Drawing.Printing
Namespace PrintInDuplexMode
Class Program
static void Main(string() args)
{
'创建一个PdfDocument对象 Dim doc As PdfDocument = New PdfDocument() '加载PDF文件
doc.LoadFromFile("C:\Users\Administrator\Desktop\sample.pdf")
'指定打印机名称 doc.PrintSettings.PrinterName = "HP LaserJet P1007" '确定打印机是否支持双面打印
if (doc.PrintSettings.CanDuplex)
{
'设置为双面打印模式 doc.PrintSettings.Duplex = Duplex.Default '打印文档
doc.Print()
}
}
End Class
End Namespace
将 PDF 打印成黑白色
以下是使用 Spire.PDF for .NET 在 C# 和 VB.NET 中以灰度打印 PDF 文档的步骤。
- 创建一个 PdfDocument 对象。
- 使用 PdfDocument.LoadFromFile() 方法加载 PDF 文件。
- 通过 PrintSettings.PrinterName 属性指定打印机名称。
- 将 PrintSettings.Color 属性设置为 false,将彩色 PDF 打印成黑白。
- 使用 PdfDocument.Print() 方法执行打印。
- C#
- VB.NET
using Spire.Pdf;
namespace PrintInGrayscale
{
class Program
{
static void Main(string[] args)
{
//创建一个PdfDocument对象
PdfDocument doc = new PdfDocument();
//加载PDF文件
doc.LoadFromFile(@"C:\Users\Administrator\Desktop\sample.pdf");
//指定打印机名称
doc.PrintSettings.PrinterName = "HP LaserJet P1007";
//以黑白色打印
doc.PrintSettings.Color = false;
//打印文档
doc.Print();
}
}
}
Imports Spire.Pdf
Namespace PrintInGrayscale
Class Program
Shared Sub Main(ByVal args() As String)
'创建一个PdfDocument对象 Dim doc As PdfDocument = New PdfDocument() '加载PDF文件
doc.LoadFromFile("C:\Users\Administrator\Desktop\sample.pdf")
'指定打印机名称 doc.PrintSettings.PrinterName = "HP LaserJet P1007" '以黑白色打印
doc.PrintSettings.Color = False
'打印文档 doc.Print() End Sub End Class End Namespace
将不同的页面范围打印到不同的纸盘
以下是使用 Spire.PDF for .NET 在 C# 和 VB.NET 中将不同页面范围打印到不同纸盘的步骤。
- 创建一个 PdfDocument对象。
- 使用 PdfDocument.LoadFromFile()方法加载 PDF 文件。
- 为 PrintSettings.PaperSettings事件注册自定义委托,该委托提供为 PaperSettings 事件提供数据。
- 设置 tray1 和tray2 的纸张来源。
- 使用 PdfDocument.Print()方法执行打印。
- C#
- VB.NET
using Spire.Pdf;using Spire.Pdf.Print;namespace PrintToDifferentTrays{class Program{static void Main(string[] args){//创建一个PdfDocument对象 PdfDocument doc = new PdfDocument();//加载PDF文件 doc.LoadFromFile(@"C: \Users\Administrator\Desktop\sample.pdf");//为 PrintSettings.PaperSettings 事件注册委托 doc.PrintSettings.PaperSettings += delegate (object sender,PdfPaperSettingsEventArgs e){//将tray1 的纸张来源设置为 1-10 页 if (1 <= e.CurrentPaper && e.CurrentPaper <= 10){e.CurrentPaperSource = e.PaperSources[0];}//将tray2 的纸张来源设置为其余页面 else{e.CurrentPaperSource = e.PaperSources[1];}};//打印文档 doc.Print();}}}
Imports Spire.Pdf Imports Spire.Pdf.Print Namespace PrintToDifferentTrays Class Program Shared Sub Main(ByVal args() As String) '创建一个PdfDocument对象
Dim doc As PdfDocument = New PdfDocument()
'加载PDF文件 doc.LoadFromFile("C:\Users\Administrator\Desktop\sample.pdf") '为 PrintSettings.PaperSettings 事件注册委托
doc.PrintSettings.PaperSettings Function delegate(ByVal sender As Object, ByVal e As PdfPaperSettingsEventArgs) As +=
'将tray1 的纸张来源设置为 1-10 页 If 1 <= e.CurrentPaper And e.CurrentPaper <= 10 Then e.CurrentPaperSource = e.PaperSources(0) End If '将tray2 的纸张来源设置为其余页面
else
{
e.CurrentPaperSource = e.PaperSources(1)
}
End Function
'打印文档 doc.Print() End Sub End Class End Namespace
申请临时 License
如果您希望删除结果文档中的评估消息,或者摆脱功能限制,请 该Email地址已收到反垃圾邮件插件保护。要显示它您需要在浏览器中启用JavaScript。获取有效期 30 天的临时许可证。