在.NET生態中,傳統打印方案存在兩大核心問題:
- System.Drawing.Printing 需手動處理分頁邏輯、打印機配置複雜(API設計超過20個類)
- Word.Interop 依賴本地Office安裝,無法在Server環境穩定運行
如何實現無需Office環境的精準打印?本文將用Spire.Doc for .NET演示從頁面設置到批量打印的全流程。
一、.NET 打印組件核心優勢對比
| 對比維度 | System.Printing | Microsoft.Office.Interop | Spire.Doc |
|---|---|---|---|
| 環境依賴 | 需要.NET打印服務 | Office客户端 | 純.NET庫 |
| 跨平台支持 | Windows only | Windows only | 全平台 |
| 打印精度 | 中 | 高 | 專業級 |
| API複雜度 | 高 | 中等 | 低 |
➤ Spire.Doc 可直接通過 Nuget 安裝
NuGet\Install-Package Spire.Doc
二、三步實現基礎打印(代碼示例)
// 步驟1:加載文檔
Document doc = new Document();
doc.LoadFromFile("合同模板.docx");
// 步驟2:創建 PrintDocument 對象用於打印操作
PrintDocument printDoc = doc.PrintDocument;
// 步驟3:執行打印
printDoc.Print();
三、高級打印配置指南(帶註釋説明)
Spire.Doc 提供了 PrinterSettings 類來自定義選項,常見用例如下:
1. 紙張大小設置:
printDoc.PrinterSettings.PaperSize = new PaperSize("custom", 600, 800);
2. 設置打印份數:
printDoc.PrinterSettings.Copies = 3; // 3份
3. 指定打印範圍:
// 僅打印1-5頁
printDoc.PrinterSettings.FromPage = 1;
printDoc.PrinterSettings.ToPage = 5;
4. 靜默打印模式:
// 隱藏打印對話框
printDoc.PrintController = new StandardPrintController();
5. 雙面打印:
if (printDoc.PrinterSettings.CanDuplex)
{
settings.Duplex = Duplex.Default;
}
【注意事項模塊】
⚠️ 內存管理:及時調用doc.Dispose()釋放資源
⚠️ 異常處理:用try-catch捕獲PrinterException(如缺紙、離線)