如何在 C# 中使用网络打印机打印
在各种软件应用中,程序化地在网络打印机上进行打印是一项常见任务。 无论您是在构建桌面、移动应用程序,还是网络服务,能够直接将文档发送到网络打印机的能力可以极大地提高软件的可用性和效率。 在本文中,我们将探讨如何使用 C# 和来自 Iron Software 的 IronPrint 在网络打印机上打印。
如何使用网络打印机在 C# 中打印
- 创建一个新的打印文档项目,使用 IronPrint。
- 将 IronPrint 安装到一个新项目中。
- 列出可用于打印文档的网络打印机。
- 使用 IronPrint 打印 PDF 文档。
- 使用 IronPrint 通过对话框打印 PDF 文档。
- 使用打印设置进行高级打印。
设置环境
在深入编码部分之前,让我们确保我们的环境设置正确。 要在 C# 中向网络打印机打印,您需要具备以下条件:
- 确保从运行您的 C# 应用程序的机器可以访问网络打印机。
- 打印机的网络地址(IP 地址或网络打印机名称)。
- 计算机上已安装必要的打印机驱动程序。
- 如果需要,安装打印机或驱动程序的管理员权限。
IronPrint
在深入了解实现细节之前,让我们熟悉如何开始使用 IronPrint:
- 安装:可以通过 NuGet 包管理器轻松安装 IronPrint。 只需访问 NuGet 页面 并按照安装说明进行操作。
- 文档:参考官方文档,获取快速入门指南和全面的 API 参考。
兼容性和支持:IronPrint 提供跨多种环境和项目类型的广泛兼容性和支持:
- .NET 版本支持:IronPrint 支持 C#、VB.NET 和 F#,包括 .NET 8,7,6,5 和 Core 3.1+。
- 操作系统和环境:IronPrint 兼容 Windows (7+)、macOS (10+)、iOS (11+) 和 Android API 21+ (v5 "Lollipop")。
- 项目类型:无论您是在开发移动应用(Xamarin, MAUI, Avalonia)、桌面应用(WPF, MAUI, Windows Avalonia),还是控制台应用,IronPrint 都能满足您的需求。
现在让我们通过以下示例看看如何使用 IronPrint 进行打印。
using IronPrint;
namespace IronPrintDemo
{
class Program
{
static void Main(string[] args)
{
// Configure printer setting
PrintSettings printSettings = new PrintSettings();
printSettings.Dpi = 220;
printSettings.NumberOfCopies = 10;
printSettings.PaperOrientation = PaperOrientation.Portrait;
// Print the document
Printer.Print("awesomeIronPrint.pdf", printSettings);
}
}
}using IronPrint;
namespace IronPrintDemo
{
class Program
{
static void Main(string[] args)
{
// Configure printer setting
PrintSettings printSettings = new PrintSettings();
printSettings.Dpi = 220;
printSettings.NumberOfCopies = 10;
printSettings.PaperOrientation = PaperOrientation.Portrait;
// Print the document
Printer.Print("awesomeIronPrint.pdf", printSettings);
}
}
}Imports IronPrint
Namespace IronPrintDemo
Friend Class Program
Shared Sub Main(ByVal args() As String)
' Configure printer setting
Dim printSettings As New PrintSettings()
printSettings.Dpi = 220
printSettings.NumberOfCopies = 10
printSettings.PaperOrientation = PaperOrientation.Portrait
' Print the document
Printer.Print("awesomeIronPrint.pdf", printSettings)
End Sub
End Class
End NamespaceSystem.Printing
C# 中的 System.Printing 命名空间包含类和接口,允许开发人员以编程方式与打印机、打印队列、打印服务器和打印作业交互。 此命名空间中的一些关键类和接口包括:
PrintQueue:表示连接到系统的打印机或打印设备。PrintServer:表示网络上的打印服务器。PrintSystemJobInfo:提供有关打印作业的信息,例如其状态和属性。PrintTicket:代表打印作业的设置,包括纸张大小、朝向和打印质量。
开始使用 System.Printing:在深入代码之前,让我们确保我们对使用 System.Printing 进行打印有一个基本的了解:
PrintQueue选择:您需要识别代表您要用于打印的打印机的PrintQueue对象。PrintTicket配置:如果需要,您可以配置PrintTicket对象以指定打印设置,如纸张大小、方向和份数。- 文档打印:最后,您将要打印的文档发送到所选的
PrintQueue。
使用 System.Printing 实现文档打印:现在,让我们通过以下示例演练使用 System.Printing 打印文档的过程:
这是源代码:
using System;
using System.IO;
using System.Printing;
class Program
{
static void Main(string[] args)
{
// Specify the path to the document to be printed on the local printer
string documentPath = "path/to/your/document.pdf";
// Instantiate a Printer Server object representing the local print server
using (PrintServer printServer = new PrintServer())
{
// Get the default PrintQueue from the PrintServer default
PrintQueue defaultPrintQueue = printServer.DefaultPrintQueue;
// Create a PrintTicket object to specify print settings (optional)
PrintTicket printTicket = new PrintTicket();
// Configure print settings, e.g., number of copies
printTicket.CopyCount = 1;
// Print the document to the default PrintQueue with the specified PrintTicket
defaultPrintQueue.AddJob("MyPrintJob", documentPath, false, printTicket);
}
Console.WriteLine("Document sent to print queue.");
}
}using System;
using System.IO;
using System.Printing;
class Program
{
static void Main(string[] args)
{
// Specify the path to the document to be printed on the local printer
string documentPath = "path/to/your/document.pdf";
// Instantiate a Printer Server object representing the local print server
using (PrintServer printServer = new PrintServer())
{
// Get the default PrintQueue from the PrintServer default
PrintQueue defaultPrintQueue = printServer.DefaultPrintQueue;
// Create a PrintTicket object to specify print settings (optional)
PrintTicket printTicket = new PrintTicket();
// Configure print settings, e.g., number of copies
printTicket.CopyCount = 1;
// Print the document to the default PrintQueue with the specified PrintTicket
defaultPrintQueue.AddJob("MyPrintJob", documentPath, false, printTicket);
}
Console.WriteLine("Document sent to print queue.");
}
}Imports System
Imports System.IO
Imports System.Printing
Friend Class Program
Shared Sub Main(ByVal args() As String)
' Specify the path to the document to be printed on the local printer
Dim documentPath As String = "path/to/your/document.pdf"
' Instantiate a Printer Server object representing the local print server
Using printServer As New PrintServer()
' Get the default PrintQueue from the PrintServer default
Dim defaultPrintQueue As PrintQueue = printServer.DefaultPrintQueue
' Create a PrintTicket object to specify print settings (optional)
Dim printTicket As New PrintTicket()
' Configure print settings, e.g., number of copies
printTicket.CopyCount = 1
' Print the document to the default PrintQueue with the specified PrintTicket
defaultPrintQueue.AddJob("MyPrintJob", documentPath, False, printTicket)
End Using
Console.WriteLine("Document sent to print queue.")
End Sub
End ClassIronPrint 与 System.Printing 的对比

该表提供了 IronPrint 和 System.Printing 特征和特点的快速概览,帮助开发人员根据其特定需求和平台目标做出明智的决策。
步骤 1:创建用于打印文档的新项目
在 Visual Studio 中创建如图所示的控制台应用程序。

提供项目名称和位置。

选择 .NET 版本。

现在项目已经创建并准备好进行进一步编码。
步骤 2:在新项目上安装 IronPrint
从 Visual Studio 包管理器安装 IronPrint,如下所示。

IronPrint 也可以使用以下命令安装:
Install-Package IronPrint
步骤 3:列出可用于打印文档的网络打印机
要使用 IronPrint 列出打印机名称,请使用以下代码:
using System;
using System.Collections.Generic;
using IronPrint;
namespace IronPrintDemo
{
public class Program
{
public static void Main()
{
// Get printer names using printer drivers
List<string> printersName = Printer.GetPrinterNames();
foreach (var printer in printersName)
{
Console.WriteLine(printer);
}
}
}
}using System;
using System.Collections.Generic;
using IronPrint;
namespace IronPrintDemo
{
public class Program
{
public static void Main()
{
// Get printer names using printer drivers
List<string> printersName = Printer.GetPrinterNames();
foreach (var printer in printersName)
{
Console.WriteLine(printer);
}
}
}
}Imports System
Imports System.Collections.Generic
Imports IronPrint
Namespace IronPrintDemo
Public Class Program
Public Shared Sub Main()
' Get printer names using printer drivers
Dim printersName As List(Of String) = Printer.GetPrinterNames()
For Each printer In printersName
Console.WriteLine(printer)
Next printer
End Sub
End Class
End Namespace代码解释
- 使用
Printer.GetPrinterNames获取所有可用的打印机驱动程序。 - 使用
Console.WriteLine打印名称。
输出

步骤 4:使用 IronPrint 打印 PDF 文档
使用以下代码以静默方式打印文档:
using IronPrint;
namespace IronPrintDemo
{
public class Program
{
public static void Main()
{
// Print the document silently
Printer.Print("sample.pdf");
}
}
}using IronPrint;
namespace IronPrintDemo
{
public class Program
{
public static void Main()
{
// Print the document silently
Printer.Print("sample.pdf");
}
}
}Imports IronPrint
Namespace IronPrintDemo
Public Class Program
Public Shared Sub Main()
' Print the document silently
Printer.Print("sample.pdf")
End Sub
End Class
End Namespace执行后,文档将如输出中所示添加到打印队列中。
输出

步骤 5:使用对话框打印 PDF 文档
使用以下代码通过对话框打印文档:
using IronPrint;
namespace IronPrintDemo
{
public class Program
{
public static void Main()
{
// Print with Dialog
Printer.ShowPrintDialog("sample.pdf");
}
}
}using IronPrint;
namespace IronPrintDemo
{
public class Program
{
public static void Main()
{
// Print with Dialog
Printer.ShowPrintDialog("sample.pdf");
}
}
}Imports IronPrint
Namespace IronPrintDemo
Public Class Program
Public Shared Sub Main()
' Print with Dialog
Printer.ShowPrintDialog("sample.pdf")
End Sub
End Class
End Namespace代码解释
- 使用 IronPrint 的
ShowPrintDialog我们可以使用对话框进行打印。 - 一旦对话框打开,选择所需的打印机来打印文档。
输出

步骤 6:使用打印设置进行高级打印
在 IronPrint 中支持使用高级设置打印文档。 它支持以下属性:
PaperSize:指定打印机使用的纸张尺寸。PaperOrientation:定义纸张的方向,如自动、纵向或横向。DPI:设置所需的打印分辨率(以每英寸点数为单位)。 默认值是 300,通常用于商业印刷。 实际 DPI 可能会受到打印机功能的限制。NumberOfCopies:指明要打印的文档的相同副本数量。PrinterName:指定用于打印任务的打印机名称。PaperMargins:确定打印的边距,以毫米为单位。Grayscale:一个布尔值决定是否以灰度打印。 默认是false。
现在让我们看看一个代码示例:
using IronPrint;
namespace IronPrintDemo
{
public class Program
{
public static void Main()
{
// Configure custom print settings
PrintSettings printSettings = new PrintSettings();
printSettings.Dpi = 150;
printSettings.NumberOfCopies = 2;
printSettings.PaperOrientation = PaperOrientation.Portrait;
// Print the required document
Printer.Print("sample.pdf", printSettings);
}
}
}using IronPrint;
namespace IronPrintDemo
{
public class Program
{
public static void Main()
{
// Configure custom print settings
PrintSettings printSettings = new PrintSettings();
printSettings.Dpi = 150;
printSettings.NumberOfCopies = 2;
printSettings.PaperOrientation = PaperOrientation.Portrait;
// Print the required document
Printer.Print("sample.pdf", printSettings);
}
}
}Imports IronPrint
Namespace IronPrintDemo
Public Class Program
Public Shared Sub Main()
' Configure custom print settings
Dim printSettings As New PrintSettings()
printSettings.Dpi = 150
printSettings.NumberOfCopies = 2
printSettings.PaperOrientation = PaperOrientation.Portrait
' Print the required document
Printer.Print("sample.pdf", printSettings)
End Sub
End Class
End Namespace代码解释
- 代码首先导入必要的命名空间 IronPrint,其中包含打印所需的类和方法。
- 在
IronPrintDemo命名空间内,有一个类名为 Program,被声明为 public。 - Main 方法用作程序的入口点。
- 在 Main 方法中:
- 一个名为
printSettings的PrintSettings对象被实例化以配置自定义打印设置。 printSettings的Dpi属性被设置为 150,表示 150 每英寸点的打印分辨率。printSettings的NumberOfCopies属性被设置为 2,指定将打印文档的两个相同副本。printSettings的PaperOrientation属性被设置为PaperOrientation.Portrait,表示文档将以纵向方向打印。
- 一个名为
- 最后,
Printer.Print方法被调用,参数为"sample.pdf"(文档名)和printSettings(自定义打印设置)。 此方法使用指定的设置处理打印过程。
输出

许可证
IronPrint 来自 Iron Software 是一个企业库,需要许可证才能运行。 添加 IronPrint 许可证密钥使项目不受限制或水印地运行。 在此购买许可证或注册免费 30 天试用密钥此处。
一旦获得许可证密钥,该密钥需要放置在应用程序的 appSettings.json 文件中。
{
"IronPrint.License.LicenseKey": "IRONPRINT.KEY"
}这样将打印文档而不受限制或水印。
结论
综上所述,IronPrint 和 System.Printing 各有优势,适用于不同的场景。 IronPrint 提供了一种简化、跨平台的解决方案,专注于简单性和多功能性,而 System.Printing 提供了本地集成和精细控制,特别适用于基于 Windows 的应用程序。 开发人员应根据其特定需求和平台目标,在 C# 项目中选择这些打印库之一。
IronPrint 通过提供用户友好的 API 和在各种平台和项目类型中的广泛兼容性,简化了 .NET 应用程序中的文档打印。通过本文中概述的步骤,您可以无缝地将打印功能集成到您的 .NET 项目中,提高其可用性和生产力。 探索 IronPrint 的可能性,为您的应用程序解锁高效的文档打印世界。
常见问题解答
如何使用 C# 在网络打印机上打印?
您可以使用 IronPrint 在 C# 中通过网络打印机打印文件。它允许您通过方法直接将文件发送到网络打印机,程序化地处理打印任务。
在 C# 中设置网络打印机打印的步骤是什么?
首先,确保您有访问网络打印机及其地址。通过 NuGet 包管理器安装必要的驱动程序和 IronPrint。然后,使用 IronPrint 的方法管理和发送打印任务。
如何在我的 C# 项目中安装 IronPrint?
您可以通过 Visual Studio 中的 NuGet 包管理器安装 IronPrint,或在包管理器控制台中运行命令 Install-Package IronPrint。
IronPrint 与哪些 .NET 版本兼容?
IronPrint 支持 C#、VB.NET 和 F#,兼容 .NET 8、7、6、5 和 Core 3.1+。
IronPrint 可以用于不同的操作系统吗?
是的,IronPrint 兼容 Windows(7+)、macOS(10+)、iOS(11+)和 Android API 21+(v5 'Lollipop')。
IronPrint 与 C# 中的 System.Printing 有何比较?
IronPrint 提供了一个跨平台的解决方案,注重简洁性,而 System.Printing 提供了对 Windows 应用程序的本地集成和控制。
如何使用 IronPrint 列出可用的网络打印机?
您可以在 IronPrint 中使用方法 Printer.GetPrinterNames(),它返回可用的打印机驱动列表。
IronPrint 提供了哪些高级打印选项?
IronPrint 支持高级设置,包括纸张尺寸、纸张方向、DPI、复印数量、打印机名称、纸张边距和灰度。
IronPrint 提供了哪些许可选项?
可以在 Iron Software 网站上购买 IronPrint 许可证或注册免费 30 天试用。许可证密钥放置在应用程序的 appSettings.json 文件中。
通过命令行安装 IronPrint 使用什么命令?
通过命令行安装 IronPrint,使用命令 Install-Package IronPrint。









