
如何在 C# 中使用网络打印机打印
在各种软件应用中,程序化地在网络打印机上进行打印是一项常见任务。 无论您是在构建桌面、移动应用程序,还是网络服务,能够直接将文档发送到网络打印机的能力可以极大地提高软件的可用性和效率。 在本文中,我们将探讨如何使用 C# 和来自 Iron Software 的 IronPrint 在网络打印机上打印。
How to Print with Network Printer in C#
- 创建一个新的打印文档项目,使用 IronPrint。
- 将 IronPrint 安装到一个新项目中。
- 列出可用于打印文档的网络打印机。
- 使用 IronPrint 打印 PDF 文档。
- 使用 IronPrint 通过对话框打印 PDF 文档。
- 使用打印设置进行高级打印。
设置环境
在深入编码部分之前,让我们确保我们的环境设置正确。 要在 C# 中向网络打印机打印,您需要具备以下条件:
- 确保从运行您的 C# 应用程序的机器可以访问网络打印机。
- 打印机的网络地址(IP 地址或网络打印机名称)。
- 计算机上已安装必要的打印机驱动程序。
- 如果需要,安装打印机或驱动程序的管理员权限。
IronPrint
在深入了解实现细节之前,让我们熟悉如何开始使用 IronPrint:
1.安装: IronPrint可以通过NuGet包管理器轻松安装。 只需访问 NuGet 页面 并按照安装说明进行操作。 2.**文档:**请参阅官方文档以获取快速入门指南和全面的 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);
}
}
}Imports IronPrint
Module IronPrintDemo
Sub Main()
' 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 ModuleSystem.Printing
C#中的System.Printing命名空间包含一些类和接口,使开发人员能够以编程方式与打印机、打印队列、打印服务器和打印作业进行交互。 此命名空间中的一些关键类和接口包括:
PrintQueue:表示系统连接的打印机或打印设备。PrintServer:表示网络上的打印服务器。PrintSystemJobInfo:提供有关打印作业的信息,如其状态和属性。PrintTicket:表示打印作业的设置,包括纸张大小、方向和打印质量。
开始使用System.Printing进行打印有基本了解:
-
PrintQueue对象。 -
PrintTicket对象以指定打印设置,如纸张大小、方向和副本数。 - **文档打印:**最后,您将要打印的文档发送到选定的
PrintQueue。
使用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.");
}
}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 也可以使用以下命令安装:
步骤 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);
}
}
}
}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");
}
}
}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");
}
}
}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);
}
}
}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对象,以配置自定义打印设置。 Dpi属性设置为150,表示打印分辨率为每英寸150点。NumberOfCopies属性设置为2,指定要打印两份相同的文档。PaperOrientation.Portrait,表示文档将以纵向打印。
- 实例化一个名为
- 最后,调用
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 的可能性,为您的应用程序解锁高效的文档打印世界。

Curtis Chau 拥有卡尔顿大学的计算机科学学士学位,专注于前端开发,精通 Node.js、TypeScript、JavaScript 和 React。他热衷于打造直观且美观的用户界面,喜欢使用现代框架并创建结构良好、视觉吸引力强的手册。
相关文章


