.NET框架下C#实现全环境打印PDF的完整教学

 更新时间:2026年01月29日 08:22:39   作者:Eiceblue  
在企业级应用与桌面开发中,PDF打印是高频核心需求,本文提供了多样化的PDF打印实现方案,兼顾兼容性与稳定性,感兴趣的小伙伴可以跟随小编一起学习一下

在企业级应用与桌面开发中,PDF打印是高频核心需求。.NET框架针对不同系统环境(Windows、Linux、Mac)及版本(.NET Framework 4.0/4.8、.NETStandard2.0、 .NET9.0、 .NET 10.0)提供了多样化的PDF打印实现方案,兼顾兼容性与稳定性。本文将分场景详解各环境下的PDF打印方法,助力开发者快速落地需求。

一、.NET Framework(4.0/4.8)框架Windows环境PDF打印

.NET Framework 4.0与4.8,框架作为Windows平台经典框架版本,依托系统原生组件与第三方库Spire.PDF可实现高效PDF打印,适配大多数桌面与服务器场景。

Spire.PDF支持以下高级打印设置

  • 指定打印机名称
  • 设置打印页面范围
  • 调整打印份数
  • 启用双面打印
  • 黑白(灰度)打印
  • 静默打印(隐藏对话框和进程)
  • 将不同页面打印到不同纸盒
  • 每张纸上打印多页

安装

Install-Package Spire.PDF

C#打印PDF 文档代码块

using Spire.Pdf;


namespace PrintWithDefaultPrinter

{
    class Program
    {
        static void Main(string[] args)
        {
            //创建一个 PdfDocument 对象
            PdfDocument doc = new PdfDocument();

            //加载一个 PDF 文件
            doc.LoadFromFile("C:/Users/Administrator/Desktop/Input.pdf");
         
            //指定打印机名称
            doc.PrintSettings.PrinterName = "您的打印机名称";

            //打印第1至第5页
            doc.PrintSettings.SelectPageRange(1, 5);

            //设置打印份数
            doc.PrintSettings.Copies = 2;

            //设置灰度打印
            doc.PrintSettings.Color = false;

            //每张纸打印多页
            doc.PrintSettings.SelectMultiPageLayout(2, 2);

            //执行打印
            doc.Print();
            //清理资源
            doc.Dispose();
        }
    }
}

二、.NET 10.0框架Windows、Linux 和 macOS 环境跨平台实现PDF打印

Spire.Printing是一款面向现代 .NET 应用的 跨平台打印库,支持在 Windows、Linux 和 macOS 平台上,通过 C# 实现 PDF文档的自动化打印。你将了解如何构建可打印的文档流、以代码方式选择打印机,并配置高级打印参数,从而在现代 .NET 10.0 应用中实现稳定、可控的跨平台打印方案。

安装

Install-Package Spire.Printing

Install-Package Spire.PDFfor.NETStandard

.NET10.0 跨平台打印PDF

using Spire.Pdf;
using Spire.Printing;

bool isWindows = System.Runtime.InteropServices.RuntimeInformation
    .IsOSPlatform(System.Runtime.InteropServices.OSPlatform.Windows);

using (PdfDocument pdfDocument = new PdfDocument())
{
    pdfDocument.LoadFromFile("test.pdf");

    var fileFormat = !isWindows
        ? Spire.Pdf.FileFormat.PDF
        : Spire.Pdf.FileFormat.XPS;

    MemoryStream stream = new MemoryStream();
    pdfDocument.SaveToStream(stream, fileFormat);

    IPrintDocumentStream pdfStream = !isWindows
        ? new PdfPrintDocument(stream)
        : new XpsPrintDocument(stream);

    //创建 PrintDocument
    PrintDocument printPdf = new PrintDocument(pdfStream);

    //选择打印页码范围
    printPdf.PrintSettings.SelectPageRange(1, 1);

    //设置打印份数
    printPdf.PrintSettings.Copies = 2;

    //执行打印
    printPdf.Print();
    // 释放资源
    printPdf.Dispose();
}

三、总结

.NET框架不同版本与系统环境下的PDF打印方案各有侧重:.NET Framework 4.0/4.8 Windows环境适合依赖原生组件或传统第三方库Spire.PDF的场景;.NET 10.0 Windows、Linux、Mac环境需依托跨平台Spire.Printing,适配系统特性。您可以根据项目框架版本、部署环境、功能需求选择合适方案,同时注重兼容性测试与权限配置,确保打印功能稳定落地。

到此这篇关于.NET框架下C#实现全环境打印PDF的完整教学的文章就介绍到这了,更多相关C#打印PDF内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • C#中SQL Command的基本用法

    C#中SQL Command的基本用法

    今天小编就为大家分享一篇关于C#中SQL Command的基本用法,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2018-10-10
  • c#委托把方法当成参数(实例讲解)

    c#委托把方法当成参数(实例讲解)

    本篇文章主要是对c#委托把方法当成参数的实例代码进行了介绍,需要的朋友可以过来参考下,希望对大家有所帮助
    2014-01-01
  • WPF使用内置资源系统实现应用程序国际化

    WPF使用内置资源系统实现应用程序国际化

    本文详细介绍了如何利用WPF内置资源系统实现应用程序的国际化和本地化,涵盖创建多语言资源字典、实现资源管理以及动态绑定资源等内容,帮助开发者轻松为WPF应用程序添加多语言支持,需要的朋友可以参考下
    2026-05-05
  • 使用C#实现AES加密与解密的示例

    使用C#实现AES加密与解密的示例

    在现代应用程序中,数据加密是保护敏感信息安全的重要手段,AES(高级加密标准)是一种广泛使用的对称加密算法,提供强大的数据保护功能,今天,我将为大家展示如何使用 C# 实现 AES 加密和解密,需要的朋友可以参考下
    2024-12-12
  • C#使用foreach语句简单遍历数组的方法

    C#使用foreach语句简单遍历数组的方法

    这篇文章主要介绍了C#使用foreach语句简单遍历数组的方法,涉及C#中foreach语句的使用技巧,非常具有实用价值,需要的朋友可以参考下
    2015-04-04
  • C#中Json的简单处理方法

    C#中Json的简单处理方法

    这篇文章主要介绍了C#中Json的简单处理方法的相关资料,非常不错,具有参考借鉴价值,需要的朋友可以参考下
    2016-09-09
  • C#编程自学之数据类型和变量三

    C#编程自学之数据类型和变量三

    C#语言类型系统提出的一个核心概念装箱(boxing)拆箱(unboxing)。装箱和取消装箱的概念是C#的类型系统的核心。它在“值类型”和“引用类型”之间的架起了一座桥梁,使得任何“值类型”的值都可以转换为object类型的值,反过来转换也可以。
    2015-10-10
  • C#移除所有事件绑定的方法

    C#移除所有事件绑定的方法

    这篇文章主要介绍了C#移除所有事件绑定的方法,实例分析了C#事件绑定的移除方法,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-03-03
  • WCF分布式开发之MSMQ消息队列

    WCF分布式开发之MSMQ消息队列

    这篇文章介绍了WCF分布式开发之MSMQ消息队列,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-05-05
  • Winform项目中使用FastReport.Net报表控件

    Winform项目中使用FastReport.Net报表控件

    这篇文章介绍了Winform项目中使用FastReport.Net报表控件的方法,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-06-06

最新评论