如何在 C# 中從 PDFPrinting.NET 轉移到 IronPDF for .NET
從 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 vsIronPDF對比。
| 特點 | PDFPrinting.NET | IronPDF |
|---|---|---|
| 主要功能 | 無聲 PDF 列印 | 全周期處理(建立、編輯、列印) |
| 平台支援 | 僅限 Windows | 跨平台 |
| PDF 創建/操控能力 | 無 | 是 |
| HTML 至 PDF 轉檔 | 無 | 是 |
| 自動化工作流程的適用性 | 高的 | 高的 |
| 其他依賴項目 | 依賴 Windows 印表機 | 用於渲染的內部瀏覽器引擎 |
| 靜音列印 | 是 | 是 |
| 文字萃取 | 不支援 | 支援 |
| 授權 | 商業的 | 商業的 |
IronPDF 針對 PDF 處理的完整生命週期,提出了更全面的解決方案。 它有助於 PDF 文件的建立、編輯、轉換和列印,透過統一的 API 為開發人員提供全套功能。 與 PDFPrinting.NET 不同的是,IronPDF 可以在不同的平台上部署,因此對於在不同環境下運作的應用程式而言,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取得您的許可證密鑰。
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";
' Add at application startup (Program.vb or Startup.vb)
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;
' Before: PDFPrinting.NET
Imports PDFPrinting.NET
Imports PDFPrintingNET
' After: IronPDF
Imports IronPdf
Imports IronPdf.Rendering
Imports IronPdf.Printing
核心類對應
| PDFPrinting.NET | IronPDF |
|---|---|
PDFPrinter |
PdfDocument |
HtmlToPdfConverter |
ChromePdfRenderer |
WebPageToPdfConverter |
ChromePdfRenderer |
| 列印設定屬性 | 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");
}
}
Imports PDFPrinting.NET
Imports System
Class Program
Shared Sub Main()
Dim converter As New HtmlToPdfConverter()
Dim html As String = "<html><body><h1>Hello World</h1></body></html>"
converter.ConvertHtmlToPdf(html, "output.pdf")
Console.WriteLine("PDF created successfully")
End Sub
End Class
After (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");
}
}
Imports IronPdf
Imports System
Class Program
Shared Sub Main()
Dim renderer = New ChromePdfRenderer()
Dim html As String = "<html><body><h1>Hello World</h1></body></html>"
Dim pdf = renderer.RenderHtmlAsPdf(html)
pdf.SaveAs("output.pdf")
Console.WriteLine("PDF created successfully")
End Sub
End Class
PDFPrinting.NET 使用 HtmlToPdfConverter 和 ConvertHtmlToPdf(html, outputPath),將渲染和保存合併在一個呼叫中。IronPDF使用 ChromePdfRenderer 和 RenderHtmlAsPdf(),傳回一個 PdfDocument 對象,然後使用 SaveAs() 儲存該物件。 這種分離方式提供了更大的靈活性-您可以在儲存之前對 PDF 進行處理(添加水印、與其他文件合併、添加安全性)。
IronPDF 提供 HTML-to-PDF 轉換等功能,讓開發人員可以將網頁內容轉換成 PDF - 充分利用現代網路技術來製作文件。 透過內部利用瀏覽器引擎,IronPDF 可以準確地將網頁文件的樣式和渲染複製到 PDF 中。 請參閱 HTML to 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");
}
}
Imports PDFPrinting.NET
Imports System
Class Program
Shared Sub Main()
Dim converter As New WebPageToPdfConverter()
Dim url As String = "https://www.example.com"
converter.Convert(url, "webpage.pdf")
Console.WriteLine("PDF from URL created successfully")
End Sub
End Class
After (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");
}
}
Imports IronPdf
Imports System
Class Program
Shared Sub Main()
Dim renderer = New ChromePdfRenderer()
Dim url As String = "https://www.example.com"
Dim pdf = renderer.RenderUrlAsPdf(url)
pdf.SaveAs("webpage.pdf")
Console.WriteLine("PDF from URL created successfully")
End Sub
End Class
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");
}
}
Imports PDFPrinting.NET
Imports System
Class Program
Shared Sub Main()
Dim converter As New HtmlToPdfConverter()
converter.HeaderText = "Company Report"
converter.FooterText = "Page {page} of {total}"
Dim html As String = "<html><body><h1>Document Content</h1></body></html>"
converter.ConvertHtmlToPdf(html, "report.pdf")
Console.WriteLine("PDF with headers/footers created")
End Sub
End Class
After (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");
}
}
Imports IronPdf
Imports IronPdf.Rendering
Imports System
Class Program
Shared Sub Main()
Dim renderer As New ChromePdfRenderer()
renderer.RenderingOptions.HtmlHeader = New HtmlHeaderFooter() With {
.HtmlFragment = "<div style='text-align:center'>Company Report</div>"
}
renderer.RenderingOptions.HtmlFooter = New HtmlHeaderFooter() With {
.HtmlFragment = "<div style='text-align:center'>Page {page} of {total-pages}</div>"
}
Dim html As String = "<html><body><h1>Document Content</h1></body></html>"
Dim pdf = renderer.RenderHtmlAsPdf(html)
pdf.SaveAs("report.pdf")
Console.WriteLine("PDF with headers/footers created")
End Sub
End Class
PDFPrinting.NET 使用簡單的字串屬性 HeaderText 和 FooterText,以及佔位符 {page} 和 {total}。IronPDF使用 HtmlHeaderFooter 對象,並具有 HtmlFragment 屬性,該屬性接受完整的 HTML,從而允許使用 CSS 進行豐富的樣式設定。 請注意佔位符語法變更:PDFPrinting.NET 使用 {total},而IronPDF使用 {total-pages}。
關鍵遷移注意事項
占位符語法變更
不同函式庫的頁首/頁尾占位符有所不同:
// PDFPrinting.NET placeholders
"Page {page} of {total}"
//IronPDFplaceholders
"Page {page} of {total-pages}"
// PDFPrinting.NET placeholders
"Page {page} of {total}"
//IronPDFplaceholders
"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: Direct path to Print()
printer.Print("document.pdf")
' IronPDF: Load first, then operate
Dim 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);
' PDFPrinting.NET: Properties on printer object
printer.Copies = 2
printer.Duplex = True
' IronPDF: Settings object
Dim settings As New PrintSettings With {
.NumberOfCopies = 2,
.DuplexMode = System.Drawing.Printing.Duplex.Vertical
}
pdf.Print(settings)
HTML 標頭 vs 文字標頭
// PDFPrinting.NET: Simple text
converter.HeaderText = "Company Report";
// IronPDF:完整 HTMLwith styling
renderer.RenderingOptions.HtmlHeader = new HtmlHeaderFooter()
{
HtmlFragment = "<div style='text-align:center'>Company Report</div>"
};
// PDFPrinting.NET: Simple text
converter.HeaderText = "Company Report";
// IronPDF:完整 HTMLwith styling
renderer.RenderingOptions.HtmlHeader = new HtmlHeaderFooter()
{
HtmlFragment = "<div style='text-align:center'>Company Report</div>"
};
' PDFPrinting.NET: Simple text
converter.HeaderText = "Company Report"
' IronPDF:完整 HTMLwith styling
renderer.RenderingOptions.HtmlHeader = New HtmlHeaderFooter() With {
.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");
Dim pdf1 = PdfDocument.FromFile("document1.pdf")
Dim pdf2 = PdfDocument.FromFile("document2.pdf")
Dim 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.ApplyWatermark("<h2 style='color:red;'>CONFIDENTIAL</h2>")
密碼保護
pdf.SecuritySettings.UserPassword = "userpassword";
pdf.SecuritySettings.OwnerPassword = "ownerpassword";
pdf.SecuritySettings.UserPassword = "userpassword";
pdf.SecuritySettings.OwnerPassword = "ownerpassword";
pdf.SecuritySettings.UserPassword = "userpassword"
pdf.SecuritySettings.OwnerPassword = "ownerpassword"
文字萃取
string text = pdf.ExtractAllText();
string text = pdf.ExtractAllText();
Dim text As String = pdf.ExtractAllText()
Generate-Then-Print 工作流程
使用 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");
Dim renderer As New ChromePdfRenderer()
Dim pdf = renderer.RenderHtmlAsPdf("<h1>Invoice</h1>")
pdf.Print("Invoice Printer")
跨平台列印
PDFPrinting.NET 僅限 Windows 使用。IronPDF可跨平台工作:
視窗
pdf.Print("HP LaserJet");
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 spaces
macOS
pdf.Print("HP LaserJet");
pdf.Print("HP LaserJet");
pdf.Print("HP LaserJet")
功能比較摘要
| 特點 | PDFPrinting.NET | IronPDF |
|---|---|---|
| 無聲印刷 | ✓ | ✓ |
| 列印設定 | ✓ | ✓ |
| HTML 至 PDF | ✗ | ✓ |
| URL 至 PDF | ✗ | ✓ |
| 頁首/頁尾 | 基本的 | 完整 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 生成功能
- 根據需要新增功能(合併、浮水印、安全)。

