跳過到頁腳內容
使用IRONPDF

HtmlToPdfDocument C#:DinkToPdf 用於 HTML 到 PDF 轉換的替代方案

如果您正在使用DinkToPdf中的 HtmlToPdfDocument C# 並遇到有限的 CSS 支援、外部相依性或效能問題,您並不孤單。 許多 .NET 開發人員都在尋找功能強大的 HTML 至 PDF 轉換器,該轉換器可處理現代 CSS、網路字型和 JavaScript 執行,而無需本機庫設定或指令列工具。

IronPDF 是一個 .NET 函式庫,具有基於 Chromium 的渲染引擎,僅需幾行程式碼即可輕鬆地將 HTML 檔案、網頁和 HTML 字串轉換為高品質的 PDF。

Nuget Icon立即開始使用 NuGet 建立 PDF 檔案:

  1. 使用 NuGet 套件管理器安裝 IronPDF

    PM > Install-Package IronPdf

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

    IronPdf.ChromePdfRenderer
           .StaticRenderHtmlAsPdf("<h1>Hello World</h1>")
           .SaveAs("output.pdf");
  3. 部署到您的生產環境進行測試

    立即開始在您的專案中使用 IronPDF,免費試用!
    arrow pointer

DinkToPdf 與IronPdf相比如何?

DinkToPdf 是 wkhtmltopdf 的 .NET Core wrapper,使用較舊的 WebKit 渲染引擎。雖然是開放原始碼,但開發人員在生產中嘗試轉換 HTML 為 PDF 時,往往會面臨挑戰。

|特點|DinkToPdf|IronPdf| |---|---|---| |渲染引擎|WebKit (過時)|Chromium (現代)| |CSS 支援|有限的 CSS 支援|完整的 CSS3、現代 CSS| |JavaScript 執行|限額|完整的 JavaScript 渲染| |本地相依性|需要 wkhtmltopdf 二進位檔|無外部依賴| |網頁字型| 部分的 |完整支援| |.NET Core / .NET 5+|是|是 (NET Core, Framework, Standard)| |Azure 應用程式服務|複雜的設定|開箱即用| |線程|需要單件|線程安全| |HTML 範本| 基本的 |進階功能| |可填寫的 PDF 表單|無|是|

核心差異在於渲染引擎。DinkToPdf 的 WebKit 引擎在處理複雜的文件、現代 CSS 以及動態網頁內容時相當吃力。IronPdf的 Chromium 引擎生成的 PDF 文件與您在瀏覽器中看到的完全一致。

DinkToPdf 的 HtmlToPdfDocument 類會帶來哪些問題?

HtmlToPdfDocument C#:DinkToPdf替代HTML轉PDF:圖片 1 - DinkToPdf

DinkToPdf 中的 HtmlToPdfDocument 類別需要進行冗長的設定,其限制會影響 PDF 轉換:

using DinkToPdf;
class Program
{
    static void Main(string[] args)
    {
        //DinkToPdfrequires native library setup and singleton converter
        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);
    }
}
using DinkToPdf;
class Program
{
    static void Main(string[] args)
    {
        //DinkToPdfrequires native library setup and singleton converter
        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);
    }
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

DinkToPdfPDF 輸出。

HtmlToPdfDocument C#:DinkToPdf替代HTML轉PDF:圖片 2 -DinkToPdf範例輸出 PDF

常見的問題包括:簡單 PDF 生成任務的 PDF 生成速度緩慢、Web 伺服器上的線程複雜性,以及使用 JavaScript 處理 Web 內容的困難度。 wkhtmltopdf 指令行工具為Azure 應用程式服務帶來部署上的挑戰。

如何使用IronPdf將簡單的 HTML 字串轉換為 PDF?

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

IronPDF 簡化 HTML 到 PDF 的轉換,提供更簡潔的 API 和優異的 PDF 輸出品質。 ChromePdfRenderer 可處理所有 HTML 內容—從簡單的 HTML 字串到複雜的 HTML 頁面。

using IronPdf;
class Program
{
    static void Main(string[] args)
    {
        var renderer = new ChromePdfRenderer();
        // Convert simple HTML string to PDF
        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");
    }
}
using IronPdf;
class Program
{
    static void Main(string[] args)
    {
        var renderer = new ChromePdfRenderer();
        // Convert simple HTML string to PDF
        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");
    }
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

IronPdfPDF 輸出

HtmlToPdfDocument C#:DinkToPdf替代HTML轉PDF:圖片 4 -IronPdf範例簡單的 HTML 字串轉 PDF 輸出

本代碼示範IronPdf如何在 HTML 轉換過程中處理 HTML 程式碼和 CSS 樣式,產生具有適當字型大小渲染和文字對齊屬性的 PDF 文件—所有這些都不需要外部依賴。 PDF 函式庫會在內部處理一切。

從輸出目錄將 HTML 轉換為 PDF

用於轉換輸出目錄中的 HTML 檔案:

class Program
{
    static void Main(string[] args)
    {
        var renderer = new ChromePdfRenderer();
        // Easily convert HTML files to PDF format
        var DOC = renderer.RenderHtmlFileAsPdf("templates/input.html");
        doc.SaveAs("example.pdf");
    }
}
class Program
{
    static void Main(string[] args)
    {
        var renderer = new ChromePdfRenderer();
        // Easily convert HTML files to PDF format
        var DOC = renderer.RenderHtmlFileAsPdf("templates/input.html");
        doc.SaveAs("example.pdf");
    }
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

渲染 PDF 檔案

HtmlToPdfDocument C#:DinkToPdf 是 HTML 轉 PDF 的替代方案:圖片 5 - HTML 檔案轉換為 PDF 的輸出範例

如何將網頁 URL 轉換為 PDF?

轉換即時網頁內容是IronPdf的強項。 與DinkToPdf有限的 JavaScript 渲染不同,IronPDF 支援動態 HTML 元素和互動表單。

using IronPdf;
class Program
{
    static void Main(string[] args)
    {
        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");
    }
}
using IronPdf;
class Program
{
    static void Main(string[] args)
    {
        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");
    }
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

將 URL 轉換為 PDF

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

這種方式非常適合從網頁表單中產生發票。 在產生 PDF 檔案之前,渲染引擎會先處理所有網頁字型、CSS 樣式和 JavaScript,這對於大規模的 PDF 產生是不可或缺的。

如何設定 PDF 輸出設定?

這兩個函式庫都提供設定功能,但IronPdf對產生的 PDF 提供更直覺的控制:

class Program
{
    static void Main(string[] args)
    {
        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");
    }
}
class Program
{
    static void Main(string[] args)
    {
        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");
    }
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

輸出 PDF

HtmlToPdfDocument C#:DinkToPdf替代HTML轉換為PDF:圖像 7 - 自訂 PDF 輸出

這些程式碼片段顯示如何控制紙張大小、邊界、頁首和頁尾。IronPdf還支援進階功能,例如操作 PDF 文件、可填寫的 PDF 表單,以及轉換多個 HTML 文件,這些功能是 HtmlToPdfDocument 所無法提供的。

您為何要從DinkToPdf轉換到 IronPDF?

對於在 .NET Core 應用程式中使用 HtmlToPdfDocument 的開發人員而言,IronPDF 提供了關鍵優勢:

  • 現代化渲染:Chromium 引擎可處理 HTML 結構、現代化 CSS 與 JavaScript 執行,以建立像素完美呈現的 PDF 文件。
  • 零設定:無需 wkhtmltopdf 二進位檔或命令列工具設定
  • 更佳效能:更快的 PDF 轉換速度,無單執行緒限制
  • Full Web Support:使用網頁字型和複雜的 HTML 模板轉換 HTML 文件內容
  • 企業就緒:部署至 Azure App Service、Web 伺服器和 Visual Studio 環境
  • 格式彈性:多種檔案格式,包括 HTML 頁面、URL 和 PDF 文件

HTML 至 PDF 轉換器專為生產—簡單的 PDF 生成任務或具有互動表單和 HTML 元素 ID 目標的複雜工作流程而設計。

結論

雖然DinkToPdf的 HtmlToPdfDocument 類別提供基本的 HTML 至 PDF 轉換,但其過時的 WebKit 引擎和外部依賴性對現代的 .NET 開發造成摩擦。IronPdf透過以 Chromium 為基礎的渲染、全面的 CSS 支援以及省心的部署,提供優異的效果。

準備好無限制地將 HTML 轉換為 PDF 嗎? 開始免費試用,從任何 HTML 內容產生 PDF 文件,或 為您的 Team 探索 License 選項。IronPdf也不只是一個簡單的 HTML 轉 PDF 函式庫,請務必查看它的 說明文件,瞭解它的所有功能!

!{--01001100010010010100001001010010010000010101001001011001010111110100011101000101010101 01000101111101010011010101000100000101010010010101000100010101000100010111110101011101001000110 1010101000100100001011111010100000101001001001111010001000101010101010000110101010100101010101011 10101010001010010010010010010000010100110001011111010000100100110001001111101000011010010111111010000110100101110--

常見問題解答

什麼是IronPDF?

IronPDF 是一個功能強大的 C# 程式庫,用於將 HTML 轉換為 PDF,並完全支援現代 CSS、JavaScript 執行和 Web 字體。它是 DinkToPdf 的替代方案,效能更佳且無原生依賴項。

為什麼我應該選擇 IronPDF 而不是 DinkToPdf?

IronPDF 比 DinkToPdf 具有多項優勢,包括完全支援 CSS、無需原生程式庫設定或命令列工具,以及憑藉其 Chromium 渲染引擎實現的卓越效能。

IronPDF 如何提升 HTML 轉 PDF 的效能?

IronPDF 使用 Chromium 渲染來高效處理 HTML、CSS 和 JavaScript,與其他替代方案(如 DinkToPdf)相比,可提供更快的轉換速度和更高保真度的輸出。

IronPDF是否支援現代網頁字型?

是的,IronPDF 完全支援現代網頁字體,可以準確地在 PDF 文件中呈現字體。

IronPDF能否在PDF轉換過程中處理JavaScript執行?

當然,IronPDF 可以在轉換過程中執行 JavaScript,確保動態內容在產生的 PDF 中準確呈現。

使用 IronPDF 需要哪些依賴項?

IronPDF 不需要任何原生依賴項,因此無需額外設定即可輕鬆整合到您的 .NET 專案中。

IronPDF是否完全支援CSS?

是的,IronPDF 提供完整的 CSS 支持,可以將具有高級樣式的複雜 HTML 文件轉換為 PDF。

IronPDF如何處理外部函式庫或工具?

IronPDF 不依賴外部程式庫或命令列工具,簡化了安裝過程,減少了潛在的相容性問題。

IronPDF 使用哪種渲染引擎?

IronPDF 使用基於 Chromium 的渲染引擎,可實現準確、高效能的 HTML 到 PDF 轉換。

IronPDF 是否適合正在尋找 HTML 轉 PDF 解決方案的 .NET 開發人員?

是的,IronPDF 非常適合尋求強大且有效率的 HTML 轉 PDF 轉換解決方案,並全面支援現代 Web 標準的 .NET 開發人員。

Curtis Chau
技術作家

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

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