






















痛点直击:C#开发者使用原生API打印Word文档时,常因样式丢失、分页错乱及打印机配置复杂而被迫加班调试。
为什么选择Spire.Doc?
版本要求:Spire.Doc for .NET 10.8.9+(需.NET 5.0或.NET Core 3.1+运行时)
Install-Package Spire.Doc⚠️ 注意:社区版免费但有页数限制,商用需授权
| 方法签名 | 适用场景 |
|---|---|
| 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);
}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英寸通过PrintPageEventArgs自定义分页策略:
doc.PrintDocument.PrintPage += (sender, e) =>
{
if (e.PageSettings.PrintRange == PrintRange.SomePages)
{
// 动态调整页边距示例
e.PageSettings.Margins.Left = 50;
}
e.HasMorePages = false; // 终止分页
};| 功能 | Spire.Doc | Interop |
|---|---|---|
| 缩放至A4 | doc.PrintSettings.ScaleToPercent = 100 | pageSetup.Zoom = 100 |
| 适合页面 | doc.PrintSettings.FitToPage = true | pageSetup.FitToPagesWide = 1 |
| 现象 | 原因 | 解决方案 |
|---|---|---|
| 拒绝访问 | 权限不足 | 以管理员身份运行程序 |
| 打印机不可用 | 设备离线/未共享 | 捕获InvalidPrinterException |
| OutOfMemoryException | 大文件处理失败 | 分页加载+释放非托管资源 |
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(); // 自动释放资源
}doc.PrintSettings.PrintNoPages = true此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。