如何在 C# 中將 PDFPrinting.NET 移轉到 IronPDF
從 PDFPrinting.NET 遷移到 IronPDF 可以將您的 PDF 功能從僅列印庫擴展到處理完整 PDF 生命週期的綜合解決方案,包括建立、操作、提取、安全性和列印。 本指南提供了一條完整的、循序漸進的遷移路徑,在保留您現有列印工作流程的同時,增加了 PDF 生成、HTML 轉換和跨平台支援功能。
為什麼要從 PDFPrinting.NET 遷移到 IronPDF
了解 PDFPrinting.NET
PDFPrinting.NET 是一款專業的解決方案,在靜默 PDF 列印方面提供了無與倫比的簡單性和高效性。 PDFPrinting.NET 主要在 Windows 生態系統中運行,是一個商業庫,旨在專門滿足需要在應用程式中整合 PDF 列印功能的開發人員的需求。 PDFPrinting.NET 是一款專注於靜默、穩定地列印 PDF 的專用工具,它在簡化以編程方式列印文件而無需用戶幹預這一通常很複雜的任務方面找到了自己的定位。
PDFPrinting.NET 最顯著的優勢之一是能夠靜默列印文件。 它繞過了通常的列印對話框,實現了完全自動化的工作流程,這對於用戶互動要求極低的應用程式至關重要。
僅限列印的限制
PDFPrinting.NET 的一個明顯限制在於它只處理 PDF 處理的列印方面。 它無法建立、修改或操作 PDF 文檔,這限制了其對需要完整 PDF 文檔生命週期解決方案的開發人員的實用性:
1.僅列印:不能建立、編輯或操作 PDF 文件。
2.僅限 Windows:與 Windows 列印基礎架構綁定-不支援 Linux/macOS。 由於依賴 Windows 列印基礎架構,其適用範圍僅限於 Windows 環境,從而限制了跨平台可用性。
3.無法產生 PDF:無法將 HTML、URL 或資料轉換為 PDF。
4.不支援文件操作:無法合併、分割、新增浮水印或保護 PDF 文件。
5.無法提取文字:無法讀取或提取 PDF 中的內容。
6.不支援表單處理:無法填寫或展平 PDF 表單。
PDFPrinting.NET 與 IronPDF 的比較
| 特徵 | PDFPrinting.NET | IronPDF |
|---|---|---|
| 主要功能 | 靜默 PDF 列印 | 全流程處理(建立、編輯、列印) |
| 平台支援 | 僅限 Windows 系統 | 跨平台 |
| PDF建立/編輯功能 | 不 | 是的 |
| HTML 轉 PDF | 不 | 是的 |
| 適用於自動化工作流程 | 高的 | 高的 |
| 其他依賴項 | 依賴 Windows 印表機。 | 用於渲染的內部瀏覽器引擎 |
| 靜默列印 | 是的 | 是的 |
| 文字擷取 | 不支援 | 全力支持 |
| 授權 | 商業的 | 商業的 |
IronPDF 透過解決 PDF 處理的完整生命週期,提供了一個更全面的解決方案。 它方便用戶創建、編輯、轉換和列印 PDF 文檔,並透過統一的 API 為開發者提供一整套功能。 與 PDFPrinting.NET 不同,IronPDF 可以跨不同平台部署,因此對於在各種環境下運行的應用程式來說,它是一個用途廣泛的選擇。
對於計劃在 2025 年和 2026 年採用 .NET 10 和 C# 14 的團隊,IronPDF 提供了一個完整的 PDF 解決方案,可在 Windows、Linux 和 macOS 環境下運作。
開始之前
先決條件
- .NET 環境: .NET Framework 4.6.2+ 或 .NET Core 3.1+ / .NET 5/6/7/8/9+
- NuGet 存取權限:能夠安裝 NuGet 套件
- IronPDF 許可證:請從ironpdf.com取得您的許可證密鑰。
NuGet 套件變更
# Remove PDFPrinting.NET
dotnet remove package PDFPrinting.NET
# Install IronPDF
dotnet add package IronPdf# Remove PDFPrinting.NET
dotnet remove package PDFPrinting.NET
# Install IronPDF
dotnet add package IronPdf許可證配置
// Add at application startup (Program.cs or Startup.cs)
IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY";// Add at application startup (Program.cs or Startup.cs)
IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY";識別 PDFPrinting.NET 的使用情況
# Find PDFPrinting.NET usage
grep -r "PDFPrinting\|PDFPrinter" --include="*.cs" .
# Find print-related code
grep -r "\.Print(\|PrinterName\|GetPrintDocument" --include="*.cs" .# Find PDFPrinting.NET usage
grep -r "PDFPrinting\|PDFPrinter" --include="*.cs" .
# Find print-related code
grep -r "\.Print(\|PrinterName\|GetPrintDocument" --include="*.cs" .完整 API 參考
命名空間變更
// Before: PDFPrinting.NET
using PDFPrinting.NET;
using PDFPrintingNET;
// After: IronPDF
using IronPdf;
using IronPdf.Rendering;
using IronPdf.Printing;// Before: PDFPrinting.NET
using PDFPrinting.NET;
using PDFPrintingNET;
// After: IronPDF
using IronPdf;
using IronPdf.Rendering;
using IronPdf.Printing;核心類別映射
| PDFPrinting.NET | IronPDF | 筆記 |
|---|---|---|
PDFPrinter | PdfDocument | 核心 PDF 對象 |
HtmlToPdfConverter | ChromePdfRenderer | PDF生成 |
WebPageToPdfConverter | ChromePdfRenderer | URL轉換 |
| 列印設定屬性 | PrintSettings | 列印配置 |
印刷方法映射
| PDFPrinting.NET | IronPDF | 筆記 |
|---|---|---|
printer.Print(filePath) | pdf.Print() | 列印到預設印表機 |
printer.Print(path, printerName) | pdf.Print(printerName) | 列印到指定印表機 |
printer.PrinterName = "..." | pdf.Print("...") | 指定印表機 |
printer.GetPrintDocument(path) | pdf.GetPrintDocument() | 取得列印文檔 |
printer.Copies = n | printSettings.NumberOfCopies = n | 拷貝數 |
printer.Duplex = true | printSettings.DuplexMode = Duplex.Vertical | 雙面列印 |
printer.CollatePages = true | printSettings.Collate = true | 整理 |
PDFPrinting.NET 中不提供新功能
| IronPDF 功能 | 描述 |
|---|---|
renderer.RenderHtmlAsPdf(html) | HTML 轉 PDF |
renderer.RenderUrlAsPdf(url) | URL 轉 PDF |
PdfDocument.Merge(pdfs) | 合併多個PDF文件 |
pdf.ApplyWatermark(html) | 添加浮水印 |
pdf.SecuritySettings.UserPassword | 密碼保護 |
pdf.ExtractAllText() | 文字擷取 |
程式碼遷移範例
範例 1:HTML 轉 PDF
之前(PDFPrinting.NET):
// NuGet: Install-Package PDFPrinting.NET
using PDFPrinting.NET;
using System;
class Program
{
static void Main()
{
var converter = new HtmlToPdfConverter();
string html = "<html><body><h1>Hello World</h1></body></html>";
converter.ConvertHtmlToPdf(html, "output.pdf");
Console.WriteLine("PDF created successfully");
}
}// NuGet: Install-Package PDFPrinting.NET
using PDFPrinting.NET;
using System;
class Program
{
static void Main()
{
var converter = new HtmlToPdfConverter();
string html = "<html><body><h1>Hello World</h1></body></html>";
converter.ConvertHtmlToPdf(html, "output.pdf");
Console.WriteLine("PDF created successfully");
}
}(IronPDF 之後):
// NuGet: Install-Package IronPdf
using IronPdf;
using System;
class Program
{
static void Main()
{
var renderer = new ChromePdfRenderer();
string html = "<html><body><h1>Hello World</h1></body></html>";
var pdf = renderer.RenderHtmlAsPdf(html);
pdf.SaveAs("output.pdf");
Console.WriteLine("PDF created successfully");
}
}// NuGet: Install-Package IronPdf
using IronPdf;
using System;
class Program
{
static void Main()
{
var renderer = new ChromePdfRenderer();
string html = "<html><body><h1>Hello World</h1></body></html>";
var pdf = renderer.RenderHtmlAsPdf(html);
pdf.SaveAs("output.pdf");
Console.WriteLine("PDF created successfully");
}
}PDFPrinting.NET 使用HtmlToPdfConverter和ConvertHtmlToPdf(html, outputPath)將渲染和保存合併到一個呼叫中。 IronPDF 使用ChromePdfRenderer的RenderHtmlAsPdf()函數,該函數傳回一個PdfDocument對象,然後您可以使用SaveAs()函數將其儲存。 這種分離提供了更大的靈活性——您可以在保存之前對 PDF 進行操作(添加浮水印、與其他文件合併、添加安全措施)。
IronPDF 提供 HTML 轉 PDF 等功能,使開發人員能夠將 Web 內容渲染為 PDF,從而利用現代 Web 技術建立文件。 IronPDF 利用瀏覽器引擎,能夠精確地將網頁文件的樣式和渲染效果複製到 PDF 中。 請參閱HTML 轉 PDF 文件以取得完整範例。
範例 2:URL 轉 PDF
之前(PDFPrinting.NET):
// NuGet: Install-Package PDFPrinting.NET
using PDFPrinting.NET;
using System;
class Program
{
static void Main()
{
var converter = new WebPageToPdfConverter();
string url = "https://www.example.com";
converter.Convert(url, "webpage.pdf");
Console.WriteLine("PDF from URL created successfully");
}
}// NuGet: Install-Package PDFPrinting.NET
using PDFPrinting.NET;
using System;
class Program
{
static void Main()
{
var converter = new WebPageToPdfConverter();
string url = "https://www.example.com";
converter.Convert(url, "webpage.pdf");
Console.WriteLine("PDF from URL created successfully");
}
}(IronPDF 之後):
// NuGet: Install-Package IronPdf
using IronPdf;
using System;
class Program
{
static void Main()
{
var renderer = new ChromePdfRenderer();
string url = "https://www.example.com";
var pdf = renderer.RenderUrlAsPdf(url);
pdf.SaveAs("webpage.pdf");
Console.WriteLine("PDF from URL created successfully");
}
}// NuGet: Install-Package IronPdf
using IronPdf;
using System;
class Program
{
static void Main()
{
var renderer = new ChromePdfRenderer();
string url = "https://www.example.com";
var pdf = renderer.RenderUrlAsPdf(url);
pdf.SaveAs("webpage.pdf");
Console.WriteLine("PDF from URL created successfully");
}
}PDFPrinting.NET 使用WebPageToPdfConverter和Convert(url, outputPath) 。 IronPDF 使用相同的ChromePdfRenderer類別及其RenderUrlAsPdf()方法。 請注意,IronPDF 對 HTML 字串和 URL 使用同一個渲染器類,當您需要這兩種功能時,可以簡化您的程式碼。 了解更多信息,請閱讀我們的教程。
範例 3:頁首和頁尾
之前(PDFPrinting.NET):
// NuGet: Install-Package PDFPrinting.NET
using PDFPrinting.NET;
using System;
class Program
{
static void Main()
{
var converter = new HtmlToPdfConverter();
converter.HeaderText = "Company Report";
converter.FooterText = "Page {page} of {total}";
string html = "<html><body><h1>Document Content</h1></body></html>";
converter.ConvertHtmlToPdf(html, "report.pdf");
Console.WriteLine("PDF with headers/footers created");
}
}// NuGet: Install-Package PDFPrinting.NET
using PDFPrinting.NET;
using System;
class Program
{
static void Main()
{
var converter = new HtmlToPdfConverter();
converter.HeaderText = "Company Report";
converter.FooterText = "Page {page} of {total}";
string html = "<html><body><h1>Document Content</h1></body></html>";
converter.ConvertHtmlToPdf(html, "report.pdf");
Console.WriteLine("PDF with headers/footers created");
}
}(IronPDF 之後):
// NuGet: Install-Package IronPdf
using IronPdf;
using IronPdf.Rendering;
using System;
class Program
{
static void Main()
{
var renderer = new ChromePdfRenderer();
renderer.RenderingOptions.HtmlHeader = new HtmlHeaderFooter()
{
HtmlFragment = "<div style='text-align:center'>Company Report</div>"
};
renderer.RenderingOptions.HtmlFooter = new HtmlHeaderFooter()
{
HtmlFragment = "<div style='text-align:center'>Page {page} of {total-pages}</div>"
};
string html = "<html><body><h1>Document Content</h1></body></html>";
var pdf = renderer.RenderHtmlAsPdf(html);
pdf.SaveAs("report.pdf");
Console.WriteLine("PDF with headers/footers created");
}
}// NuGet: Install-Package IronPdf
using IronPdf;
using IronPdf.Rendering;
using System;
class Program
{
static void Main()
{
var renderer = new ChromePdfRenderer();
renderer.RenderingOptions.HtmlHeader = new HtmlHeaderFooter()
{
HtmlFragment = "<div style='text-align:center'>Company Report</div>"
};
renderer.RenderingOptions.HtmlFooter = new HtmlHeaderFooter()
{
HtmlFragment = "<div style='text-align:center'>Page {page} of {total-pages}</div>"
};
string html = "<html><body><h1>Document Content</h1></body></html>";
var pdf = renderer.RenderHtmlAsPdf(html);
pdf.SaveAs("report.pdf");
Console.WriteLine("PDF with headers/footers created");
}
}PDFPrinting.NET 使用簡單的字串屬性HeaderText和FooterText ,其中佔位符分別為{page}和{total} 。 IronPDF 使用HtmlHeaderFooter對象,其HtmlFragment屬性可以接受完整的 HTML,從而允許使用 CSS 進行豐富的樣式設定。 請注意佔位符語法的變化:PDFPrinting.NET 使用{total} ,而 IronPDF 則使用{total-pages} 。
關鍵遷移說明
佔位符語法更改
不同庫的頁首/頁尾佔位符有所不同:
// PDFPrinting.NET placeholders
"Page {page} of {total}"
// IronPDF placeholders
"Page {page} of {total-pages}"// PDFPrinting.NET placeholders
"Page {page} of {total}"
// IronPDF placeholders
"Page {page} of {total-pages}"先加載後列印圖案
PDFPrinting.NET 直接傳遞文件路徑; IronPDF 首先載入:
// PDFPrinting.NET: Direct path to Print()
printer.Print("document.pdf");
// IronPDF: Load first, then operate
var pdf = PdfDocument.FromFile("document.pdf");
pdf.Print();// PDFPrinting.NET: Direct path to Print()
printer.Print("document.pdf");
// IronPDF: Load first, then operate
var pdf = PdfDocument.FromFile("document.pdf");
pdf.Print();列印設定遷移
PDFPrinting.NET 使用屬性; IronPDF 使用設定對象:
// PDFPrinting.NET: Properties on printer object
printer.Copies = 2;
printer.Duplex = true;
// IronPDF: Settings object
var settings = new PrintSettings
{
NumberOfCopies = 2,
DuplexMode = System.Drawing.Printing.Duplex.Vertical
};
pdf.Print(settings);// PDFPrinting.NET: Properties on printer object
printer.Copies = 2;
printer.Duplex = true;
// IronPDF: Settings object
var settings = new PrintSettings
{
NumberOfCopies = 2,
DuplexMode = System.Drawing.Printing.Duplex.Vertical
};
pdf.Print(settings);HTML 標題與文字標題
// PDFPrinting.NET: Simple text
converter.HeaderText = "Company Report";
// IronPDF: 完整 HTML with styling
renderer.RenderingOptions.HtmlHeader = new HtmlHeaderFooter()
{
HtmlFragment = "<div style='text-align:center'>Company Report</div>"
};// PDFPrinting.NET: Simple text
converter.HeaderText = "Company Report";
// IronPDF: 完整 HTML with styling
renderer.RenderingOptions.HtmlHeader = new HtmlHeaderFooter()
{
HtmlFragment = "<div style='text-align:center'>Company Report</div>"
};遷移後的新功能
遷移到 IronPDF 後,您將獲得 PDFPrinting.NET 無法提供的功能:
PDF合併
var pdf1 = PdfDocument.FromFile("document1.pdf");
var pdf2 = PdfDocument.FromFile("document2.pdf");
var merged = PdfDocument.Merge(pdf1, pdf2);
merged.SaveAs("merged.pdf");var pdf1 = PdfDocument.FromFile("document1.pdf");
var pdf2 = PdfDocument.FromFile("document2.pdf");
var merged = PdfDocument.Merge(pdf1, pdf2);
merged.SaveAs("merged.pdf");水印
pdf.ApplyWatermark("<h2 style='color:red;'>CONFIDENTIAL</h2>");pdf.ApplyWatermark("<h2 style='color:red;'>CONFIDENTIAL</h2>");密碼保護
pdf.SecuritySettings.UserPassword = "userpassword";
pdf.SecuritySettings.OwnerPassword = "ownerpassword";pdf.SecuritySettings.UserPassword = "userpassword";
pdf.SecuritySettings.OwnerPassword = "ownerpassword";文字擷取
string text = pdf.ExtractAllText();string text = pdf.ExtractAllText();生成後列印工作流程
使用 IronPDF,您可以在一個工作流程中產生 PDF 檔案並列印:
var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf("<h1>Invoice</h1>");
pdf.Print("Invoice Printer");var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf("<h1>Invoice</h1>");
pdf.Print("Invoice Printer");跨平台列印
PDFPrinting.NET 僅適用於 Windows 系統。 IronPDF支援跨平台使用:
視窗
pdf.Print("HP LaserJet");pdf.Print("HP LaserJet");Linux
// Requires CUPS (Common Unix Printing System)
// Install: apt-get install cups
pdf.Print("HP_LaserJet"); // CUPS uses underscores instead of spaces// Requires CUPS (Common Unix Printing System)
// Install: apt-get install cups
pdf.Print("HP_LaserJet"); // CUPS uses underscores instead of spacesmacOS
pdf.Print("HP LaserJet");pdf.Print("HP LaserJet");功能對比總結
| 特徵 | PDFPrinting.NET | IronPDF |
|---|---|---|
| 靜默列印 | ✓ | ✓ |
| 列印設定 | ✓ | ✓ |
| HTML 轉 PDF | ✗ | ✓ |
| PDF檔案的URL | ✗ | ✓ |
| 頁首/頁尾 | 基本的 | 完整 HTML |
| 合併PDF | ✗ | ✓ |
| 拆分PDF | ✗ | ✓ |
| 水印 | ✗ | ✓ |
| 文字擷取 | ✗ | ✓ |
| 密碼保護 | ✗ | ✓ |
| 跨平台 | ✗ | ✓ |
遷移清單
遷移前
- 清點程式碼庫中所有 PDFPrinting.NET 的使用情況
- 記錄目前使用的所有印表機名稱
- 請注意所有列印設定配置
- 確定是否需要跨平台支持
- 規劃 IronPDF 許可證密鑰儲存(建議使用環境變數)
- 先使用 IronPDF 試用許可證進行測試
軟體包變更
- 刪除
PDFPrinting.NETNuGet 包 安裝IronPdfNuGet 套件:dotnet add package IronPdf
程式碼更改
- 更新命名空間匯入
- 將
HtmlToPdfConverter替換為ChromePdfRenderer - 將
WebPageToPdfConverter替換為ChromePdfRenderer - 將
ConvertHtmlToPdf(html, path)替換為RenderHtmlAsPdf(html).SaveAs(path) - 將
Convert(url, path)替換為RenderUrlAsPdf(url).SaveAs(path) - 將頁首/頁尾從
HeaderText/FooterText更新為HtmlHeader/HtmlFooter - 更新佔位符語法(
{total}→{total-pages}) - 將列印呼叫轉換為先載入後列印模式
- 將列印設定更新至
PrintSettings對象
移民後
- 在所有目標平台上進行測試列印
- 驗證頁首/頁尾渲染效果
- 考慮為動態文件添加 PDF 生成功能
- 根據需要新增功能(合併、浮水印、安全)。






