IRONSOFTWAREHOME
USING IRONPRINT

如何在 C# 中使用网络打印机打印

Curtis Chau
Curtis Chau
Updated: 2026年6月28日

在各种软件应用中,程序化地在网络打印机上进行打印是一项常见任务。 无论您是在构建桌面、移动应用程序,还是网络服务,能够直接将文档发送到网络打印机的能力可以极大地提高软件的可用性和效率。 在本文中,我们将探讨如何使用 C# 和来自 Iron SoftwareIronPrint 在网络打印机上打印。

How to Print with Network Printer in C#

  1. 创建一个新的打印文档项目,使用 IronPrint
  2. IronPrint 安装到一个新项目中。
  3. 列出可用于打印文档的网络打印机。
  4. 使用 IronPrint 打印 PDF 文档。
  5. 使用 IronPrint 通过对话框打印 PDF 文档。
  6. 使用打印设置进行高级打印。

设置环境

在深入编码部分之前,让我们确保我们的环境设置正确。 要在 C# 中向网络打印机打印,您需要具备以下条件:

  1. 确保从运行您的 C# 应用程序的机器可以访问网络打印机。
  2. 打印机的网络地址(IP 地址或网络打印机名称)。
  3. 计算机上已安装必要的打印机驱动程序。
  4. 如果需要,安装打印机或驱动程序的管理员权限。

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);
        }
    }
}

System.Printing

C#中的System.Printing命名空间包含一些类和接口,使开发人员能够以编程方式与打印机、打印队列、打印服务器和打印作业进行交互。 此命名空间中的一些关键类和接口包括:

  1. PrintQueue:表示系统连接的打印机或打印设备。
  2. PrintServer:表示网络上的打印服务器。
  3. PrintSystemJobInfo:提供有关打印作业的信息,如其状态和属性。
  4. PrintTicket:表示打印作业的设置,包括纸张大小、方向和打印质量。

开始使用System.Printing进行打印有基本了解:

  1. PrintQueue对象。
  2. PrintTicket对象以指定打印设置,如纸张大小、方向和副本数。
  3. **文档打印:**最后,您将要打印的文档发送到选定的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.");
    }
}

IronPrint对比System.Printing

C#中如何与网络打印机打印:图1 - IronPrint与System.Printing的快速比较表

此表格提供了IronPrint和System.Printing的功能和特性的快速概览,帮助开发人员根据其特定需求和平台目标做出明智决策。

步骤 1:创建用于打印文档的新项目

在 Visual Studio 中创建如图所示的控制台应用程序。

C#中如何与网络打印机打印:图2 - 创建控制台应用程序

提供项目名称和位置。

C#中如何与网络打印机打印:图3 - 提供项目名称

选择 .NET 版本。

C#中如何与网络打印机打印:图4 - 选择合适的.NET版本

现在项目已经创建并准备好进行进一步编码。

步骤 2:在新项目上安装 IronPrint

从 Visual Studio 包管理器安装 IronPrint,如下所示。

C#中如何与网络打印机打印:图5 - 通过Visual Studio包管理器搜索IronPrint

IronPrint 也可以使用以下命令安装:

PM > 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);
            }
        }
    }
}

代码解释

  1. 使用Printer.GetPrinterNames获取所有可用的打印机驱动程序。
  2. 使用Console.WriteLine打印名称。

输出

C#中如何与网络打印机打印:图6 - 可用打印机示例输出

步骤 4:使用 IronPrint 打印 PDF 文档

使用以下代码以静默方式打印文档:

using IronPrint;

namespace IronPrintDemo
{
    public class Program
    {
        public static void Main()
        {
            // Print the document silently
            Printer.Print("sample.pdf");
        }
    }
}

执行后,文档将如输出中所示添加到打印队列中。

输出

C#中如何与网络打印机打印:图7 - 展示文档被添加到打印队列的示例输出

步骤 5:使用对话框打印 PDF 文档

使用以下代码通过对话框打印文档:

using IronPrint;

namespace IronPrintDemo
{
    public class Program
    {
        public static void Main()
        {
            // Print with Dialog
            Printer.ShowPrintDialog("sample.pdf");
        }
    }
}

代码解释

  1. 使用IronPrint中的ShowPrintDialog可以通过对话框进行打印。
  2. 一旦对话框打开,选择所需的打印机来打印文档。

输出

C#中如何与网络打印机打印:图8 - 选择正确的打印机

步骤 6:使用打印设置进行高级打印

在 IronPrint 中支持使用高级设置打印文档。 它支持以下属性:

  1. **PaperSize:**指定打印机使用的纸张尺寸。
  2. **PaperOrientation:**定义纸张的方向,如自动、纵向或横向。
  3. **DPI:**设置每英寸点数为单位的所需打印分辨率。 默认值是 300,通常用于商业印刷。 实际 DPI 可能会受到打印机功能的限制。
  4. **NumberOfCopies:**指示要打印文档的相同副本数量。
  5. **PrinterName:**指定用于打印任务的打印机名称。
  6. **PaperMargins:**确定打印的页边距,以毫米为单位。
  7. **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);
        }
    }
}

代码解释

  1. 代码首先导入必要的命名空间 IronPrint,其中包含打印所需的类和方法。
  2. IronPrintDemo命名空间中,有一个名为Program的类被声明为public。
  3. Main 方法用作程序的入口点。
  4. 在 Main 方法中:
    • 实例化一个名为PrintSettings对象,以配置自定义打印设置。
    • Dpi属性设置为150,表示打印分辨率为每英寸150点。
    • NumberOfCopies属性设置为2,指定要打印两份相同的文档。
    • PaperOrientation.Portrait,表示文档将以纵向打印。
  5. 最后,调用printSettings(自定义打印设置)。 此方法使用指定的设置处理打印过程。

输出

C#中如何与网络打印机打印:图9 - 展示被添加到打印队列中准备打印的PDF文档的示例输出

许可证

IronPrint 来自 Iron Software 是一个企业库,需要许可证才能运行。 添加 IronPrint 许可证密钥使项目不受限制或水印地运行。 在此购买许可证或注册免费 30 天试用密钥此处

一旦获得许可证密钥,该密钥需要放置在应用程序的 appSettings.json 文件中。

{
  "IronPrint.License.LicenseKey": "IRONPRINT.KEY"
}
JSON

这样将打印文档而不受限制或水印。

结论

总而言之,IronPrint和System.Printing各有其优势,适用于不同场景。 IronPrint提供了一种简化而跨平台的解决方案,专注于简单性和多功能性,而System.Printing提供了本地集成和细粒度控制,尤其适合基于Windows的应用程序。 开发人员应根据其特定需求和平台目标,在 C# 项目中选择这些打印库之一。

IronPrint 通过提供用户友好的 API 和在各种平台和项目类型中的广泛兼容性,简化了 .NET 应用程序中的文档打印。通过本文中概述的步骤,您可以无缝地将打印功能集成到您的 .NET 项目中,提高其可用性和生产力。 探索 IronPrint 的可能性,为您的应用程序解锁高效的文档打印世界。

Curtis Chau
技术作家

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

...
阅读更多

相关文章

Key in blue circle

立即获取免费的 30 天试用版密钥

Your trial license will be sent to your email address

无任何限制。100% 解锁。无需信用卡。

bullet_checked无需信用卡或创建账户无任何限制。100% 解锁。无需信用卡。
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried IronPDF
预约您的免费现场演示
Booking Badge

深受全球数百万工程师信赖

Iron Software 的客户徽标
获取您的无义务咨询
填写下面的表格或通过sales@ironsoftware.com
您的资料将始终保密。
深受全球数百万工程师信赖
Iron Software 的客户徽标
立即获取您的免费30 天试用密钥
无需信用卡或创建账户