如何在 C# 中從 PDFFilePrint 轉移到 IronPDF
從PDFFilePrint移轉至 IronPDF:完整的 C# 遷移指南。
從PDFFilePrint轉換到 IronPDF,可將您的 .NET PDF 工作流程從功能有限、以列印為重點的實用程式,轉換為以單一統一 API 處理建立、操作和列印的綜合 PDF 函式庫。 本指南提供了一個完整的分步遷移路徑,消除了命令列依賴性,同時增加了PDFFilePrint無法提供的 PDF 生成和處理功能。
為什麼要從PDFFilePrint轉移到 IronPDF?
瞭解 PDFFilePrint。
PDFFilePrint 是專為從 C# 應用程式列印 PDF 檔案而設計的實用工具。 雖然它能很好地完成目標 PDF 列印任務,但其功能僅限於文件處理的一個方面。PDFFilePrint的主要誘惑在於它的簡單性 - 專注於提供 PDF 檔案的列印體驗。 然而,這種狹隘的焦點對於全面的文件管理系統造成了很大的限制。
PDFFilePrint的關鍵限制
1.專注於列印:PDFFilePrint 的功能僅限於列印。 它缺乏建立或修改 PDF 檔案的功能,對於更全面的文件管理系統而言,這是一種限制。
2.指令行依賴性:PDFFilePrint 通常依靠 Process.Start() 呼叫进行命令行操作,可能无法满足无缝集成到需要更强大 API 的应用程序中的需求。
3.僅限 Windows:由於它嚴重依賴 Windows 列印系統,因此對於使用其他作業系統的環境而言,可能不是最佳選擇。
4.無 .NET 整合:無本機 API、無 NuGet 套件,且在某些使用模式下不支援 IntelliSense。
5.外部流程管理:必須從 stdout/stderr 處理程序生命週期、退出代碼和錯誤解析。
6.有限的錯誤處理:檢測錯誤需要解析標準輸出和錯誤串流,而不是本機異常。
7.部署複雜性:必須在命令列使用情境中將 PDFFilePrint.exe 與應用程式捆綁在一起。
8.無法產生 PDF:無法建立 PDF,只能在命令列模式下列印現有的 PDF。
PDFFilePrint與IronPDF的比較
| 範疇 | PDFFilePrint | IronPDF |
|---|---|---|
| 主要焦點 | PDF 列印 | 全面的 PDF API |
| 類型 | 命令列工具/基本函式庫 | 原生 .NET 函式庫 |
| 整合。 | Process.Start() / 基本 API | 直接調用 API |
| PDF 列印 | ✓ | ✓ |
| PDF製作 | 限額 | ✓(HTML、URL、圖片) |
| PDF 操作 | ✗ | ✓(合併、分割、編輯) |
| 跨平台 | 僅限 Windows | Windows, Linux, macOS |
| 錯誤處理 | 解析 stdout/stderr | 原生例外 |
| IntelliSense。 | 限額 | 全面支援 |
| NuGet套件 | 限額 | ✓ |
| 說明文件 | 基本的 | 廣泛 |
對於計劃在 2025 年和 2026 年之前採用 .NET 10 和 C# 14 的團隊而言,IronPDF 提供了全面的基礎,具有跨平台支援和積極的開發,解決了PDFFilePrint在架構上的限制。
開始之前
先決條件
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 套件變更
# RemovePDFFilePrintpackage (if installed via NuGet)
dotnet remove package PDFFilePrint
# If using command-line PDFFilePrint.exe, remove from deployment
# Delete bundled PDFFilePrint.exe from your project
# Install IronPDF
dotnet add package IronPdf# RemovePDFFilePrintpackage (if installed via NuGet)
dotnet remove package PDFFilePrint
# If using command-line PDFFilePrint.exe, remove from deployment
# Delete bundled PDFFilePrint.exe from your project
# 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";IRON VB CONVERTER ERROR developers@ironsoftware.com辨識PDFFilePrint使用方式
# FindPDFFilePrintreferences
grep -r "PDFFilePrint\|PDFFile\|CreateFromHtml\|CreateFromUrl" --include="*.cs" .
# Find command-line execution patterns
grep -r "ProcessStartInfo.*pdf\|Process.Start.*print" --include="*.cs" .
# Find batch scripts
find . -name "*.bat" -o -name "*.cmd" | xargs grep -l "PDFFilePrint"# FindPDFFilePrintreferences
grep -r "PDFFilePrint\|PDFFile\|CreateFromHtml\|CreateFromUrl" --include="*.cs" .
# Find command-line execution patterns
grep -r "ProcessStartInfo.*pdf\|Process.Start.*print" --include="*.cs" .
# Find batch scripts
find . -name "*.bat" -o -name "*.cmd" | xargs grep -l "PDFFilePrint"完整的 API 參考資料
命名空間變更
// PDFFilePrint
using PDFFilePrint;
using System.Diagnostics; // For command-line usage
// IronPDF
using IronPdf;
using IronPdf.Printing;// PDFFilePrint
using PDFFilePrint;
using System.Diagnostics; // For command-line usage
// IronPDF
using IronPdf;
using IronPdf.Printing;IRON VB CONVERTER ERROR developers@ironsoftware.com核心類對應
| PDFFilePrint | IronPDF | 筆記 |
|---|---|---|
new PDFFile() | 新的 ChromePdfRenderer() | 用於製作 PDF |
new PDFFile() | <代碼>PdfDocument.FromFile()</代碼 | 用於載入現有的 PDF |
| <編碼>PDF 檔案</編碼 | <編碼>PDF 文件</編碼 | 文件物件 |
PDF 生成方法映射
| PDFFilePrint | IronPDF | 筆記 |
|---|---|---|
pdf.CreateFromHtml(html) | renderer.RenderHtmlAsPdf(html)。 | HTML 至 PDF |
pdf.CreateFromUrl(url)。 | renderer.RenderUrlAsPdf(url)。 | URL 至 PDF |
| <代碼>pdf.SaveToFile(路徑)</代碼 | <代碼>pdf.SaveAs(路徑)</代碼 | 儲存至檔案 |
PDF 載入與列印對應
| PDFFilePrint | IronPDF | 筆記 |
|---|---|---|
| <代碼>pdf.LoadFromFile(路徑)</代碼 | PdfDocument.FromFile(path) | 載入現有 PDF |
pdf.Print(printerName)。 | pdf.Print(printerName)。 | 列印至特定印表機 |
pdf.Print("預設印表機")。 | <編碼>pdf.Print()</編碼 | 列印為預設值 |
列印設定對應 (指令列至 API)
| PDFFilePrint 旗幟 | IronPdf PrintSettings 屬性 | 筆記 |
|---|---|---|
-printer "Name" | 印表機名稱 | <編碼>字串</編碼 |
-copies N | <編碼>份數</編碼 | int |
-silent | ShowPrintDialog = false。 | 顛倒邏輯 |
-頁數 "1-5" | FromPage、ToPage | int |
-導向景觀 | 紙張方向 | <代碼>PdfPrintOrientation</代碼 |
-duplex | Duplex | Duplex 枚舉 |
-collate | Collate | bool |
PDFFilePrint沒有的新功能
| IronPdf 特點 | 說明 |
|---|---|
| <代碼>PdfDocument.Merge()</代碼 | 結合多個 PDF |
| <代碼>pdf.CopyPages()</代碼 | 擷取特定頁面 |
| <代碼>pdf.ApplyWatermark()</代碼 | 加入水印 |
| <編碼>pdf.SecuritySettings</編碼 | 密碼保護 |
| <代碼>pdf.ExtractAllText()</代碼 | 擷取文字內容 |
| <代碼>pdf.RasterizeToImageFiles()</代碼 | 轉換為影像 |
| <代碼>pdf.SignWithDigitalSignature()</代碼 | 數位簽名 |
程式碼遷移範例
範例 1:HTML 到 PDF 的轉換
之前 (PDFFilePrint):
// NuGet: Install-Package PDFFilePrint
using System;
using PDFFilePrint;
class Program
{
static void Main()
{
var pdf = new PDFFile();
string htmlContent = "<html><body><h1>Hello World</h1></body></html>";
pdf.CreateFromHtml(htmlContent);
pdf.SaveToFile("output.pdf");
}
}// NuGet: Install-Package PDFFilePrint
using System;
using PDFFilePrint;
class Program
{
static void Main()
{
var pdf = new PDFFile();
string htmlContent = "<html><body><h1>Hello World</h1></body></html>";
pdf.CreateFromHtml(htmlContent);
pdf.SaveToFile("output.pdf");
}
}IRON VB CONVERTER ERROR developers@ironsoftware.comAfter (IronPDF):
// NuGet: Install-Package IronPdf
using IronPdf;
using System;
class Program
{
static void Main()
{
var renderer = new ChromePdfRenderer();
string htmlContent = "<html><body><h1>Hello World</h1></body></html>";
var pdf = renderer.RenderHtmlAsPdf(htmlContent);
pdf.SaveAs("output.pdf");
}
}// NuGet: Install-Package IronPdf
using IronPdf;
using System;
class Program
{
static void Main()
{
var renderer = new ChromePdfRenderer();
string htmlContent = "<html><body><h1>Hello World</h1></body></html>";
var pdf = renderer.RenderHtmlAsPdf(htmlContent);
pdf.SaveAs("output.pdf");
}
}IRON VB CONVERTER ERROR developers@ironsoftware.com這裡的根本差異在於 API 模式。PDFFilePrint使用單一<編碼>PDF 檔案</編碼類與 CreateFromHtml() 和 SaveToFile() 方法。IronPDF將渲染與文件物件分離-ChromePdfRenderer 處理 HTML 至 PDF 的轉換,並傳回一個<編碼>PDF 文件</編碼物件,然後使用 SaveAs() 儲存。
這種分離提供了顯著的優勢:您可以在轉換之前在渲染器上設定渲染選項,並且可以在儲存之前對返回的<編碼>PDF 文件</編碼進行操作(添加水印、與其他 PDF 合併、添加安全性)。 請參閱 HTML to PDF 文件,以瞭解其他渲染選項。
範例 2:URL 到 PDF 的轉換
之前 (PDFFilePrint):
// NuGet: Install-Package PDFFilePrint
using System;
using PDFFilePrint;
class Program
{
static void Main()
{
var pdf = new PDFFile();
pdf.CreateFromUrl("https://www.example.com");
pdf.SaveToFile("webpage.pdf");
}
}// NuGet: Install-Package PDFFilePrint
using System;
using PDFFilePrint;
class Program
{
static void Main()
{
var pdf = new PDFFile();
pdf.CreateFromUrl("https://www.example.com");
pdf.SaveToFile("webpage.pdf");
}
}IRON VB CONVERTER ERROR developers@ironsoftware.comAfter (IronPDF):
// NuGet: Install-Package IronPdf
using IronPdf;
using System;
class Program
{
static void Main()
{
var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderUrlAsPdf("https://www.example.com");
pdf.SaveAs("webpage.pdf");
}
}// NuGet: Install-Package IronPdf
using IronPdf;
using System;
class Program
{
static void Main()
{
var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderUrlAsPdf("https://www.example.com");
pdf.SaveAs("webpage.pdf");
}
}IRON VB CONVERTER ERROR developers@ironsoftware.comPDFFilePrint 在相同的<編碼>PDF 檔案</編碼類上使用 CreateFromUrl() 。IronPDF使用 ChromePdfRenderer 上專用的 RenderUrlAsPdf() 方法,該方法利用現代 Chromium 引擎,可準確呈現複雜的 CSS3、JavaScript 和現代網路功能。 渲染品質可預測,並與您在 Chrome 瀏覽器中看到的內容相符。 進一步了解 URL 至 PDF 轉換。
範例 3:PDF 列印
之前 (PDFFilePrint):
// NuGet: Install-Package PDFFilePrint
using System;
using PDFFilePrint;
class Program
{
static void Main()
{
var pdf = new PDFFile();
pdf.LoadFromFile("document.pdf");
pdf.Print("Default Printer");
Console.WriteLine("PDF sent to printer");
}
}// NuGet: Install-Package PDFFilePrint
using System;
using PDFFilePrint;
class Program
{
static void Main()
{
var pdf = new PDFFile();
pdf.LoadFromFile("document.pdf");
pdf.Print("Default Printer");
Console.WriteLine("PDF sent to printer");
}
}IRON VB CONVERTER ERROR developers@ironsoftware.comAfter (IronPDF):
// NuGet: Install-Package IronPdf
using IronPdf;
using System;
class Program
{
static void Main()
{
var pdf = PdfDocument.FromFile("document.pdf");
pdf.Print();
Console.WriteLine("PDF sent to printer");
}
}// NuGet: Install-Package IronPdf
using IronPdf;
using System;
class Program
{
static void Main()
{
var pdf = PdfDocument.FromFile("document.pdf");
pdf.Print();
Console.WriteLine("PDF sent to printer");
}
}IRON VB CONVERTER ERROR developers@ironsoftware.com此範例顯示 PDF 載入與列印的基本架構差異。PDFFilePrint使用new PDFFile()之後的 LoadFromFile() ,然後是 Print(printerName) 。IronPDF使用靜態工廠方法<代碼>PdfDocument.FromFile()</代碼直接載入,然後是 Print() 使用預設的印表機(也可以傳入印表機名稱)。
主要的轉移變化: -new PDFFile()+ LoadFromFile(path) → PdfDocument.FromFile(path)
Print("Default Printer")→Print()(預設印表機為自動)
對於進階的列印設定,IronPDF 提供了一個 PrintSettings 類。 有關進階選項,請參閱 列印文件。
進階列印設定轉換
對於使用PDFFilePrint的命令列旗標的應用程式,以下是如何轉換至IronPDF的 PrintSettings 的方法:
//PDFFilePrintcommand-line approach:
// PDFFilePrint.exe -silent -copies 3 -printer "HP LaserJet" -pages "1-5" "document.pdf"
//IronPDFequivalent:
using IronPdf;
var pdf = PdfDocument.FromFile("document.pdf");
var settings = new PrintSettings
{
ShowPrintDialog = false, // -silent
NumberOfCopies = 3, // -copies 3
PrinterName = "HP LaserJet", // -printer "HP LaserJet"
FromPage = 1, // -pages "1-5"
ToPage = 5
};
pdf.Print(settings);//PDFFilePrintcommand-line approach:
// PDFFilePrint.exe -silent -copies 3 -printer "HP LaserJet" -pages "1-5" "document.pdf"
//IronPDFequivalent:
using IronPdf;
var pdf = PdfDocument.FromFile("document.pdf");
var settings = new PrintSettings
{
ShowPrintDialog = false, // -silent
NumberOfCopies = 3, // -copies 3
PrinterName = "HP LaserJet", // -printer "HP LaserJet"
FromPage = 1, // -pages "1-5"
ToPage = 5
};
pdf.Print(settings);IRON VB CONVERTER ERROR developers@ironsoftware.com靜音模式旗號轉換
請注意無聲列印的反向邏輯:
// PDFFilePrint: -silent flag enables silent mode
// IronPDF: ShowPrintDialog = false (false = silent)
var settings = new PrintSettings { ShowPrintDialog = false };// PDFFilePrint: -silent flag enables silent mode
// IronPDF: ShowPrintDialog = false (false = silent)
var settings = new PrintSettings { ShowPrintDialog = false };IRON VB CONVERTER ERROR developers@ironsoftware.com遷移後的新功能
轉移到IronPDF之後,您將獲得PDFFilePrint無法提供的功能:
一步完成建立與列印
using IronPdf;
var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf("<h1>Invoice #12345</h1><p>Thank you for your order.</p>");
pdf.Print("Office Printer");using IronPdf;
var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf("<h1>Invoice #12345</h1><p>Thank you for your order.</p>");
pdf.Print("Office Printer");IRON VB CONVERTER ERROR developers@ironsoftware.comPDF 合併
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水印。
var pdf = PdfDocument.FromFile("document.pdf");
pdf.ApplyWatermark("<h1 style='color:red; opacity:0.3;'>CONFIDENTIAL</h1>");
pdf.SaveAs("watermarked.pdf");var pdf = PdfDocument.FromFile("document.pdf");
pdf.ApplyWatermark("<h1 style='color:red; opacity:0.3;'>CONFIDENTIAL</h1>");
pdf.SaveAs("watermarked.pdf");IRON VB CONVERTER ERROR developers@ironsoftware.com密碼保護
var pdf = renderer.RenderHtmlAsPdf(html);
pdf.SecuritySettings.UserPassword = "userpassword";
pdf.SecuritySettings.OwnerPassword = "ownerpassword";
pdf.SaveAs("secured.pdf");var pdf = renderer.RenderHtmlAsPdf(html);
pdf.SecuritySettings.UserPassword = "userpassword";
pdf.SecuritySettings.OwnerPassword = "ownerpassword";
pdf.SaveAs("secured.pdf");IRON VB CONVERTER ERROR developers@ironsoftware.com文字萃取
var pdf = PdfDocument.FromFile("document.pdf");
string text = pdf.ExtractAllText();var pdf = PdfDocument.FromFile("document.pdf");
string text = pdf.ExtractAllText();IRON VB CONVERTER ERROR developers@ironsoftware.com關鍵遷移注意事項
類別模式變更
PDFFilePrint 使用單一<編碼>PDF 檔案</編碼類來處理一切; IronPdf 將關注點分開:
// PDFFilePrint: Single class
var pdf = new PDFFile();
pdf.CreateFromHtml(html);
pdf.SaveToFile(path);
// IronPDF: Renderer for creation, Document for manipulation
var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf(html);
pdf.SaveAs(path);// PDFFilePrint: Single class
var pdf = new PDFFile();
pdf.CreateFromHtml(html);
pdf.SaveToFile(path);
// IronPDF: Renderer for creation, Document for manipulation
var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf(html);
pdf.SaveAs(path);IRON VB CONVERTER ERROR developers@ironsoftware.com方法命名變更
//PDFFilePrint→ IronPDF
CreateFromHtml() → RenderHtmlAsPdf()
CreateFromUrl() → RenderUrlAsPdf()
LoadFromFile() → PdfDocument.FromFile()
SaveToFile() → SaveAs()
Print(printerName) → Print(printerName) or Print()//PDFFilePrint→ IronPDF
CreateFromHtml() → RenderHtmlAsPdf()
CreateFromUrl() → RenderUrlAsPdf()
LoadFromFile() → PdfDocument.FromFile()
SaveToFile() → SaveAs()
Print(printerName) → Print(printerName) or Print()IRON VB CONVERTER ERROR developers@ironsoftware.com退出程式碼至例外處理
如果使用命令列 PDFFilePrint:
// PDFFilePrint: Check process exit code
if (process.ExitCode != 0) {
var error = process.StandardError.ReadToEnd();
throw new Exception($"Print failed: {error}");
}
// IronPDF: Use try-catch
try {
pdf.Print();
}
catch (Exception ex) {
// Handle error with full exception details
}// PDFFilePrint: Check process exit code
if (process.ExitCode != 0) {
var error = process.StandardError.ReadToEnd();
throw new Exception($"Print failed: {error}");
}
// IronPDF: Use try-catch
try {
pdf.Print();
}
catch (Exception ex) {
// Handle error with full exception details
}IRON VB CONVERTER ERROR developers@ironsoftware.com移除外部相依性
如果使用命令列 PDFFilePrint,請移除隨附的可執行檔:
// Before: Required external executable
private readonly string _pdfFilePrintPath = @"C:\tools\PDFFilePrint.exe";
// After: No external dependencies
//IronPDFis fully self-contained via NuGet// Before: Required external executable
private readonly string _pdfFilePrintPath = @"C:\tools\PDFFilePrint.exe";
// After: No external dependencies
//IronPDFis fully self-contained via NuGetIRON VB CONVERTER ERROR developers@ironsoftware.com功能比較摘要
| 特點 | PDFFilePrint | IronPDF |
|---|---|---|
| 基本印刷 | ✓ | ✓ |
| 無聲印刷 | ✓ | ✓ |
| 多份副本 | ✓ | ✓ |
| 頁數 | ✓ | ✓ |
| 雙語 | 變化 | ✓ |
| 從 HTML 建立 | 限額 | ✓ |
| 從 URL 建立 | 限額 | ✓ |
| 合併 PDF | ✗ | ✓ |
| 分割 PDF | ✗ | ✓ |
| 加入水印 | ✗ | ✓ |
| 擷取文字 | ✗ | ✓ |
| 密碼保護 | ✗ | ✓ |
| 數位簽名 | ✗ | ✓ |
| 跨平台 | ✗ | ✓ |
| 本地 .NET API | 限額 | ✓ |
遷移清單
預遷移
- [ ] 在程式碼庫中找出所有PDFFilePrint參考資料
- [ ] 記錄目前使用的方法 (CreateFromHtml、CreateFromUrl、Print 等)
- [ ] 識別跨環境使用的印表機名稱
- [如果使用 Process.Start 模式,請列出任何命令列參數
- [ ] 尋找新功能的機會 (合併、水印、安全性)
- [ ] 獲得 IronPdf 授權金鑰
套件變更
- [ ] 移除
PDFFilePrintNuGet 套件 - [ ] 從部署中移除捆綁的 PDFFilePrint.exe(如適用)
- [ ] 安裝
IronPDFNuGet 套件:dotnet add package IronPdf。 - [ ] 更新命名空間匯入
程式碼變更
- [ ] 在啟動時加入授權金鑰組態
- [ ] 將
new PDFFile()+CreateFromHtml()改為ChromePdfRenderer.RenderHtmlAsPdf(). - [ ] 將
new PDFFile()+CreateFromUrl()改為ChromePdfRenderer.RenderUrlAsPdf(). - [ ] 將
LoadFromFile()替換為<代碼>PdfDocument.FromFile()</代碼。 - [ ] 將
SaveToFile()改為SaveAs() - [ ] 根據需要更新
Print()呼叫 - [ ] 以異常處理取代退出碼檢查(如適用)
後遷移
- [ ] 從原始碼控制中移除 PDFFilePrint.exe
- [更新建立腳本以移除複製PDFFilePrint的情況
- [ ] 在所有目標印表機上測試列印
- [如果適用,進行跨平台測試
- [ ] 必要時增加新功能(水印、安全性
- [ ] 更新文件
結論
從PDFFilePrint遷移到IronPDF可將您的 PDF 工作流程從專注於列印的公用程式轉換為全面的 PDF 解決方案。 轉換消除了僅限 Windows 的限制,移除了外部可執行依賴性,並增加了PDFFilePrint無法提供的功能。
本次轉換的主要變更如下 1.範圍:僅適用於列印 → 全面的 PDF API 2.平台:僅限 Windows → 跨平台 3.類模式:PDFFile → ChromePdfRenderer + PdfDocument 4.HTML 方法:CreateFromHtml() → RenderHtmlAsPdf() 5.URL 方法:CreateFromUrl() → RenderUrlAsPdf() 6.載入方法:LoadFromFile() → PdfDocument.FromFile() 7.儲存方法:SaveToFile() → SaveAs() 8.新功能:合併、水印、安全性、文字萃取等功能






