将 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 天的临时许可证。