IRONSOFTWAREHOME
使用IRONPDF

在 Windows Forms PictureBox 中渲染 PDF 頁面 | C# 指南

Curtis Chau
Curtis Chau
Updated: 2026年6月20日

如果您正在使用DinkToPdf中的HtmlToPdfDocument C#,並遇到CSS支持有限、外部依賴或性能問題,那麼您並不孤單。 許多.NET開發人員正在尋找一種HTML到PDF的轉換器,它可以處理現代CSS、網頁字體和JavaScript執行,無需本地庫設置或命令行工具。 本指南將向您展示如何用IronPDF代替DinkToPdf——這是一個基於Chromium的渲染引擎的.NET庫,只需幾行程式碼即可將HTML文件、網頁和HTML字串轉換為高質量的PDF。

  1. 1Install IronPDF with NuGet Package Manager

    PM > Install-Package IronPdf

  2. 2複製並運行這段程式碼片段。

    IronPdf.ChromePdfRenderer
           .StaticRenderHtmlAsPdf("<h1>Hello World</h1>")
           .SaveAs("output.pdf");
    C#
  3. 3部署以在您的實時環境中測試

    今天就開始在您的專案中使用IronPDF,透過免費試用
    arrow pointer

如何通過NuGet安裝IronPDF?

在編寫任何轉換程式碼之前,您需要將IronPDF新增到您的項目中。 最快捷的途徑是使用NuGet Package Manager CLI:

> dotnet add package IronPdf

或者,打開Visual Studio中的NuGet Package Manager Console並運行:

PM > Install-Package IronPdf

IronPDF目標是.NET 8、.NET 9、.NET 10、.NET Standard 2.0和.NET Framework 4.6.2或更高版本。 不需要額外的本地二進制文件、wkhtmltopdf安裝或命令行工具設置。 該包捆綁了Chromium渲染引擎,並自動解決所有依賴關系。 一旦安裝完畢,您可以通過程式碼或環境變數設置您的許可密鑰並立即開始生成PDF。 對於詳細的安裝指南,IronPDF入門頁面涵蓋了所有環境的安裝步驟。

DinkToPdf與IronPDF有什麼不同?

DinkToPdf是一個基於wkhtmltopdf的.NET Core包裝器,使用較舊的WebKit渲染引擎。雖然開源,但開發人員經常在生產環境中將HTML轉換為PDF時面臨挑戰。

DinkToPdf與IronPDF功能對比
功能DinkToPdfIronPDF
渲染引擎WebKit(過時)Chromium(現代)
CSS支持CSS支持有限完全支持CSS3,現代CSS
JavaScript執行有限完整的JavaScript渲染
本地依賴項需要wkhtmltopdf二進制文件無外部依賴項
網頁字體部分支持完全支持
.NET Core / .NET 5+是是(.NET Core、Framework、Standard)
Azure App Service複雜的設置開箱即用
執行緒需要使用單例執行緒安全
HTML模板基礎高級功能
可填寫的PDF表單否是

核心差異在於渲染引擎。DinkToPdf的WebKit引擎在處理複雜文件、現代CSS和動態網頁內容時存在困難。 IronPDF的Chromium引擎生成的PDF文件與瀏覽器渲染的效果完全一致。 欲了解更深入的比較,請參見IronPDF與DinkToPdf比較頁面。

DinkToPdf的HtmlToPdfDocument類有哪些問題?

HtmlToPdfDocument C#: DinkToPdf HTML到PDF轉換的替代方案:圖1 - DinkToPdf

DinkToPdf中的HtmlToPdfDocument類需要冗長的配置,限制了PDF轉換質量並影響開發者體驗:

using DinkToPdf;

var converter = new SynchronizedConverter(new PdfTools());
var doc = new HtmlToPdfDocument()
{
    GlobalSettings = { PaperSize = PaperKind.A4, Out = "output.pdf" },
    Objects = { new ObjectSettings() { HtmlContent = "<h1>Hello</h1>" } }
};
converter.Convert(doc);

DinkToPdf PDF輸出

HtmlToPdfDocument C#: DinkToPdf HTML到PDF轉換的替代方案:圖2 - DinkToPdf範例輸出PDF

常見問題包括:即使是簡單任務也會慢速生成PDF,執行緒在Web伺服器上的並發問題,以及難以處理具有JavaScript的Web內容。 wkhtmltopdf命令行工具在無法安裝系統級二進制文件的Azure App Service和無伺服器環境中建立了部署挑戰。 開發人員還報告說,在並發載荷下,單例轉換器模式成為性能瓶頸。

除了性能之外,GitHub上的DinkToPdf項目顯示有限的維護活動,意味著CSS渲染或SSL處理中的問題很少得到修復。 對於每天處理成千上萬個PDF的生產應用程式而言,這些缺口是不可接受的。 當CSS Grid佈局崩潰或網頁字體無法載入時,您需要一個可以跟踪現代瀏覽器行為的庫,而不是一個停滯不前、渲染引擎來自2010年初的庫。

如何使用IronPDF將HTML字串轉換為PDF?

HtmlToPdfDocument C#: DinkToPdf HTML到PDF轉換的替代方案:圖3 - IronPDF

IronPDF用更清晰的API和卓越的輸出質量簡化了HTML到PDF的轉換。 ChromePdfRenderer處理所有HTML內容——從簡單的HTML字串到具有外部樣式表、Google字體和JavaScript驅動的佈局的複雜HTML頁面。

using IronPdf;

var renderer = new ChromePdfRenderer();

string htmlContent = @"
    <!DOCTYPE html>
    <html>
    <head>
        <style>
            body { font-size: 14px; text-align: center; }
            h1 { color: #2563eb; }
        </style>
    </head>
    <body>
        <h1>Professional Invoice</h1>
        <p>Generated with modern CSS support</p>
    </body>
    </html>";

var pdf = renderer.RenderHtmlAsPdf(htmlContent);
pdf.SaveAs("invoice.pdf");

IronPDF HTML字串輸出

HtmlToPdfDocument C#: DinkToPdf HTML到PDF轉換的替代方案:圖4 - 簡單HTML字串到PDF輸出的IronPDF範例

此程式碼示範了IronPDF在轉換過程中如何處理HTML和CSS,生成的PDF文件具有適當的字體大小渲染和文字對齊——而且不需要外部依賴項。 RenderHtmlAsPdf方法接受任何有效的HTML5字串,包括內聯樣式、嵌入的腳本和圖像的資料URI。

如何將HTML文件轉換為PDF?

對於儲存在磁碟上的HTML文件轉換:

using IronPdf;

var renderer = new ChromePdfRenderer();
var doc = renderer.RenderHtmlFileAsPdf("templates/input.html");
doc.SaveAs("example.pdf");

HtmlToPdfDocument C#: DinkToPdf HTML到PDF轉換的替代方案:圖5 - HTML文件到PDF輸出範例

RenderHtmlFileAsPdf方法解決了相對於磁碟上HTML文件的圖片、樣式表和腳本的相對路徑,因此現有模板可無需修改即可工作。 這使現有報告模板的遷移變得簡單。

如何將網頁URL轉換為PDF?

轉換即時網頁內容是IronPDF相對於DinkToPdf受限JavaScript渲染的優勢所在。 IronPDF的Chromium引擎支持動態HTML元素、單頁應用程式和交互式表單。

using IronPdf;

var renderer = new ChromePdfRenderer();

// Enable JavaScript execution for dynamic content
renderer.RenderingOptions.EnableJavaScript = true;
renderer.RenderingOptions.WaitFor.RenderDelay(500);
renderer.RenderingOptions.CssMediaType = IronPdf.Rendering.PdfCssMediaType.Print;

string url = "https://en.wikipedia.org/wiki/Main_Page";
var page = renderer.RenderUrlAsPdf(url);
page.SaveAs("webpage.pdf");

轉換的URL到PDF

HtmlToPdfDocument C#: DinkToPdf HTML到PDF轉換的替代方案:圖6 - 從URL內容渲染的PDF

這種方法非常適合從Web表單生成發票或存檔即時儀表板。 渲染引擎在生成PDF文件之前處理所有的Web字體、CSS樣式和JavaScript。WaitFor API讓您可以精準控制Chromium引擎何時認為頁面可以進行捕捉——您可以等待特定的DOM元素、網路閒置狀態或自定義JavaScript條件,這對於大規模從動態內容生成PDF至關重要。

對於需要身份驗證的頁面,您可以將HTTP頭資訊、Cookies或表單POST資料直接傳遞給渲染器。 URL到PDF文件詳細介紹了這些高級場景。

如何配置PDF輸出設置?

這兩個庫都提供配置選項,但IronPDF通過其RenderingOptions物件提供更直觀的生成PDF控制:

using IronPdf;

var renderer = new ChromePdfRenderer();

renderer.RenderingOptions.PaperSize = IronPdf.Rendering.PdfPaperSize.A4;
renderer.RenderingOptions.MarginTop = 25;
renderer.RenderingOptions.MarginBottom = 25;
renderer.RenderingOptions.PrintHtmlBackgrounds = true;
renderer.RenderingOptions.TextHeader.CenterText = "Company Report";
renderer.RenderingOptions.TextFooter.CenterText = "{page} of {total-pages}";

var document = renderer.RenderHtmlAsPdf("<h1 style='text-align: center;'>Quarterly Report</h1>");
document.SaveAs("configured-report.pdf");

具有自定義設置的輸出PDF

HtmlToPdfDocument C#: DinkToPdf HTML到PDF轉換的替代方案:圖7 - 自定義PDF輸出

這些選項控制紙張大小、邊距、頁眉和頁脚。 IronPDF還支持自定義HTML頁眉和頁脚,它接受完整的HTML和CSS,讓您可以在頁眉和頁脚區域放置標誌、動態頁面計數和樣式化文字。 為了文件安全性,PDF加密和密碼API允許您在生成後限制列印、複製或編輯。

如何合併多個PDF?

當您需要將多個HTML文件合併成一個PDF時,IronPDF提供了一個靜態合併方法:

using IronPdf;

var renderer = new ChromePdfRenderer();

var pdf1 = renderer.RenderHtmlAsPdf("<h1>Section One</h1>");
var pdf2 = renderer.RenderHtmlAsPdf("<h1>Section Two</h1>");

var merged = PdfDocument.Merge(pdf1, pdf2);
merged.SaveAs("merged-report.pdf");

PDF合併文件展示了如何從多個源文件組裝大文件,對所有部分應用一致的頁眉和頁脚,並以程式方式重新排列頁面。 這在獨立構建的報告生成管道中非常有用,因為它能夠在合併成單個最終文件之前獨立構建各個部分。

為什麼要從DinkToPdf轉向IronPDF?

對於在.NET Core應用程式中使用HtmlToPdfDocument的開發人員,IronPDF提供了解決每個痛點的關鍵優勢:

  • **現代渲染:**Chromium引擎可以處理HTML結構、現代CSS和JavaScript執行,以建立像素完美的PDF文件。
  • **零設置:**不需要wkhtmltopdf二進制文件或命令行工具配置——只需新增NuGet包
  • **更好的性能:**更快的PDF轉換,不受單例執行緒限制; the renderer is thread-safe and can run concurrent conversions
  • **全方位Web支持:**轉換具有Web字體的HTML、CSS動畫、SVG圖形和複雜的HTML模板
  • **企業級部署:**部署到Azure App Service、AWS Lambda、Docker容器和傳統Web伺服器,無需額外配置
  • 高級PDF功能:可填寫的PDF表單,數位簽章,PDF/A合規性和水印
  • 積極維護: IronPDF定期發布更新,跟蹤最新的Chromium版本和.NET運行時

根據Chromium項目的發布計劃,該引擎每四週接收安全修補。 IronPDF在每個主要版本中捆綁了更新的Chromium版本,確保您的PDF生成保持最新,無需手動二進制文件管理。 這對於需要證明其依賴項已修補以防已知漏洞的安全意識團隊來說很重要。

IronPDF文件庫涵蓋超過50個操作指南,涉及從拆分PDF到提取文字和新增註釋。

下一步如何?

雖然DinkToPdf的HtmlToPdfDocument類提供了基本的HTML到PDF轉換,但其過時的WebKit引擎和外部依賴項給現代的.NET開發帶來了摩擦。 IronPDF利用基於Chromium的渲染提供了更好的結果,全面支持CSS,並且零依賴部署。 無論您是構建小型內部報告工具還是高容量的文件生成服務,遷移路徑都很簡單:安裝NuGet包,將DinkToPdf的API調用替換為ChromePdfRenderer的等效調用,然後從您的部署管道中移除wkhtmltopdf二進制文件。

要向前邁進,請選擇適合您情況的途徑:

第一步:
arrow pointer
Curtis Chau
技術作家

Curtis Chau擁有Carleton大學的電腦科學學士學位,專精於前端開發,擁有Node.js、TypeScript、JavaScript和React的專業知識。Curtis熱衷於建立直觀且美觀的使用者介面,喜愛使用現代框架並建立結構良好、視覺吸引力的手冊。

...
閱讀更多

相關文章

Key in blue circle

立即免費取得 30 天試用金鑰。

Your trial license will be sent to your email address

無任何限制。100% 解鎖。無需信用卡。

OR
bullet_checked無需信用卡或建立帳號無任何限制。100% 解鎖。無需信用卡。
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried Iron Suite
預訂您的免費現場演示
Booking Badge

受到全球數百萬工程師的信任

Iron Software的客戶標誌
獲取您的無義務諮詢
填寫以下表格或電子郵件sales@ironsoftware.com
您的詳細資訊將始終保密。
受到全球數百萬工程師的信任
Iron Software的客戶標誌
立即獲取您的30天試用金鑰。
無需信用卡或帳戶建立
C# 用於PDF的NuGet程式庫
使用NuGet安裝

版本: 2026.9

PM > Install-Package IronPdf
nuget.org/packages/IronPdf/
  1. 在解決方案資源管理器,右鍵點選參考,管理NuGet包
  2. 選擇瀏覽並搜尋"IronPdf"
  3. 選擇套件並安裝
C# PDF DLL
下載DLL

版本: 2026.9

或者點擊此處下載Windows安裝程式。

  1. 下載並解壓IronPDF到類似~/Libs的位置,位於您的解決方案目錄中
  2. 在Visual Studio解決方案資源管理器,右鍵點選參考。選擇瀏覽,"IronPdf.dll"

授權從$999起