C#教程

关注公众号 jb51net

关闭
首页 > 软件编程 > C#教程 > C#打印Word

C#中轻松实现Word文档打印的示例详解

作者:asdzx67

C#开发者使用原生API打印Word文档时,常因样式丢失、分页错乱及打印机配置复杂而被迫加班调试,下面我们就来看看相关的解决方法吧

痛点直击:C#开发者使用原生API打印Word文档时,常因样式丢失、分页错乱及打印机配置复杂而被迫加班调试。

为什么选择Spire.Doc?

版本要求:Spire.Doc for .NET 10.8.9+(需.NET 5.0或.NET Core 3.1+运行时)

章节一:环境配置与文档加载 

1.1 NuGet安装

Install-Package Spire.Doc

注意:社区版免费但有页数限制,商用需授权

1.2 文档加载方式对比

方法签名适用场景
LoadFile(string fileName)本地文件路径
LoadFile(Stream stream)内存流/网络流
using Spire.Doc;
using System.IO;
 
// 方式1:加载本地文件
Document doc = new Document();
doc.LoadFile(@"D:\Contracts\report.docx");
 
// 方式2:从内存流加载
byte[] fileBytes = File.ReadAllBytes("template.doc");
using (MemoryStream ms = new MemoryStream(fileBytes))
{
    doc.LoadFile(ms);
}

章节二:核心打印配置演示

2.1 PrinterSettings关键参数

PrinterSettings settings = doc.PrintDocument.PrinterSettings;
 
// 基础配置
settings.PrinterName = "HP LaserJet P2055dn"; // 指定打印机
settings.Copies = 2;                          // 打印份数
settings.Duplex = Duplex.Vertical;            // 双面打印
 
// 纸张尺寸控制
settings.DefaultPageSettings.PaperSize = 
    new PaperSize("A4", 827, 1169); // 单位:1/100英寸

2.2 分页逻辑控制

通过PrintPageEventArgs自定义分页策略:

doc.PrintDocument.PrintPage += (sender, e) => 
{
    if (e.PageSettings.PrintRange == PrintRange.SomePages)
    {
        // 动态调整页边距示例
        e.PageSettings.Margins.Left = 50; 
    }
    e.HasMorePages = false; // 终止分页
};

2.3 页面缩放语法对比表

功能Spire.DocInterop
缩放至A4doc.PrintSettings.ScaleToPercent = 100pageSetup.Zoom = 100
适合页面doc.PrintSettings.FitToPage = truepageSetup.FitToPagesWide = 1

章节三:高级打印技巧

3.1 异常处理(高频故障)

现象原因解决方案
拒绝访问权限不足以管理员身份运行程序
打印机不可用设备离线/未共享捕获InvalidPrinterException
OutOfMemoryException大文件处理失败分页加载+释放非托管资源

3.2 批量打印队列

List<string> files = Directory.GetFiles("待打印").ToList();
foreach (var file in files)
{
    using Document doc = new Document();
    doc.LoadFile(file);
    doc.PrintDocument.PrinterSettings = GetSharedSettings();
    doc.Print(); // 自动释放资源
}

3.3 性能优化三要素

1. 禁用预览doc.PrintSettings.PrintNoPages = true

2. 高速模式:设置打印质量为Draft

3. 资源回收:及时Dispose文档对象

总结与资源

五个关键参数

到此这篇关于C#中轻松实现Word文档打印的示例详解的文章就介绍到这了,更多相关C#打印Word内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:
阅读全文