跳過到頁腳內容
遷移指南

如何在 C# 中從 PDFPrinting.NET 轉移到 IronPDF for .NET

從 PDFPrinting.NET 轉移到 IronPDF:完整的 C# 遷移指南。

從 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.NETIronPDF
主要功能無聲 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 環境中運作。


開始之前

先決條件

1..NET 環境:.NET Framework 4.6.2+ 或 .NET Core 3.1+ / .NET 5/6/7/8/9+ 2.NuGet存取:安裝 NuGet 套件的能力 3.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
SHELL

授權組態

// 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";
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

說明 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" .
SHELL

完整的 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;
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

核心類對應

PDFPrinting.NETIronPDF筆記
<代碼>PDFPrinter</代碼<編碼>PDF 文件</編碼核心 PDF 物件
<編碼>HtmlToPdfConverter</編碼<代碼>ChromePdfRenderer</代碼生成 PDF
<編碼>WebPageToPdfConverter</編碼<代碼>ChromePdfRenderer</代碼URL 轉換
列印設定屬性<編碼>列印設定</編碼列印配置

列印方法映射

PDFPrinting.NETIronPDF筆記
<程式碼>printer.Print(filePath)</程式碼<編碼>pdf.Print()</編碼列印至預設印表機
printer.Print(path,印表機名稱)pdf.Print(printerName)列印至特定印表機
printer.PrinterName="..."pdf.Print("...")指定印表機
<代碼>printer.GetPrintDocument(path)</代碼<代碼>pdf.GetPrintDocument()</代碼取得 PrintDocument
printer.Copies = nprintSettings.NumberOfCopies = n複製數量
printer.Duplex=trueprintSettings.DuplexMode = Duplex.Vertical列印設定。雙面列印
printer.CollatePages=trueprintSettings.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");
    }
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

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");
    }
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

PDFPrinting.NET 使用<編碼>HtmlToPdfConverter</編碼與 ConvertHtmlToPdf(html, outputPath) 結合渲染與儲存於一次呼叫中。IronPDF使用<代碼>ChromePdfRenderer</代碼與 RenderHtmlAsPdf() 產生<編碼>PDF 文件</編碼物件,然後使用 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");
    }
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

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");
    }
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

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");
    }
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

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");
    }
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

PDFPrinting.NET 使用簡單的字串屬性 HeaderTextFooterText 與佔位符 {page}{total} 。IronPDF使用 HtmlHeaderFooter 物件,其 HtmlFragment 屬性可接受完整的 HTML,允許使用 CSS 進行豐富的造型。 請注意佔位符的語法變更:PDFPrinting.NET 使用 {total} 而IronPDFfor .NET 使用 {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}"
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

先載入後列印模式

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();
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

列印設定轉換

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);
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

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>"
};
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

遷移後的新功能

轉移到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");
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

水印。

pdf.ApplyWatermark("<h2 style='color:red;'>CONFIDENTIAL</h2>");
pdf.ApplyWatermark("<h2 style='color:red;'>CONFIDENTIAL</h2>");
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

密碼保護

pdf.SecuritySettings.UserPassword = "userpassword";
pdf.SecuritySettings.OwnerPassword = "ownerpassword";
pdf.SecuritySettings.UserPassword = "userpassword";
pdf.SecuritySettings.OwnerPassword = "ownerpassword";
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

文字萃取

string text = pdf.ExtractAllText();
string text = pdf.ExtractAllText();
Dim text As String = pdf.ExtractAllText()
$vbLabelText   $csharpLabel

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");
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

跨平台列印

PDFPrinting.NET 僅限 Windows 使用。 IronPdf 可跨平台工作:

視窗

pdf.Print("HP LaserJet");
pdf.Print("HP LaserJet");
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

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
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

macOS

pdf.Print("HP LaserJet");
pdf.Print("HP LaserJet");
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

功能比較摘要

特點PDFPrinting.NETIronPDF
無聲印刷
列印設定
HTML 至 PDF
URL 至 PDF
頁首/頁尾基本的完整 HTML
合併 PDF
分割 PDF
水印
文字擷取
密碼保護
跨平台

遷移清單

預遷移

  • [ ] 清查代碼庫中所有 PDFPrinting.NET 的使用情況
  • [ ] 記錄目前使用的所有印表機名稱
  • [ ] 注意所有列印設定配置
  • [ ] 確定是否需要跨平台支援
  • [ ] 計劃IronPDF授權金鑰的儲存(建議使用環境變數)
  • [ ] 先使用 IronPdf 試用授權進行測試

套件變更

  • [ ] 移除 PDFPrinting.NET NuGet 套件
  • [ ] 安裝 IronPDF NuGet 套件:dotnet add package IronPdf

程式碼變更

  • [ ] 更新命名空間匯入
  • [ ] 將<編碼>HtmlToPdfConverter</編碼替換為 ChromePdfRenderer
  • [ ] 將<編碼>WebPageToPdfConverter</編碼替換為 ChromePdfRenderer
  • [ ] 將 ConvertHtmlToPdf(html, path) 改為 RenderHtmlAsPdf(html).SaveAs(path)
  • [ ] 將 Convert(url, path) 改為 RenderUrlAsPdf(url).SaveAs(path)
  • [ ] 更新 header/footer 從 HeaderText/FooterTextHtmlHeader/HtmlFooter
  • [ ] 更新占位符語法 ({total}{total-pages})
  • [ ] 將列印呼叫轉換為載入-列印模式
  • [更新列印設定至<編碼>列印設定</編碼物件

後遷移

  • [ ] 在所有目標平台上測試列印
  • [ ] 確認頁首/頁尾的呈現
  • [ ] 考慮為動態文件加入 PDF 生成功能
  • [ ] 必要時增加新功能(合併、水印、安全性

結論

從 PDFPrinting.NET 轉換到 IronPDF,可將您的 PDF 工作流程從純印刷解決方案轉換為完整的 PDF 生命週期資料庫。 PDFPrinting.NET 和IronPDF之間的抉擇主要圍繞專案的特定需求:如果唯一的需求是在 Windows 環境中進行強大且無聲的 PDF 列印,請選擇 PDFPrinting.NET; 如果專案需要跨越多種平台的完整 PDF 處理能力,請選擇 IronPDF。

本次轉換的主要變更如下 1.轉換器類別HtmlToPdfConverter /<編碼>WebPageToPdfConverter</編碼→ ChromePdfRenderer 2.HTML 方法ConvertHtmlToPdf(html, path)RenderHtmlAsPdf(html).SaveAs(path) 3.URL 方法Convert(url, path)RenderUrlAsPdf(url).SaveAs(path) 4.頁首/頁腳HeaderText/FooterText 屬性 → HtmlHeader/HtmlFooter 物件與HtmlFragment 5.占位符{total}{total-pages} 6.列印模式:直接路徑 → 列印時載入 7.平台支援:僅限 Windows → 跨平台 8.新功能:PDF 合併、水印、安全性、文字萃取等功能

探索完整的 IronPDF 文件教程API 參考,加速您的 PDFPrinting.NET 移植。

Curtis Chau
技術作家

Curtis Chau 擁有卡爾頓大學計算機科學學士學位,專注於前端開發,擅長於 Node.js、TypeScript、JavaScript 和 React。Curtis 熱衷於創建直觀且美觀的用戶界面,喜歡使用現代框架並打造結構良好、視覺吸引人的手冊。

除了開發之外,Curtis 對物聯網 (IoT) 有著濃厚的興趣,探索將硬體和軟體結合的創新方式。在閒暇時間,他喜愛遊戲並構建 Discord 機器人,結合科技與創意的樂趣。