跳過到頁腳內容
產品比較

IronPDF與ExpertPDF之間的比較適用於.NET

C# 的開發人員在讀取、寫入、創建或在不同文件格式之間轉換 PDF 時,總是面臨挑戰。 然而,隨著眾多庫的出現,這些問題得到了妥善解決,這些庫的輕鬆集成使它們在 C# 應用程序中變得越來越受歡迎和易於使用。

本文旨在比較兩個.NET Framework 和 .NET Core 開發人員最受歡迎的 PDF 庫:

  • IronPDF
  • ExpertPDF

這兩個庫都是 .NET C# 庫,提供在 .NET 和 .NET Core 中生成、轉換和編輯 PDF 的方法。 主要問題是確定哪個 C# PDF 庫最適合我們的項目。 在本文中,我們將在最全面的方式中比較這兩個庫,突出它們的突出特點,以便您能夠在為項目選擇正確的庫時做出明智的決策。

首先,讓我們看看這兩個庫都提供了什麼功能,然後我們將進行比較。

IronPDF 庫

IronPDF 是一個全面的 .NET PDF 庫解決方案,特別有利於 C# 開發人員。 使用此庫,您可以輕鬆實施所有必要的功能,以創建出色的 PDF 閱讀器或 PDF 查看器。

IronPDF 擁有 .NET Chromium 引擎,將 HTML 內容渲染為 PDF 文檔,使設計或定位 PDF 更加方便,無需複雜的 API。其 HTML 到 PDF 轉換器使得可以使用 HTML5、CSS、JavaScript 和圖片創建 .NET PDF 庫。 此外,您可以輕鬆編輯 PDF,添加頁眉和頁腳,以及從 PDF 中提取圖像。 此外,使得閱讀 PDF 文本成為一個簡單的過程。

特點

創建 PDF 文件 (HTML 到 PDF)

  • 從 HTML、CSS 和 JavaScript 創建 PDF 文件
  • 從網站 URL 生成 PDF 文檔
  • 使用自定義登錄憑據加載網頁 URL

無需 Adobe Acrobat Reader 的 PDF 編輯器

  • 填充和讀取 PDF 可完全編輯的表單數據欄位
  • 從 PDF 中提取文本和圖像
  • 在任何現有頁面上蓋 HTML 內容
  • 添加 HTML 頁眉和頁腳
  • 添加註釋並數字簽署 PDF 文檔

操作 PDF 文檔

  • 加載和解析現有文檔
  • 合併和拆分文檔中的內容
  • 添加水印、文本和資產

從多個文件格式轉換

  • 只需三行代碼即可轉換 ASPX WebForms
  • 將 HTML 轉換為 PDF 文件
  • 將圖片(PNG、JPG、GIF、TIFF)轉換為 PDF

保存和打印

  • 保存文件為二進制數據或 MemoryStreams
  • 打印 CSS 媒體類型
  • 將 PDF 文件轉為打印文檔對象並無需 Adobe 打印

ExpertPDF

訪問 ExpertPDF 的官方網站了解詳細信息,了解更多關於其 .NET 庫的信息,該庫提供開發人員能夠即時從 HTML 轉換為 PDF。 如果你需要生成 PDF 報告或製作 PDF 閱讀器,你不再需要使用複雜的報告生成軟件。

ExpertPDF 易於使用,但它是一個強大的 PDF 編輯器。 它包含一個高級的 HTML 到 PDF 轉換器,可以在幾分鐘內集成到任何 .NET 應用程序中。 它支持 .NET Framework、.NET Core、.NET 5 和 .NET 6。

這是一個強大的 .NET 庫,能幫助你在 .NET Framework 或 .NET Core 應用程序中從任何網頁 URL 或原始 HTML 標記、字符串或文件創建 PDF 查看器和文檔。

突出功能

以下是重要的功能:

  • 將 URL 網頁轉換為 PDF
  • 將 HTML 字符串轉換為 PDF
  • 多樣的輸出文件選項
  • 設置頁邊距和大小
  • 設置頁眉和頁腳
  • 添加自動和自定義的分頁符
  • 只將網頁的特定部分轉換成 PDF
  • 在轉換成 PDF 時隱藏頁面上的特定元素
  • 將多個網頁合併成一個 PDF
  • 將需要身份驗證的網頁轉換為 PDF
  • 選擇渲染的 CSS 媒體(屏幕或打印)類型
  • 書籤支持
  • 數字簽名支持
  • 檢索 PDF 中的 HTML 元素位置
  • 支持最新的 HTML5/CSS3
  • 支持開放類型和真正類型的網頁字體
  • 文件類型轉換:   - PDF 到文本轉換器   - HTML 到 PDF 轉換器   - HTML 到圖片轉換器   - PDF 到圖片轉換器   - RTF 到 PDF 轉換器

本文的其餘部分將涵蓋以下主題:

  1. 創建一個控制台項目
  2. IronPDF 安裝
  3. ExpertPDF 安裝
  4. 從 URL 創建 PDF
  5. 從 HTML 輸入字符串創建 PDF
  6. 將多個 PDF 合併為一個 PDF
  7. 將圖片轉換為 PDF
  8. 授權和定價
  9. 結論

1. 創建一個控制台項目

按照以下步驟使用 Visual Studio 2022 在 C# 中創建控制台應用程序:

  • 打開 Visual Studio 2022 並點擊創建新項目

![Visual Studio 2022](」 /static-assets/pdf/blog/expert-pdf-net-library-alternatives/expert-pdf-net-library-alternatives-1.webp ")

  • 選擇 C# 控制台應用程序並點擊下一步

![新建項目對話框](」 /static-assets/pdf/blog/expert-pdf-net-library-alternatives/expert-pdf-net-library-alternatives-2.webp ")

  • 在下一個屏幕中輸入您的項目名稱並點擊下一步

![網頁表單](」 /static-assets/pdf/blog/expert-pdf-net-library-alternatives/expert-pdf-net-library-alternatives-3.webp ")

  • 為您的應用程序選擇 .NET 框架。 我們將使用最新版本 6.0。

![附加信息](」 /static-assets/pdf/blog/expert-pdf-net-library-alternatives/expert-pdf-net-library-alternatives-4.webp ")

現在我們的控制台項目已經創建,我們可以準備測試我們的庫了。 但是,我們仍然需要在項目中安裝它們。 讓我們首先安裝 IronPDF。

2. IronPDF 安裝

有多種方式下載和安裝 IronPDF 庫。 這些方法如下:

  1. 使用 Visual Studio
  2. 直接下載 NuGet 包
  3. 下載 IronPDF .DLL 庫

2.1. 使用 Visual Studio

Visual Studio 本身提供了 NuGet 包管理器,可在 C# 項目中安裝所有的 NuGet 包。 您可以通過以下方式訪問它:

  • 項目菜單工具,或
  • 在解決方案資源管理器中右鍵點擊該項目

![解決方案資源管理器](」 /static-assets/pdf/blog/expert-pdf-net-library-alternatives/expert-pdf-net-library-alternatives-5.webp ")

![Project Menu > Manage NuGet Packages](/static-assets/pdf/blog/expert-pdf-net-library-alternatives/expert-pdf-net-library-alternatives-6.webp)

選擇後,瀏覽 IronPDF 的 NuGet 包並進行安裝:

2.2. 直接下載 NuGet 包

另一種方法是直接下載 IronPDF 的 NuGet 網站包。訪問 IronPDF NuGet 頁面 並下載該包。 按照以下步驟:

  • 轉到 NuGet IronPDF 包
  • 選擇 “下載包”
  • 雙擊下載的包
  • 然後將該包安裝
  • 重新加載 Visual Studio 並開始使用它

2.4. 安裝 IronPDF:下載庫

您還可以直接從 IronPDF 網站 下載 IronPDF .DLL 文件。 點擊 下載 IronPDF DLL 進行安裝。

接下來,在項目中參考 IronPDF,按以下步驟進行:

  • 在解決方案資源管理器中右鍵單擊該解決方案
  • 選擇 “添加引用”
  • 瀏覽 IronPDF.dll 庫
  • 點擊確認即可!

一切準備就緒! 現在已安裝 IronPDF 並準備好使用。 但是在此之前,我們將安裝 ExpertPDF 以進行比較。

3. ExpertPDF 安裝

下載和安裝 ExpertPDF 庫有兩種方式:

  • 使用 Visual Studio NuGet 包管理器(.NET Framework、.NET Core、.NET 5、.NET 6)
  • 下載程序集(較早的 .NET 框架版本)

我們將選擇使用新的 .NET 框架,因此我們將使用 nuget 包管理器安裝 ExpertPDF。

3.1. 使用 Visual Studio NuGet Package Manager

就像 IronPDF 一樣,您也可以通過訪問:

  • 項目菜單工具訪問 NuGet 包管理器
  • 在解決方案資源管理器中右鍵點擊該項目

![解決方案資源管理器](」 /static-assets/pdf/blog/expert-pdf-net-library-alternatives/expert-pdf-net-library-alternatives-7.webp ")

![Project Menu > Manage NuGet Packages](/static-assets/pdf/blog/expert-pdf-net-library-alternatives/expert-pdf-net-library-alternatives-8.webp)

選擇後,瀏覽 ExpertPDF 的 nuget 包並進行安裝:

注意: ExpertPDF 只支持 Windows 操作系統。

4. 從 URL 創建 PDF

這兩個庫都能將 HTML 標記轉換为 PDF。 現在,讓我們看看每個庫的 C# 代碼。

4.1. 使用 IronPDF 的 URL 到 PDF

IronPDF 在從現有的 URL 渲染 HTML 作為 PDF 時非常簡單。 它對 CSS、JavaScript、圖像和表單有很高的支持。

下面的代碼示例直接從網站 URL 創建 PDF。

// Import the IronPdf library
using IronPdf;

// Initialize a new renderer
ChromePdfRenderer renderer = new ChromePdfRenderer();
// Render the specified URL as a PDF
var pdf = renderer.RenderUrlAsPdf("https://ironpdf.com/");
// Save the rendered PDF to a file
pdf.SaveAs("url.pdf");
// Import the IronPdf library
using IronPdf;

// Initialize a new renderer
ChromePdfRenderer renderer = new ChromePdfRenderer();
// Render the specified URL as a PDF
var pdf = renderer.RenderUrlAsPdf("https://ironpdf.com/");
// Save the rendered PDF to a file
pdf.SaveAs("url.pdf");
' Import the IronPdf library
Imports IronPdf

' Initialize a new renderer
Private renderer As New ChromePdfRenderer()
' Render the specified URL as a PDF
Private pdf = renderer.RenderUrlAsPdf("https://ironpdf.com/")
' Save the rendered PDF to a file
pdf.SaveAs("url.pdf")
$vbLabelText   $csharpLabel

4.2. 使用 ExpertPDF 的 URL 到 PDF

ExpertPDF 使用 savePdfFromUrlToFile </ code> 方法將 URL 轉換為 PDF,該方法快速、安全且高效。 頁面的格式會與實際的網頁瀏覽器上的保存格式保持一致。

// Import the ExpertPdf.HtmlToPdf namespace
using ExpertPdf.HtmlToPdf;

// Initialize a new PdfConverter
PdfConverter pdfConverter = new PdfConverter();
// Use PdfConverter to save a webpage URL directly to a PDF file
pdfConverter.SavePdfFromUrlToFile("https://www.html-to-pdf.net/", "output.pdf");
// Import the ExpertPdf.HtmlToPdf namespace
using ExpertPdf.HtmlToPdf;

// Initialize a new PdfConverter
PdfConverter pdfConverter = new PdfConverter();
// Use PdfConverter to save a webpage URL directly to a PDF file
pdfConverter.SavePdfFromUrlToFile("https://www.html-to-pdf.net/", "output.pdf");
' Import the ExpertPdf.HtmlToPdf namespace
Imports ExpertPdf.HtmlToPdf

' Initialize a new PdfConverter
Private pdfConverter As New PdfConverter()
' Use PdfConverter to save a webpage URL directly to a PDF file
pdfConverter.SavePdfFromUrlToFile("https://www.html-to-pdf.net/", "output.pdf")
$vbLabelText   $csharpLabel

5. 從 HTML 輸入字符串創建 PDF

IronPDF 和 Expert PDF 都提供從包含 HTML 的標記字符串創建 PDF 檔案的功能。

5.1. 使用 IronPDF 的 HTML 輸入字符串

以下代碼片段演示了如何使用 HTML 輸入字符串渲染 PDF 文檔圖片。

// Import the IronPdf library
using IronPdf;

// Initialize a new renderer
ChromePdfRenderer renderer = new ChromePdfRenderer();
// Render a PDF from HTML string and save it
var pdfDoc1 = renderer.RenderHtmlAsPdf("<h1>Html with CSS and Images</h1>");
pdfDoc1.SaveAs("pixel-perfect.pdf");

// Render HTML with external assets and save it
var pdfDoc2 = renderer.RenderHtmlAsPdf("<img src='icons/iron.png'>", @"C:\site\assets\");
pdfDoc2.SaveAs("html-with-assets.pdf");
// Import the IronPdf library
using IronPdf;

// Initialize a new renderer
ChromePdfRenderer renderer = new ChromePdfRenderer();
// Render a PDF from HTML string and save it
var pdfDoc1 = renderer.RenderHtmlAsPdf("<h1>Html with CSS and Images</h1>");
pdfDoc1.SaveAs("pixel-perfect.pdf");

// Render HTML with external assets and save it
var pdfDoc2 = renderer.RenderHtmlAsPdf("<img src='icons/iron.png'>", @"C:\site\assets\");
pdfDoc2.SaveAs("html-with-assets.pdf");
' Import the IronPdf library
Imports IronPdf

' Initialize a new renderer
Private renderer As New ChromePdfRenderer()
' Render a PDF from HTML string and save it
Private pdfDoc1 = renderer.RenderHtmlAsPdf("<h1>Html with CSS and Images</h1>")
pdfDoc1.SaveAs("pixel-perfect.pdf")

' Render HTML with external assets and save it
Dim pdfDoc2 = renderer.RenderHtmlAsPdf("<img src='icons/iron.png'>", "C:\site\assets\")
pdfDoc2.SaveAs("html-with-assets.pdf")
$vbLabelText   $csharpLabel

5.2. 使用 Expert PDF 的 HTML 輸入字符串

ExpertPDF HTML 到 PDF 轉換器支持從 HTML 字符串轉換到 PDF。 代碼與 URL 到 PDF 一樣簡單和易於理解:

// Import the ExpertPdf.HtmlToPdf namespace
using ExpertPdf.HtmlToPdf;

// Initialize a new PdfConverter
PdfConverter pdfConverter = new PdfConverter();
// Use PdfConverter to save an HTML string to a PDF file
pdfConverter.SavePdfFromHtmlStringToFile("<h1>PDF using Expert PDF</h1>", "html-to-pdf.pdf");
// Import the ExpertPdf.HtmlToPdf namespace
using ExpertPdf.HtmlToPdf;

// Initialize a new PdfConverter
PdfConverter pdfConverter = new PdfConverter();
// Use PdfConverter to save an HTML string to a PDF file
pdfConverter.SavePdfFromHtmlStringToFile("<h1>PDF using Expert PDF</h1>", "html-to-pdf.pdf");
' Import the ExpertPdf.HtmlToPdf namespace
Imports ExpertPdf.HtmlToPdf

' Initialize a new PdfConverter
Private pdfConverter As New PdfConverter()
' Use PdfConverter to save an HTML string to a PDF file
pdfConverter.SavePdfFromHtmlStringToFile("<h1>PDF using Expert PDF</h1>", "html-to-pdf.pdf")
$vbLabelText   $csharpLabel

第一個參數是實際的 HTML 字符串,第二個參數是保存掃描文檔的文件名。

Bootstrap 文檔範例

技術庫受益於提供代碼示例的清晰文檔。 這個 Bootstrap 5 演示展示了 IronPDF 渲染技術文檔的能力,具有語法高亮、警告和結構化佈局。

using IronPdf;

var renderer = new ChromePdfRenderer();

string technicalDocs = @"
<!DOCTYPE html>
<html>
<head>
    <meta charset='utf-8'>
    <link href='https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/css/bootstrap.min.css' rel='stylesheet'>
    <style>
        .code-block { background: #f8f9fa; border-left: 3px solid #0d6efd; padding: 15px; border-radius: 4px; }
        .api-method { font-family: 'Courier New', monospace; color: #0d6efd; }
        @media print { .card, .alert { page-break-inside: avoid; } }
    </style>
</head>
<body class='bg-light'>
    <div class='container py-4'>
        <div class='card shadow-sm mb-4'>
            <div class='card-header bg-dark text-white'>
                <h2 class='mb-0'>API Reference - HTML to PDF Conversion</h2>
            </div>
            <div class='card-body'>
                <h4>RenderHtmlAsPdf() Method</h4>
                <p class='lead'>Converts HTML content to PDF with full CSS3 and JavaScript support.</p>

                <div class='code-block mb-3'>
                    <code class='api-method'>PdfDocument RenderHtmlAsPdf(string htmlContent)</code>
                </div>

                <div class='row mt-4'>
                    <div class='col-md-6'>
                        <h5 class='text-primary'>Parameters</h5>
                        <table class='table table-sm table-bordered'>
                            <tr>
                                <td><code>htmlContent</code></td>
                                <td>String containing HTML to convert</td>
                            </tr>
                        </table>
                    </div>
                    <div class='col-md-6'>
                        <h5 class='text-success'>Returns</h5>
                        <table class='table table-sm table-bordered'>
                            <tr>
                                <td><code>PdfDocument</code></td>
                                <td>Generated PDF document object</td>
                            </tr>
                        </table>
                    </div>
                </div>
            </div>
        </div>

        <div class='row g-3 mb-4'>
            <div class='col-md-4'>
                <div class='alert alert-success mb-0'>
                    <h6 class='alert-heading'>✓ Supported Features</h6>
                    <ul class='mb-0 small'>
                        <li>HTML5 semantic tags</li>
                        <li>CSS3 with Flexbox/Grid</li>
                        <li>JavaScript execution</li>
                        <li>External stylesheets</li>
                    </ul>
                </div>
            </div>
            <div class='col-md-4'>
                <div class='alert alert-info mb-0'>
                    <h6 class='alert-heading'>ⓘ Rendering Engine</h6>
                    <ul class='mb-0 small'>
                        <li>Chrome V8 Engine</li>
                        <li>98% browser fidelity</li>
                        <li>Sub-second rendering</li>
                        <li>Async/await support</li>
                    </ul>
                </div>
            </div>
            <div class='col-md-4'>
                <div class='alert alert-warning mb-0'>
                    <h6 class='alert-heading'>⚠ ExpertPDF Notes</h6>
                    <ul class='mb-0 small'>
                        <li>Complex API structure</li>
                        <li>Limited CSS3 support</li>
                        <li>No native JavaScript</li>
                        <li>Requires configuration</li>
                    </ul>
                </div>
            </div>
        </div>

        <div class='card shadow-sm'>
            <div class='card-header bg-primary text-white'>
                <h5 class='mb-0'>Code Example Comparison</h5>
            </div>
            <div class='card-body'>
                <div class='row'>
                    <div class='col-md-6'>
                        <h6 class='text-primary'>IronPDF (Simple)</h6>
                        <div class='code-block'>
                            <pre class='mb-0'><code>var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf(html);
pdf.SaveAs("output.pdf");</code></pre>
                        </div>
                        <div class='badge bg-success mt-2'>3 Lines</div>
                    </div>
                    <div class='col-md-6'>
                        <h6 class='text-warning'>ExpertPDF (Complex)</h6>
                        <div class='code-block'>
                            <pre class='mb-0'><code>var converter = new HtmlToPdfConverter();
converter.PdfDocumentOptions.PdfPageSize = PdfPageSize.A4;
converter.NavigationTimeout = 60;
byte[] result = converter.GetPdfBytesFromHtmlString(html);
File.WriteAllBytes("output.pdf", result);</code></pre>
                        </div>
                        <div class='badge bg-warning text-dark mt-2'>5+ Lines</div>
                    </div>
                </div>
            </div>
            <div class='card-footer text-muted'>
                <small><strong>Comparison:</strong> IronPDF provides a more intuitive API with less configuration overhead for common use cases.</small>
            </div>
        </div>
    </div>
</body>
</html>";

var pdf = renderer.RenderHtmlAsPdf(technicalDocs);
pdf.SaveAs("technical-documentation.pdf");
using IronPdf;

var renderer = new ChromePdfRenderer();

string technicalDocs = @"
<!DOCTYPE html>
<html>
<head>
    <meta charset='utf-8'>
    <link href='https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/css/bootstrap.min.css' rel='stylesheet'>
    <style>
        .code-block { background: #f8f9fa; border-left: 3px solid #0d6efd; padding: 15px; border-radius: 4px; }
        .api-method { font-family: 'Courier New', monospace; color: #0d6efd; }
        @media print { .card, .alert { page-break-inside: avoid; } }
    </style>
</head>
<body class='bg-light'>
    <div class='container py-4'>
        <div class='card shadow-sm mb-4'>
            <div class='card-header bg-dark text-white'>
                <h2 class='mb-0'>API Reference - HTML to PDF Conversion</h2>
            </div>
            <div class='card-body'>
                <h4>RenderHtmlAsPdf() Method</h4>
                <p class='lead'>Converts HTML content to PDF with full CSS3 and JavaScript support.</p>

                <div class='code-block mb-3'>
                    <code class='api-method'>PdfDocument RenderHtmlAsPdf(string htmlContent)</code>
                </div>

                <div class='row mt-4'>
                    <div class='col-md-6'>
                        <h5 class='text-primary'>Parameters</h5>
                        <table class='table table-sm table-bordered'>
                            <tr>
                                <td><code>htmlContent</code></td>
                                <td>String containing HTML to convert</td>
                            </tr>
                        </table>
                    </div>
                    <div class='col-md-6'>
                        <h5 class='text-success'>Returns</h5>
                        <table class='table table-sm table-bordered'>
                            <tr>
                                <td><code>PdfDocument</code></td>
                                <td>Generated PDF document object</td>
                            </tr>
                        </table>
                    </div>
                </div>
            </div>
        </div>

        <div class='row g-3 mb-4'>
            <div class='col-md-4'>
                <div class='alert alert-success mb-0'>
                    <h6 class='alert-heading'>✓ Supported Features</h6>
                    <ul class='mb-0 small'>
                        <li>HTML5 semantic tags</li>
                        <li>CSS3 with Flexbox/Grid</li>
                        <li>JavaScript execution</li>
                        <li>External stylesheets</li>
                    </ul>
                </div>
            </div>
            <div class='col-md-4'>
                <div class='alert alert-info mb-0'>
                    <h6 class='alert-heading'>ⓘ Rendering Engine</h6>
                    <ul class='mb-0 small'>
                        <li>Chrome V8 Engine</li>
                        <li>98% browser fidelity</li>
                        <li>Sub-second rendering</li>
                        <li>Async/await support</li>
                    </ul>
                </div>
            </div>
            <div class='col-md-4'>
                <div class='alert alert-warning mb-0'>
                    <h6 class='alert-heading'>⚠ ExpertPDF Notes</h6>
                    <ul class='mb-0 small'>
                        <li>Complex API structure</li>
                        <li>Limited CSS3 support</li>
                        <li>No native JavaScript</li>
                        <li>Requires configuration</li>
                    </ul>
                </div>
            </div>
        </div>

        <div class='card shadow-sm'>
            <div class='card-header bg-primary text-white'>
                <h5 class='mb-0'>Code Example Comparison</h5>
            </div>
            <div class='card-body'>
                <div class='row'>
                    <div class='col-md-6'>
                        <h6 class='text-primary'>IronPDF (Simple)</h6>
                        <div class='code-block'>
                            <pre class='mb-0'><code>var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf(html);
pdf.SaveAs("output.pdf");</code></pre>
                        </div>
                        <div class='badge bg-success mt-2'>3 Lines</div>
                    </div>
                    <div class='col-md-6'>
                        <h6 class='text-warning'>ExpertPDF (Complex)</h6>
                        <div class='code-block'>
                            <pre class='mb-0'><code>var converter = new HtmlToPdfConverter();
converter.PdfDocumentOptions.PdfPageSize = PdfPageSize.A4;
converter.NavigationTimeout = 60;
byte[] result = converter.GetPdfBytesFromHtmlString(html);
File.WriteAllBytes("output.pdf", result);</code></pre>
                        </div>
                        <div class='badge bg-warning text-dark mt-2'>5+ Lines</div>
                    </div>
                </div>
            </div>
            <div class='card-footer text-muted'>
                <small><strong>Comparison:</strong> IronPDF provides a more intuitive API with less configuration overhead for common use cases.</small>
            </div>
        </div>
    </div>
</body>
</html>";

var pdf = renderer.RenderHtmlAsPdf(technicalDocs);
pdf.SaveAs("technical-documentation.pdf");
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

輸出 :專業技術文檔 PDF 帶有 Bootstrap 5 卡片、警告、表格和代碼塊。 IronPDF 準確地渲染所有的印刷字體間距和網格佈局,展示了卓越的文檔生成能力。

詳細的 CSS 框架支持請參考 Bootstrap & Flexbox CSS 指南

6. 將多個 PDF 文件合併為一個 PDF

IronPDF 和 ExpertPDF 都提供將多個 PDF 文件合併為一個 PDF 文件的功能。這對於整合分散的數據並更有效地通過互聯網發送非常有用。

6.1. 使用 IronPDF 進行合併

以下代碼渲染由不同 HTML 字符串創建的兩個 PDF,然後使用 Merge 方法將它們合併。 這是一行代碼,非常容易使用。 在渲染時可以向 PDF 設置中添加更多選項。

// Import the IronPdf library
using IronPdf;

// Define HTML strings to convert to PDF
var htmlA = @"<p> [PDF_A] </p>
        <p> [PDF_A] 1st Page </p>
        <div style='page-break-after: always;'></div>
        <p> [PDF_A] 2nd Page</p>";

var htmlB = @"<p> [PDF_B] </p>
        <p> [PDF_B] 1st Page </p>
        <div style='page-break-after: always;'></div>
        <p> [PDF_B] 2nd Page</p>";

// Initialize a new renderer
var renderer = new ChromePdfRenderer();

// Render HTML strings as PDFs
var pdfDocA = renderer.RenderHtmlAsPdf(htmlA);
var pdfDocB = renderer.RenderHtmlAsPdf(htmlB);

// Merge the PDF documents
var mergedPdf = PdfDocument.Merge(pdfDocA, pdfDocB);

// Save the merged PDF
mergedPdf.SaveAs("Merged.pdf");
// Import the IronPdf library
using IronPdf;

// Define HTML strings to convert to PDF
var htmlA = @"<p> [PDF_A] </p>
        <p> [PDF_A] 1st Page </p>
        <div style='page-break-after: always;'></div>
        <p> [PDF_A] 2nd Page</p>";

var htmlB = @"<p> [PDF_B] </p>
        <p> [PDF_B] 1st Page </p>
        <div style='page-break-after: always;'></div>
        <p> [PDF_B] 2nd Page</p>";

// Initialize a new renderer
var renderer = new ChromePdfRenderer();

// Render HTML strings as PDFs
var pdfDocA = renderer.RenderHtmlAsPdf(htmlA);
var pdfDocB = renderer.RenderHtmlAsPdf(htmlB);

// Merge the PDF documents
var mergedPdf = PdfDocument.Merge(pdfDocA, pdfDocB);

// Save the merged PDF
mergedPdf.SaveAs("Merged.pdf");
' Import the IronPdf library
Imports IronPdf

' Define HTML strings to convert to PDF
Private htmlA = "<p> [PDF_A] </p>
        <p> [PDF_A] 1st Page </p>
        <div style='page-break-after: always;'></div>
        <p> [PDF_A] 2nd Page</p>"

Private htmlB = "<p> [PDF_B] </p>
        <p> [PDF_B] 1st Page </p>
        <div style='page-break-after: always;'></div>
        <p> [PDF_B] 2nd Page</p>"

' Initialize a new renderer
Private renderer = New ChromePdfRenderer()

' Render HTML strings as PDFs
Private pdfDocA = renderer.RenderHtmlAsPdf(htmlA)
Private pdfDocB = renderer.RenderHtmlAsPdf(htmlB)

' Merge the PDF documents
Private mergedPdf = PdfDocument.Merge(pdfDocA, pdfDocB)

' Save the merged PDF
mergedPdf.SaveAs("Merged.pdf")
$vbLabelText   $csharpLabel

Merge 方法還有一個重載,可以接受多個文件,以可枚舉對象的形式。 您可以在這個 IronPDF 合併 PDF 代碼示例 中看到其使用示例。

請注意,如果正被合併的 PDF 文件包含可編輯的表單,則生成的 PDF 的表單字段將附帶上索引號。

6.2. 使用 ExpertPDF 進行合併

ExpertPDF 使用一個 Merge PDF 組件來完成此任務。 這必須從 NuGet 管理包 安裝才能使用它。 有一個 AppendPDFFile 方法,可以將某個 PDF 文件附加到一個 PDFMerge 類對象裡。 用 ExpertPDF 創建的兩個 PDF 的合併代碼如下:

// Import the ExpertPdf.MergePdf namespace
using ExpertPdf.MergePdf;

// Initialize a new PDFMerge object
PDFMerge pdfMerge = new PDFMerge();
// Append PDF files to the merge object
pdfMerge.AppendPDFFile("output.pdf");
pdfMerge.AppendPDFFile("html-to-pdf.pdf");
// Save the merged PDF to a file
pdfMerge.SaveMergedPDFToFile("merged.pdf");
// Import the ExpertPdf.MergePdf namespace
using ExpertPdf.MergePdf;

// Initialize a new PDFMerge object
PDFMerge pdfMerge = new PDFMerge();
// Append PDF files to the merge object
pdfMerge.AppendPDFFile("output.pdf");
pdfMerge.AppendPDFFile("html-to-pdf.pdf");
// Save the merged PDF to a file
pdfMerge.SaveMergedPDFToFile("merged.pdf");
' Import the ExpertPdf.MergePdf namespace
Imports ExpertPdf.MergePdf

' Initialize a new PDFMerge object
Private pdfMerge As New PDFMerge()
' Append PDF files to the merge object
pdfMerge.AppendPDFFile("output.pdf")
pdfMerge.AppendPDFFile("html-to-pdf.pdf")
' Save the merged PDF to a file
pdfMerge.SaveMergedPDFToFile("merged.pdf")
$vbLabelText   $csharpLabel

7. 將圖片轉換為 PDF

IronPDF 能轉換多種圖片為 PDF 文件,而 ExpertPDF 無提供此功能。 然而,ExpertPDF 可以從 PDF 文件中提取圖片,並且還可以將 PDF 文件轉換為圖片,IronPDF 也提供此功能。

7.1. 使用 IronPDF 將圖片轉換為 PDF

在 IronPDF 中,可以使用 ImageToPdfConverter </ code> 類來輕鬆地從一张或多张圖片創建 PDF 文檔。 您可以從應用程序中的任意文件夾加載圖片。

// Import the IronPdf namespace
using IronPdf;

// Specify the folder containing the image files
var imageFiles = System.IO.Directory.EnumerateFiles(@"C:\project\assets")
                  .Where(file => file.EndsWith(".jpg") || file.EndsWith(".jpeg"));

// Convert the images to a PDF document
var pdfDocument = ImageToPdfConverter.ImageToPdf(imageFiles);
// Save the PDF document
pdfDocument.SaveAs(@"C:\project\composite.pdf");
// Import the IronPdf namespace
using IronPdf;

// Specify the folder containing the image files
var imageFiles = System.IO.Directory.EnumerateFiles(@"C:\project\assets")
                  .Where(file => file.EndsWith(".jpg") || file.EndsWith(".jpeg"));

// Convert the images to a PDF document
var pdfDocument = ImageToPdfConverter.ImageToPdf(imageFiles);
// Save the PDF document
pdfDocument.SaveAs(@"C:\project\composite.pdf");
' Import the IronPdf namespace
Imports IronPdf

' Specify the folder containing the image files
Private imageFiles = System.IO.Directory.EnumerateFiles("C:\project\assets").Where(Function(file) file.EndsWith(".jpg") OrElse file.EndsWith(".jpeg"))

' Convert the images to a PDF document
Private pdfDocument = ImageToPdfConverter.ImageToPdf(imageFiles)
' Save the PDF document
pdfDocument.SaveAs("C:\project\composite.pdf")
$vbLabelText   $csharpLabel

除能轉換多種圖片為 PDF 文件外,IronPDF 還能將掃描文檔、紙張文檔和商業文檔轉換為獨立的圖片。 還可以從這些類型的文件中提取圖片。

8. 授權和定價

IronPDF 是一個完全開放的商業 C# PDF 庫 可在 IronPDF 網站免費用於私人開發,並可以隨時授權商業用途。 提供的各種許可證可用於單項目、單或多開發人員、機構和全球公司。 它還支持 SaaS 和 OEM 重新分發。

![IronPDF 授權選項](" /static-assets/pdf/blog/expert-pdf-net-library-alternatives/expert-pdf-net-library-alternatives-9.webp ")

所有許可證提供 30 天的退款保證,並提供一年支持和產品更新。 許可證是永久的,意味著一次性購買,沒有額外的費用。 單開發人員和單項目來說,lite 套件從$799開始。

ExpertPDF提供按开发人员或公司购买许可证的选项。 您可以免費試用 ExpertPDF 。 您可以在下面的圖片中查看許可證功能列表。

![ExpertPDF 授權選項 ](" /static-assets/pdf/blog/expert-pdf-net-library-alternatives/expert-pdf-net-library-alternatives-10.webp ")

  • ExpertComponents Toolkit Total * 開發者許可證從 $850 開始,ExpertPDF 工具包從 $750 開始。還可以單獨購買單個組件。 如果了解 ExpertPDF 的完整定價,請參閱其網站上的完整價目表

9. 結論

IronPDF 本地渲染 HTML 到 PDF,這樣不需要互聯網連接。 實際上,它可以在隱含地啟動一個符合標準要求的網頁瀏覽器對象。 HTML 渲染完全準確並以矢量格式保存,適合最高標準的商業打印。 輸出干凈,高質量的 PDF 被生成。 它可以用于商業用途,所有定價都在其網站上列出,沒有隱藏的費用。

ExpertPDF 的 HTML 到 PDF 轉換器庫是一個多功能的工具,可以將網頁和 HTML 代碼轉換為 PDF 文檔,從 ASP.NET 網頁生成 PDF 報告,甚至可以用電子簽名簽合同。 它免费使用,但也可以許可附加功能。

雖然兩個庫都能夠處理 PDF 文件並轉換流行格式,但 IronPDF 比 ExpertPDF 具有一些優勢。 IronPDF 提供更廣泛格式的轉換,包括 XML、圖片和 AngularJS,以及更強大的功能來生成、格式化和編輯 PDF。 IronPDF 為尋求效率的務實開發者提供了一個節省時間的解決方案。

ExpertPDF 是來自不同組件的單獨組件,而 IronPDF 是一個完整的軟件,所有功能集中於一處。 針對只要求單個元件,如 HTML 到 PDF 轉換的項目,ExpertPDF 可能會是不錯的選擇。 IronPDF 的套件提供終生許可,無需持續成本,而 ExpertPDF 則需要續訂。

請注意ExpertPDF 是其各自擁有人的注冊商標。 本網站與 ExpertPDF 無關,未得到其認可或贊助。 所有產品名稱、徽標和品牌均為其各自所有者的財產。 比較僅供信息參考,並反映撰寫時公開可用的信息。

常見問題解答

如何在C#中將HTML轉換為PDF?

您可以使用 IronPDF 的RenderHtmlAsPdf方法將 HTML 字串轉換為 PDF。您也可以使用RenderHtmlFileAsPdf將 HTML 檔案轉換為 PDF。

IronPDF 和 ExpertPDF 的主要差異是什麼?

IronPDF 提供更廣泛的格式支援和整合功能,包括從 HTML 建立 PDF、編輯和格式轉換。 ExpertPDF 提供簡單的 HTML 轉 PDF 功能,並提供輸出檔案配置和數位簽章選項。

我可以使用這些庫從 PDF 文件中提取文字和圖像嗎?

是的,IronPDF 可讓您從 PDF 文件中提取文字和圖像,從而可以輕鬆地在 .NET 應用程式中操作和分析 PDF 內容。

這些PDF庫有哪些安裝選項?

IronPDF 和 ExpertPDF 皆可使用 Visual Studio 的 NuGet 套件管理器進行安裝。此外,IronPDF 的 .DLL 庫也可以直接從 IronPDF 網站下載。

是否可以將多個PDF文件合併成一個文件?

是的,IronPDF 提供合併功能,可以將多個 PDF 檔案合併成一個文件。 ExpertPDF 也提供 PDFMerge 元件,用於合併 PDF 檔案。

IronPDF進行HTML轉PDF轉換時是否需要網路連線?

不,IronPDF 不需要網路連線即可將 HTML 轉換為 PDF,因此是離線應用程式的可靠選擇。

IronPDF有哪些授權許可選項?

IronPDF 提供多種許可選項,包括單一項目許可、開發者許可、代理商許可和企業許可。所有許可證均為永久有效,並包含 30 天退款保證和一年的支援與更新服務。

ExpertPDF 能否處理 PDF 文件的數位簽章?

是的,ExpertPDF 支援對 PDF 文件進行數位簽名,從而實現安全可靠的 PDF 文件認證。

C# 開發人員在處理 PDF 時面臨哪些挑戰?這些庫如何提供協助?

C# 開發人員在讀取、寫入、建立和轉換 PDF 檔案時經常面臨挑戰。 IronPDF 和 ExpertPDF 等庫提供了強大的 HTML 轉 PDF、PDF 編輯等工具,簡化了這些任務,並方便將其整合到 C# 應用程式中。

Curtis Chau
技術作家

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

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