跳至頁尾內容
產品對比

ActivePDF 與 IronPDF:HTML 轉 PDF 教學及全面對比

在.NET環境下產生PDF檔案時,IronPDF和ActivePDF相比如何?

IronPDF 提供一體化 PDF 解決方案,採用基於 Chrome 的渲染和直覺的 API 設計,而 ActivePDF 提供模組化企業元件,需要單獨的授權。 IronPDF 在現代 Web 標準支援、跨平台部署以及大多數 .NET 開發場景的成本效益方面表現出色。

當開發人員需要在其.NET 應用程式中提供可靠的PDF 生成功能時,通常會出現兩種突出的解決方案:IronPDF 和 ActivePDF。 這兩個庫都提供了創建轉換操作 PDF 文件的有效功能,但它們在方法、定價和實現複雜性方面存在顯著差異。

IronPDF 以直覺的API 設計和使用Chrome 渲染引擎的完整HTML 到 PDF 轉換脫穎而出,而 ActivePDF 則透過多個專用元件(如用於HTML 轉換的WebGrabber和用於文件轉換DocConverter提供以企業為中心的解決方案。 本文提供了深入的比較,以幫助開發人員根據其PDF 處理需求做出明智的決定。

產品對比概覽
IronPDF 和 ActivePDF 在 .NET 開發中的比較
類別特徵/方面IronPDFActivePDF主要優勢
核心架構設計理念功能齊全、對開發者友善的程式庫模組化組件,面向企業IronPDF:更簡單的集成
API複雜度Intuitive methods like `RenderHtmlAsPdf`()組件特定的 APIIronPDF:更少的程式碼行數
學習曲線通常需要1-2天。通常需要 1-2 週。IronPDF:更快的普及
平台支援跨平台Windows、Linux、macOS、DockerWindows Server 主要IronPDF:真正的跨平台
.NET 版本.NET 10、9、8、7、6、5、Core、Framework 4.6.2+.NET Framework 4.5+、Core 1.0、Standard 1.0IronPDF:支援現代 .NET
雲端平台Azure、AWS、Google Cloud 最佳化雲端支援有限IronPDF:雲端原生就緒
HTML 轉 PDF渲染引擎鉻合金 V8 發動機原生引擎和IE引擎IronPDF:現代渲染
CSS3/HTML5 支持全力支持部分支持IronPDF:現代網路標準
JavaScript 執行完全支援 JavaScriptJavaScript 支援有限IronPDF:動態內容
網頁字體Google Fonts,系統字體限系統字體IronPDF:排版靈活性
文件轉換支援的格式HTML、DOCX、圖片、RTF、MD300+ formats (`DocConverter`)ActivePDF:更多格式
DOCX 轉 PDFBuilt-in `DocxToPdfRenderer`Native Office 轉換ActivePDF:更高的保真度
批量處理程序化方法受監視資料夾支援ActivePDF:企業自動化
表現HTML渲染速度典型值 125 毫秒,複雜值 835 毫秒引擎類型IronPDF:表現穩定
記憶體使用情況通常小於 10MB基於服務的開銷IronPDF:佔用空間更小
螺紋支援原生 async/await 優化多執行緒服務IronPDF:更佳的 .NET 集成
PDF 功能表單處理建立、填寫、展平表單進階表單功能(工具包)ActivePDF:複雜表單
PDF/A 合規性PDF/A-3B 支持多個 PDF/A 級別ActivePDF:更多合規選項
OCR功能透過 IronOCR 集成專用 OCR 組件兩者:可用解決方案
數位簽名整合式視覺簽名進階簽名選項ActivePDF:企業簽名
開發者體驗文件完整的教學和範例傳統 API 文件IronPDF:更好的學習資源
程式碼範例100 多個可直接運作的樣品GitHub 上的基本範例IronPDF:豐富的資源
錯誤訊息描述性強,可操作服務等級訊息IronPDF:更好的調試
Licensing & Pricing入門級Lite: $799 (1 dev, 1 project)`WebGrabber`: $2,499+ per componentIronPDF:入場費降低70%。
團隊許可證Professional: $2,399 (10 devs)需要多個組件IronPDF:全方位
套房選項Iron Suite: $1,498 (9 products)無套房選項IronPDF:超值
支援包含支持是的,我們提供 24/5 全天候工程支援。支援門戶訪問IronPDF:直接工程支持
回應時間通常需要 24-48 小時。因期而異IronPDF:可預測的服務等級協議
最適合用例現代網路應用程序,快速開發企業自動化、遺留系統上下文相關
項目類型軟體即服務 (SaaS)、Web 應用、微服務文件管理、批量處理根據要求
註:此比較是根據截至 2025 年的最新版本。 ActivePDF 提供針對特定企業需求的模組化組件,而 IronPDF 則提供整合解決方案。 ActivePDF 的定價會根據所選組件的不同而有顯著差異。

比較 IronPDF 和 ActivePDF 組件

  • 取得 IronPDF C# PDF 庫
  • 比較 IronPDF 和 ActivePDF 的功能
  • 將 URL 程式碼與 PDF 進行比較
  • 將 HTML 字串的程式碼與 PDF 進行比較
  • 比較許可協議、免費軟體選項等
下載完整的 C# PDF 產生速查表,比較 IronPDF 和 ActivePDF 的功能、程式碼範例和最佳實務。

概述

IronPDF C# 庫是什麼?

Iron Software是一家市場領先的組件提供商,提供IronPDF ,用於完整的PDF 操作。 IronPDF 提供了一個全面的解決方案,可以從各種格式產生 PDF 文件,同時提供對文件屬性的完全程序化控制。 開發者喜歡 IronPDF,因為它具有一致、可靠的輸出和直覺的 API,只需要極少的程式碼,尤其是在使用現代 Web 標準JavaScript 框架時。

IronPDF 支援C#VB.NETASP.NET 、MVC、 .NET Core 、.NET 9 和 .NET 10。它可以在WindowsLinuxmacOSDockerAzureAWS和其他雲端平台上無縫運作。

什麼是ActivePDF組件?

ActivePDF (現為 Apryse 的一部分)透過多個專業元件提供企業導向的 PDF 解決方案。 與 IronPDF 的統一方法不同,ActivePDF 為不同的PDF 任務提供單獨的產品,因此需要仔細考慮許可選項企業部署策略。

ActivePDF WebGrabber是什麼?它是一款用於 HTML 轉 PDF 的軟體。

ActivePDF WebGrabber專門用於將HTML 來源(URL、HTML 檔案或HTML 字串)轉換為PDF 格式。 它提供了頁面屬性的配置選項,包括頁首頁尾邊距浮水印書籤WebGrabber同時支援原生渲染引擎和 Internet Explorer渲染引擎

什麼是 ActivePDF DocConverter文件轉換工具?

ActivePDF DocConverter可將超過 300 種文件格式轉換為 PDF,包括Microsoft Office 文件影像、CAD 檔案等。 它具有受監控資料夾自動化、批次處理功能和企業級文件管理功能。

像Bootstrap這樣的現代CSS框架在PDF中是如何渲染的?

現代 Web 應用程式越來越依賴 Bootstrap、Foundation 和 Tailwind CSS 等CSS 框架來實現一致、響應式的 UI 開發。 PDF 生成庫必須準確地渲染這些框架,以保持專業的文件品質和設計保真度。 了解每個庫如何處理響應式 CSS和現代Web 字體對於選擇正確的解決方案至關重要。

IronPDF 如何處理 Bootstrap 和現代框架的支援?

IronPDF 的Chromium 渲染引擎可確保完全支援所有現代 CSS 框架和規範,提供像素級完美的渲染效果

Bootstrap 5:完全支援 Flexbox 和 CSS Grid 渲染,並提供響應式實用工具

  • Bootstrap 4:完整的卡片系統、導航元件和表單佈局
  • Tailwind CSS:所有實用優先類別和響應式變體都能正確渲染。 -基礎:完整的網格和組件系統支持 現代CSS3: Flexbox、CSS Grid、自訂屬性、動畫、轉換與變換
  • JavaScript 執行:完全支援動態內容和框架交互

已通過生產範例驗證:使用IronPDF 的渲染選項Bootstrap 主頁官方模板可以以瀏覽器精確的保真度進行轉換。

程式碼範例:使用 Bootstrap 製作的服務定價表

using IronPdf;

var renderer = new ChromePdfRenderer();

string bootstrapPricing = @"
<!DOCTYPE html>
<html>
<head>
    <link href='___PROTECTED_URL_198___ rel='stylesheet'>
</head>
<body>
    <div class='container my-5'>
        <h1 class='text-center mb-5'>Service Plans</h1>

        <div class='row g-4'>
            <div class='col-md-4'>
                <div class='card h-100 shadow-sm'>
                    <div class='card-header bg-light text-center py-3'>
                        <h3>Starter</h3>
                    </div>
                    <div class='card-body d-flex flex-column'>
                        <div class='text-center mb-4'>
                            <span class='h2'>$29</span>
                            <span class='text-muted'>/month</span>
                        </div>
                        <ul class='list-unstyled flex-grow-1'>
                            <li class='mb-2'><i class='bi bi-check-circle text-success'></i> 100 PDF conversions/month</li>
                            <li class='mb-2'><i class='bi bi-check-circle text-success'></i> Basic templates</li>
                            <li class='mb-2'><i class='bi bi-check-circle text-success'></i> Email support</li>
                            <li class='mb-2'><i class='bi bi-check-circle text-success'></i> 5 GB storage</li>
                            <li class='mb-2 text-muted'><i class='bi bi-x-circle'></i> Priority processing</li>
                        </ul>
                        <button class='btn btn-outline-primary w-100 mt-auto'>Get Started</button>
                    </div>
                </div>
            </div>

            <div class='col-md-4'>
                <div class='card h-100 shadow border-primary'>
                    <div class='position-absolute top-0 start-50 translate-middle'>
                        <span class='badge bg-primary'>Most Popular</span>
                    </div>
                    <div class='card-header bg-primary text-white text-center py-3'>
                        <h3>Professional</h3>
                    </div>
                    <div class='card-body d-flex flex-column'>
                        <div class='text-center mb-4'>
                            <span class='h2'>$99</span>
                            <span class='text-muted'>/month</span>
                        </div>
                        <ul class='list-unstyled flex-grow-1'>
                            <li class='mb-2'><i class='bi bi-check-circle text-success'></i> 1,000 PDF conversions/month</li>
                            <li class='mb-2'><i class='bi bi-check-circle text-success'></i> Premium templates</li>
                            <li class='mb-2'><i class='bi bi-check-circle text-success'></i> Priority support</li>
                            <li class='mb-2'><i class='bi bi-check-circle text-success'></i> 50 GB storage</li>
                            <li class='mb-2'><i class='bi bi-check-circle text-success'></i> Priority processing</li>
                        </ul>
                        <button class='btn btn-primary w-100 mt-auto'>Get Started</button>
                    </div>
                </div>
            </div>

            <div class='col-md-4'>
                <div class='card h-100 shadow-sm'>
                    <div class='card-header bg-dark text-white text-center py-3'>
                        <h3>Enterprise</h3>
                    </div>
                    <div class='card-body d-flex flex-column'>
                        <div class='text-center mb-4'>
                            <span class='h2'>$299</span>
                            <span class='text-muted'>/month</span>
                        </div>
                        <ul class='list-unstyled flex-grow-1'>
                            <li class='mb-2'><i class='bi bi-check-circle text-success'></i> Unlimited conversions</li>
                            <li class='mb-2'><i class='bi bi-check-circle text-success'></i> Custom templates</li>
                            <li class='mb-2'><i class='bi bi-check-circle text-success'></i> Dedicated support</li>
                            <li class='mb-2'><i class='bi bi-check-circle text-success'></i> Unlimited storage</li>
                            <li class='mb-2'><i class='bi bi-check-circle text-success'></i> SLA guarantee</li>
                        </ul>
                        <button class='btn btn-dark w-100 mt-auto'>Contact Sales</button>
                    </div>
                </div>
            </div>
        </div>
    </div>
</body>
</html>";

var pdf = renderer.RenderHtmlAsPdf(bootstrapPricing);
pdf.SaveAs("pricing-table.pdf");
using IronPdf;

var renderer = new ChromePdfRenderer();

string bootstrapPricing = @"
<!DOCTYPE html>
<html>
<head>
    <link href='___PROTECTED_URL_198___ rel='stylesheet'>
</head>
<body>
    <div class='container my-5'>
        <h1 class='text-center mb-5'>Service Plans</h1>

        <div class='row g-4'>
            <div class='col-md-4'>
                <div class='card h-100 shadow-sm'>
                    <div class='card-header bg-light text-center py-3'>
                        <h3>Starter</h3>
                    </div>
                    <div class='card-body d-flex flex-column'>
                        <div class='text-center mb-4'>
                            <span class='h2'>$29</span>
                            <span class='text-muted'>/month</span>
                        </div>
                        <ul class='list-unstyled flex-grow-1'>
                            <li class='mb-2'><i class='bi bi-check-circle text-success'></i> 100 PDF conversions/month</li>
                            <li class='mb-2'><i class='bi bi-check-circle text-success'></i> Basic templates</li>
                            <li class='mb-2'><i class='bi bi-check-circle text-success'></i> Email support</li>
                            <li class='mb-2'><i class='bi bi-check-circle text-success'></i> 5 GB storage</li>
                            <li class='mb-2 text-muted'><i class='bi bi-x-circle'></i> Priority processing</li>
                        </ul>
                        <button class='btn btn-outline-primary w-100 mt-auto'>Get Started</button>
                    </div>
                </div>
            </div>

            <div class='col-md-4'>
                <div class='card h-100 shadow border-primary'>
                    <div class='position-absolute top-0 start-50 translate-middle'>
                        <span class='badge bg-primary'>Most Popular</span>
                    </div>
                    <div class='card-header bg-primary text-white text-center py-3'>
                        <h3>Professional</h3>
                    </div>
                    <div class='card-body d-flex flex-column'>
                        <div class='text-center mb-4'>
                            <span class='h2'>$99</span>
                            <span class='text-muted'>/month</span>
                        </div>
                        <ul class='list-unstyled flex-grow-1'>
                            <li class='mb-2'><i class='bi bi-check-circle text-success'></i> 1,000 PDF conversions/month</li>
                            <li class='mb-2'><i class='bi bi-check-circle text-success'></i> Premium templates</li>
                            <li class='mb-2'><i class='bi bi-check-circle text-success'></i> Priority support</li>
                            <li class='mb-2'><i class='bi bi-check-circle text-success'></i> 50 GB storage</li>
                            <li class='mb-2'><i class='bi bi-check-circle text-success'></i> Priority processing</li>
                        </ul>
                        <button class='btn btn-primary w-100 mt-auto'>Get Started</button>
                    </div>
                </div>
            </div>

            <div class='col-md-4'>
                <div class='card h-100 shadow-sm'>
                    <div class='card-header bg-dark text-white text-center py-3'>
                        <h3>Enterprise</h3>
                    </div>
                    <div class='card-body d-flex flex-column'>
                        <div class='text-center mb-4'>
                            <span class='h2'>$299</span>
                            <span class='text-muted'>/month</span>
                        </div>
                        <ul class='list-unstyled flex-grow-1'>
                            <li class='mb-2'><i class='bi bi-check-circle text-success'></i> Unlimited conversions</li>
                            <li class='mb-2'><i class='bi bi-check-circle text-success'></i> Custom templates</li>
                            <li class='mb-2'><i class='bi bi-check-circle text-success'></i> Dedicated support</li>
                            <li class='mb-2'><i class='bi bi-check-circle text-success'></i> Unlimited storage</li>
                            <li class='mb-2'><i class='bi bi-check-circle text-success'></i> SLA guarantee</li>
                        </ul>
                        <button class='btn btn-dark w-100 mt-auto'>Contact Sales</button>
                    </div>
                </div>
            </div>
        </div>
    </div>
</body>
</html>";

var pdf = renderer.RenderHtmlAsPdf(bootstrapPricing);
pdf.SaveAs("pricing-table.pdf");
$vbLabelText   $csharpLabel

輸出:一個專業的定價表,採用 Bootstrap 的卡片網格、flexbox 佈局、徽章定位和響應式實用程式——所有內容都準確地保留在 PDF 中。

ActivePDF WebGrabber在支援現代框架上有哪些限制?

ActivePDF WebGrabber提供 HTML 到 PDF 的轉換功能,但使用較舊的渲染引擎,對現代 CSS 框架有許多限制:

-原生引擎:自訂渲染,CSS3 支援有限

  • Internet Explorer 引擎:採用傳統 IE 渲染方式,不支援現代 CSS 功能 -不支援 Bootstrap 4/5:不支援 Flexbox 和 CSS Grid 功能。 Bootstrap 3 的限制:只有基於表格的佈局才能可靠地運作。
  • JavaScript 的限制:與現代瀏覽器相比,JavaScript 執行功能有限。 -需要採取變通方法:複雜的 Bootstrap 元件需要對 CSS 進行大量修改。

開發者報告的常見問題: Bootstrap導覽列渲染版面配置問題

  • 使用 Flexbox 的卡片元件顯示不正確 -響應式網格系統在 PDF 輸出中出現故障
  • 需要簡化或重寫 Bootstrap 元件以提高相容性

開發影響:使用現代 Bootstrap 版本(4+)建立的應用程式需要對 ActivePDF WebGrabber 進行大量額外工作。 球隊必須滿足以下條件之一:

  1. 維護用於產生 PDF 的平行簡化 CSS(雙重維護負擔)
  2. 將網頁使用者介面限制為 Bootstrap 3 或更早版本(犧牲了現代響應式功能)
  3. 手動測試並修復每個 Bootstrap 元件(耗時且容易出錯)

對於大量使用 Bootstrap 或現代 CSS 框架的專案而言,ActivePDF WebGrabber的渲染限制可能會大幅增加開發成本並降低設計彈性。 建議使用IronPDF 的 Chrome 渲染器以獲得精確的 Bootstrap 渲染效果。

有關 Bootstrap 框架相容性的完整指南,請參閱Bootstrap 和 Flexbox CSS 指南

為什麼開發者選擇 IronPDF 而不是 ActivePDF?

IronPDF 的渲染速度極快,靜態網站的 HTML 轉 PDF 僅需 835 毫秒,並且在不同類型的內容上都能保持穩定的效能。該函式庫的記憶體使用量經過最佳化,通常低於 10MB,渲染頁首和頁尾時記憶體使用量更是減少了 75%。

開發者欣賞 IronPDF 簡潔明了的API 設計,只需三行程式碼即可產生 PDF ,而 ActivePDF 則需要更複雜的多步驟流程。 完整的文件包含 100 多個程式碼範例和詳細教學課程,讓團隊更輕鬆地快速上手非同步 PDF 產生批次處理等功能。

ActivePDF在什麼情況下會是更好的選擇?

ActivePDF 在需要以下功能的企業環境中表現出色:

儘管與IronPDF 的功能相比,ActivePDF 的成本和複雜性更高,但對於已經擁有 ActivePDF 基礎架構或特定企業工作流程需求的組織來說,ActivePDF 的模組化方法可能是有益的。


比較

ActivePDF 和 IronPDF 的功能有何不同?

哪個函式庫的HTML轉PDF轉換功能比較好?

IronPDF 使用完整的Chrome V8 渲染引擎,提供 98% 以上的瀏覽器保真度,並完全支援HTML5CSS3JavaScriptWeb 字體。 ActivePDF WebGrabber提供原生引擎和 Internet Explorer 引擎,但JavaScript 執行CSS3 支援有限。 Native Engine 不支援 CSS 樣式表,而 IE Engine 依賴已棄用的 Internet Explorer 11,它缺少CSS Gridflexbox 佈局等現代 Web 標準。

這些庫在文檔格式支援方面有何區別?

IronPDF 主要支援常見格式( HTMLDOCX圖像RTFMarkdown ),而 ActivePDF DocConverter支援 300 多種文件格式,包括 CAD 檔案、舊版文件格式和專業企業格式。 這使得 ActivePDF 更適合處理各種文件類型的組織,儘管IronPDF 的轉換功能涵蓋了現代應用程式中最常用的格式。

PDF 處理功能有哪些?

這兩個庫都提供完整的PDF處理功能

IronPDF 提供:

ActivePDF 提供:

  • 高級表單欄位操作(透過工具包)
  • 對 PDF 內部結構進行更精細的控制
  • 企業級編輯功能
  • 多種PDF/A 合規級別
  • 用於特定任務的專用元件

步驟 1:安裝

如何安裝 IronPDF?

IronPDF應該使用哪種安裝方法?

開發者可以透過多種方式安裝 IronPDF,其中NuGet 套件管理器是最方便的方式:

NuGet 套件管理器

在 Visual Studio 中開啟 NuGet 套件管理器,並搜尋 IronPDF:

:InstallCmd
:InstallCmd
SHELL

手動下載 IronPDF.dll

或者,下載 IronPDF.dll並使用手動安裝方法將其引用新增至專案。

安裝完成後,請透過新增以下內容來驗證存取權限:

using IronPdf;
using IronPdf;
$vbLabelText   $csharpLabel

IronPDF 支援.NET 9 和 10 ,以及所有現代 .NET 版本,包括CoreStandardFramework 4.6.2+ 。 有關特定平台的安裝,請參閱LinuxmacOSDockerAzureAWS的指南。


如何安裝ActivePDF組件?

如何安裝ActivePDF WebGrabber

ActivePDF WebGrabber安裝過程較為複雜:

  1. 從 ActivePDF 網站下載安裝程序
  2. 向 ActivePDF 銷售部門申請許可證密鑰(提供評估密鑰)
  3. 以管理員權限執行安裝程序
  4. 在安裝過程中設定WebGrabber服務
  5. 對於 Windows Server 2012 及更高版本,請為該服務建立一個專用使用者帳戶。

安裝完成後,新增WebGrabber引用: C:\Program Files\ActivePDF\WebGrabber\bin\APWebGrabber.Net45.dll

如何安裝ActivePDF DocConverter

DocConverter安裝方式類似:

  1. 下載DocConverter安裝程序
  2. 使用管理員權限安裝
  3. 如果使用拖放轉換,請設定受監視的資料夾
  4. 設定組態管理員以進行批次處理

注意:ActivePDF 元件需要 Windows Server,且不支援像 IronPDF 那樣的跨平台部署。 對於現代部署場景,請考慮IronPDF 的容器化選項雲端原生支援


操作教學課程

如何將HTML字串轉換為PDF檔案?

讓我們比較一下這兩個函式庫是如何處理一個常見任務的:將HTML 字串轉換為 PDF 檔案

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

/**
 * HTML String to PDF
 * anchor-html-string-with-ironpdf
 **/
using IronPdf;

static void Main(string[] args)
{
    // Create rendering converter
    var renderer = new ChromePdfRenderer();

    // HTML Source
    string html = "<h1>Hello World!</h1> <h2>Welcome to IronPDF</h2> ";

    // Convert HTML string to PDF file
    var pdf = renderer.RenderHtmlAsPdf(html);

    // Save the file
    pdf.SaveAs("E:/sample.pdf");
}
/**
 * HTML String to PDF
 * anchor-html-string-with-ironpdf
 **/
using IronPdf;

static void Main(string[] args)
{
    // Create rendering converter
    var renderer = new ChromePdfRenderer();

    // HTML Source
    string html = "<h1>Hello World!</h1> <h2>Welcome to IronPDF</h2> ";

    // Convert HTML string to PDF file
    var pdf = renderer.RenderHtmlAsPdf(html);

    // Save the file
    pdf.SaveAs("E:/sample.pdf");
}
$vbLabelText   $csharpLabel

IronPDF 方法的主要優勢: 轉換僅需 3 行程式碼。

  • 自動處理編碼和渲染
  • 內建Chrome 引擎確保準確渲染 無需單獨設定檔路徑和名稱

ActivePDF WebGrabber如何將 HTML 字串轉換為 PDF?

using APWebGrabber;

static void Main(string[] args)
{
    // Instantiate Object
    WebGrabber wg = new WebGrabber();

    // HTML Source
    string html = "<h1>Hello World!</h1> <h2>Welcome to ActivePDF WebGrabber</h2>";

    // Assign source HTML to WebGrabber
    wg.CreateFromHTMLText = html;

    // Specify file directory
    wg.OutputDirectory = "E:/";

    // File name
    wg.NewDocumentName = "sample.pdf";

    // Convert source HTML to PDF file
    wg.ConvertToPDF();
}
using APWebGrabber;

static void Main(string[] args)
{
    // Instantiate Object
    WebGrabber wg = new WebGrabber();

    // HTML Source
    string html = "<h1>Hello World!</h1> <h2>Welcome to ActivePDF WebGrabber</h2>";

    // Assign source HTML to WebGrabber
    wg.CreateFromHTMLText = html;

    // Specify file directory
    wg.OutputDirectory = "E:/";

    // File name
    wg.NewDocumentName = "sample.pdf";

    // Convert source HTML to PDF file
    wg.ConvertToPDF();
}
$vbLabelText   $csharpLabel

這兩個庫是如何處理帶有 CSS 樣式的複雜 HTML 的?

此範例展示了這兩個庫如何處理帶有CSS 樣式的更複雜的 HTML:

IronPDF 進階範例:

using IronPdf;

var renderer = new ChromePdfRenderer();

// Configure rendering options
renderer.RenderingOptions.CssMediaType = PdfCssMediaType.Print;
renderer.RenderingOptions.PrintHtmlBackgrounds = true;
renderer.RenderingOptions.CreatePdfFormsFromHtml = true;

string advancedHtml = @"
    <html>
    <head>
        <style>
            body { font-family: Arial, sans-serif; }
            .invoice { border: 1px solid #ccc; padding: 20px; }
            .header { background-color: #f0f0f0; padding: 10px; }
        </style>
    </head>
    <body>
        <div class='invoice'>
            <div class='header'>
                <h1>Invoice #12345</h1>
            </div>
            <form>
                <input type='text' name='customer' placeholder='Customer Name'>
            </form>
        </div>
    </body>
    </html>";

var pdf = renderer.RenderHtmlAsPdf(advancedHtml);
pdf.SaveAs("advanced-invoice.pdf");
using IronPdf;

var renderer = new ChromePdfRenderer();

// Configure rendering options
renderer.RenderingOptions.CssMediaType = PdfCssMediaType.Print;
renderer.RenderingOptions.PrintHtmlBackgrounds = true;
renderer.RenderingOptions.CreatePdfFormsFromHtml = true;

string advancedHtml = @"
    <html>
    <head>
        <style>
            body { font-family: Arial, sans-serif; }
            .invoice { border: 1px solid #ccc; padding: 20px; }
            .header { background-color: #f0f0f0; padding: 10px; }
        </style>
    </head>
    <body>
        <div class='invoice'>
            <div class='header'>
                <h1>Invoice #12345</h1>
            </div>
            <form>
                <input type='text' name='customer' placeholder='Customer Name'>
            </form>
        </div>
    </body>
    </html>";

var pdf = renderer.RenderHtmlAsPdf(advancedHtml);
pdf.SaveAs("advanced-invoice.pdf");
$vbLabelText   $csharpLabel

ChromePdfRenderer類別提供了對渲染過程的廣泛控制,包括CSS 媒體類型選擇、背景渲染以及從 HTML 輸入元素自動建立表單欄位


如何將HTML檔案轉換為PDF檔案?

IronPDF 如何將 HTML 檔案轉換為 PDF?

/**
 * HTML File to PDF
 * anchor-html-file-with-ironpdf
 **/
using IronPdf;

static void Main(string[] args)
{
    // Create rendering converter
    var renderer = new ChromePdfRenderer();

    // Render HTML file to PDF
    var pdf = renderer.RenderHtmlFileAsPdf("E:/myHtmlFile.html");

    // Save to target location
    pdf.SaveAs("E:/Sample.pdf");
}
/**
 * HTML File to PDF
 * anchor-html-file-with-ironpdf
 **/
using IronPdf;

static void Main(string[] args)
{
    // Create rendering converter
    var renderer = new ChromePdfRenderer();

    // Render HTML file to PDF
    var pdf = renderer.RenderHtmlFileAsPdf("E:/myHtmlFile.html");

    // Save to target location
    pdf.SaveAs("E:/Sample.pdf");
}
$vbLabelText   $csharpLabel

IronPDF 會自動處理:

ActivePDF WebGrabber如何將 HTML 檔案轉換為 PDF?

using APWebGrabber;

static void Main(string[] args)
{
    // Instantiate Object
    WebGrabber wg = new WebGrabber();

    // Specify file path to be converted
    wg.URL = "E:/myHtmlFile.html";

    // Specify the directory for newly generated file
    wg.OutputDirectory = "E:/";

    // Newly generated file name
    wg.NewDocumentName = "Sample.pdf";

    // Convert HTML file to PDF
    wg.ConvertToPDF();
}
using APWebGrabber;

static void Main(string[] args)
{
    // Instantiate Object
    WebGrabber wg = new WebGrabber();

    // Specify file path to be converted
    wg.URL = "E:/myHtmlFile.html";

    // Specify the directory for newly generated file
    wg.OutputDirectory = "E:/";

    // Newly generated file name
    wg.NewDocumentName = "Sample.pdf";

    // Convert HTML file to PDF
    wg.ConvertToPDF();
}
$vbLabelText   $csharpLabel

請注意,ActivePDF WebGrabber使用URL屬性來取得本機文件,這可能會讓期望使用特定於文件的方法的開發人員感到困惑。 如需更直覺的文件處理,請參閱IronPDF 的 HTML 文件轉換指南


如何將URL轉換為PDF檔案?

IronPDF 如何將 URL 轉換為 PDF?

/**
 * URL to PDF
 * anchor-url-with-ironpdf
 **/
using IronPdf;

static void Main(string[] args)
{
    // Create rendering converter
    var renderer = new ChromePdfRenderer();

    // Specify URL
    var pdf = renderer.RenderUrlAsPdf("___PROTECTED_URL_199___");

    // Save the file
    pdf.SaveAs("E:/Sample.pdf");
}
/**
 * URL to PDF
 * anchor-url-with-ironpdf
 **/
using IronPdf;

static void Main(string[] args)
{
    // Create rendering converter
    var renderer = new ChromePdfRenderer();

    // Specify URL
    var pdf = renderer.RenderUrlAsPdf("___PROTECTED_URL_199___");

    // Save the file
    pdf.SaveAs("E:/Sample.pdf");
}
$vbLabelText   $csharpLabel

如何使用 IronPDF 處理非同步 URL 轉換?

IronPDF 提供出色的非同步支援,從而實現更佳的性能:

using IronPdf;
using System.Threading.Tasks;

static async Task Main(string[] args)
{
    var renderer = new ChromePdfRenderer();

    // Configure for complex pages
    renderer.RenderingOptions.WaitFor.RenderDelay(2000); // Wait 2 seconds
    renderer.RenderingOptions.WaitFor.JavaScript(1500); // Wait for JS

    // Async conversion
    var pdf = await renderer.RenderUrlAsPdfAsync("___PROTECTED_URL_200___");
    await pdf.SaveAsAsync("E:/async-sample.pdf");
}
using IronPdf;
using System.Threading.Tasks;

static async Task Main(string[] args)
{
    var renderer = new ChromePdfRenderer();

    // Configure for complex pages
    renderer.RenderingOptions.WaitFor.RenderDelay(2000); // Wait 2 seconds
    renderer.RenderingOptions.WaitFor.JavaScript(1500); // Wait for JS

    // Async conversion
    var pdf = await renderer.RenderUrlAsPdfAsync("___PROTECTED_URL_200___");
    await pdf.SaveAsAsync("E:/async-sample.pdf");
}
$vbLabelText   $csharpLabel

WaitFor 類別可以精確控制渲染時間,這對於JavaScript 密集型應用程式至關重要。 開發者可以使用JavaScript 訊息監聽器等待特定元素、網路空閒狀態或自訂 JavaScript 事件。

ActivePDF WebGrabber如何將 URL 轉換為 PDF?

using APWebGrabber;

static void Main(string[] args)
{
    // Instantiate Object
    WebGrabber wg = new WebGrabber();

    // Specify URL 
    wg.URL = "___PROTECTED_URL_201___";

    // Specify the directory for newly generated file
    wg.OutputDirectory = "E:/";

    // Specify file name
    wg.NewDocumentName = "Sample.pdf";

    // Set timeout for conversion
    wg.TimeoutSpan = new TimeSpan(0, 0, 30);

    // Convert specified URL webpage to PDF
    wg.ConvertToPDF();
}
using APWebGrabber;

static void Main(string[] args)
{
    // Instantiate Object
    WebGrabber wg = new WebGrabber();

    // Specify URL 
    wg.URL = "___PROTECTED_URL_201___";

    // Specify the directory for newly generated file
    wg.OutputDirectory = "E:/";

    // Specify file name
    wg.NewDocumentName = "Sample.pdf";

    // Set timeout for conversion
    wg.TimeoutSpan = new TimeSpan(0, 0, 30);

    // Convert specified URL webpage to PDF
    wg.ConvertToPDF();
}
$vbLabelText   $csharpLabel

對於更進階的 URL 轉換方案,包括身份驗證自訂標頭,請參閱IronPDF 的 URL 轉 PDF 指南


如何在PDF上加浮水印?

IronPDF 如何處理浮水印?

IronPDF 提供透過 HTML/CSS 實現的靈活浮水印功能

/**
 * Watermark PDF
 * anchor-watermark-with-ironpdf
 **/
using IronPdf;

static void Main(string[] args)
{
    var renderer = new ChromePdfRenderer();

    // Source HTML string
    string html = "<h1 style='text-align:center'>WaterMark Example</h1>";

    // Create PDF
    var pdf = renderer.RenderHtmlAsPdf(html);

    // Apply watermark with HTML/CSS
    pdf.ApplyWatermark("<h2 style='color:red; opacity:0.5'>CONFIDENTIAL</h2>", 
        rotation: 30, 
        opacity: 50);

    // Save the document
    pdf.SaveAs("E:/Sample.pdf");
}
/**
 * Watermark PDF
 * anchor-watermark-with-ironpdf
 **/
using IronPdf;

static void Main(string[] args)
{
    var renderer = new ChromePdfRenderer();

    // Source HTML string
    string html = "<h1 style='text-align:center'>WaterMark Example</h1>";

    // Create PDF
    var pdf = renderer.RenderHtmlAsPdf(html);

    // Apply watermark with HTML/CSS
    pdf.ApplyWatermark("<h2 style='color:red; opacity:0.5'>CONFIDENTIAL</h2>", 
        rotation: 30, 
        opacity: 50);

    // Save the document
    pdf.SaveAs("E:/Sample.pdf");
}
$vbLabelText   $csharpLabel

使用 IronPDF 進行進階浮水印:

// Image watermark
pdf.ApplyWatermark($@"<img src='logo.png' style='width:200px'>", 
    rotation: 0, 
    opacity: 30, 
    verticalAlignment: VerticalAlignment.Middle);

// Complex HTML watermark with positioning
string complexWatermark = @"
    <div style='text-align:center; font-family:Arial'>
        <h1 style='color:#ff0000'>DRAFT</h1>
        <p>Generated: " + DateTime.Now.ToString() + @"</p>
    </div>";

pdf.ApplyWatermark(complexWatermark, rotation: 45, opacity: 25);
// Image watermark
pdf.ApplyWatermark($@"<img src='logo.png' style='width:200px'>", 
    rotation: 0, 
    opacity: 30, 
    verticalAlignment: VerticalAlignment.Middle);

// Complex HTML watermark with positioning
string complexWatermark = @"
    <div style='text-align:center; font-family:Arial'>
        <h1 style='color:#ff0000'>DRAFT</h1>
        <p>Generated: " + DateTime.Now.ToString() + @"</p>
    </div>";

pdf.ApplyWatermark(complexWatermark, rotation: 45, opacity: 25);
$vbLabelText   $csharpLabel

ActivePDF是如何建立浮水印的?

ActivePDF 需要使用文字圖章作為變通方法:

using APWebGrabber;

static void Main(string[] args)
{
    WebGrabber wg = new WebGrabber();

    string html = "<h1 style='text-align:center'>WaterMark Example</h1>";
    wg.CreateFromHTMLText = html;

    // Add text stamp as watermark
    wg.AddStampText(270.0f, 350.0f, "WaterMark");

    // Configure stamp appearance
    wg.StampFontSize = 20;
    wg.StampFont = "Times New Roman";
    wg.StampFontTransparency = 1f;
    wg.StampRotation = 45.0f;
    wg.StampColorNET = new ADK.PDF.Color() 
    { 
        Red = 255, 
        Green = 0, 
        Blue = 0, 
        Gray = 0 
    };

    wg.OutputDirectory = "E:/";
    wg.NewDocumentName = "Sample.pdf";
    wg.ConvertToPDF();
}
using APWebGrabber;

static void Main(string[] args)
{
    WebGrabber wg = new WebGrabber();

    string html = "<h1 style='text-align:center'>WaterMark Example</h1>";
    wg.CreateFromHTMLText = html;

    // Add text stamp as watermark
    wg.AddStampText(270.0f, 350.0f, "WaterMark");

    // Configure stamp appearance
    wg.StampFontSize = 20;
    wg.StampFont = "Times New Roman";
    wg.StampFontTransparency = 1f;
    wg.StampRotation = 45.0f;
    wg.StampColorNET = new ADK.PDF.Color() 
    { 
        Red = 255, 
        Green = 0, 
        Blue = 0, 
        Gray = 0 
    };

    wg.OutputDirectory = "E:/";
    wg.NewDocumentName = "Sample.pdf";
    wg.ConvertToPDF();
}
$vbLabelText   $csharpLabel

ActivePDF 方法僅限於純文字浮水印,並且需要手動計算定位。 如需更進階的浮水印功能,請參閱IronPDF 的浮水印範例


如何設定PDF文件的頁首和頁尾?

IronPDF 如何新增頁首和頁尾?

IronPDF 提供簡單的文字和複雜的HTML 頁首/頁尾

/**
 * Set Header Footers
 * anchor-headers-and-footers-with-ironpdf
 **/
using IronPdf;

static void Main(string[] args)
{
    var renderer = new ChromePdfRenderer();

    // Configure text header/footer
    renderer.RenderingOptions.TextHeader = new TextHeaderFooter()
    {
        LeftText = "Company Name",
        CenterText = "{page} of {total-pages}",
        RightText = "{date} {time}",
        DrawDividerLine = true,
        FontSize = 12,
        FontFamily = "Arial"
    };

    renderer.RenderingOptions.TextFooter = new TextHeaderFooter()
    {
        CenterText = "Copyright © 2025",
        RightText = "Page {page}",
        FontSize = 10
    };

    // HTML content
    string html = "<h1>Document Content</h1><p>Lorem ipsum...</p>";
    var pdf = renderer.RenderHtmlAsPdf(html);
    pdf.SaveAs("E:/document.pdf");
}
/**
 * Set Header Footers
 * anchor-headers-and-footers-with-ironpdf
 **/
using IronPdf;

static void Main(string[] args)
{
    var renderer = new ChromePdfRenderer();

    // Configure text header/footer
    renderer.RenderingOptions.TextHeader = new TextHeaderFooter()
    {
        LeftText = "Company Name",
        CenterText = "{page} of {total-pages}",
        RightText = "{date} {time}",
        DrawDividerLine = true,
        FontSize = 12,
        FontFamily = "Arial"
    };

    renderer.RenderingOptions.TextFooter = new TextHeaderFooter()
    {
        CenterText = "Copyright © 2025",
        RightText = "Page {page}",
        FontSize = 10
    };

    // HTML content
    string html = "<h1>Document Content</h1><p>Lorem ipsum...</p>";
    var pdf = renderer.RenderHtmlAsPdf(html);
    pdf.SaveAs("E:/document.pdf");
}
$vbLabelText   $csharpLabel

對於使用HTML實作更複雜的頁首/頁尾:

// HTML headers with dynamic content
renderer.RenderingOptions.HtmlHeader = new HtmlHeaderFooter()
{
    HtmlFragment = @"
        <div style='display: flex; justify-content: space-between; padding: 10px;'>
            <img src='logo.png' style='height: 30px;'>
            <div>{page} / {total-pages}</div>
        </div>",
    Height = 50
};
// HTML headers with dynamic content
renderer.RenderingOptions.HtmlHeader = new HtmlHeaderFooter()
{
    HtmlFragment = @"
        <div style='display: flex; justify-content: space-between; padding: 10px;'>
            <img src='logo.png' style='height: 30px;'>
            <div>{page} / {total-pages}</div>
        </div>",
    Height = 50
};
$vbLabelText   $csharpLabel

IronPDF 中預先定義的合併欄位包括:

  • {page} - 當前頁碼
  • {total-pages} - 總頁數
  • {url} - 來源 URL(如有)
  • {date} - 目前日期
  • {time} - 目前時間
  • {html-title} - HTML 文件的標題
  • {pdf-title} - PDF 元資料標題

ActivePDF WebGrabber如何設定頁首和頁尾?

using APWebGrabber;

static void Main(string[] args)
{
    WebGrabber wg = new WebGrabber();

    string html = @"<h1 style='text-align:center;'>Page Content</h1>";
    wg.CreateFromHTMLText = html;

    // Configure header
    wg.HeaderHeight = 0.5f;
    wg.HeaderHTML = "<div style='float: left;'>Header Text</div>";
    wg.HeaderHTML += $"<div style='float: right;'>{DateTime.Now.ToShortDateString()}</div>";

    // Configure footer
    wg.FooterHeight = 0.5f;
    wg.FooterHTML = "<div style='text-align: right;'>%cp% of %tp%</div>";

    wg.OutputDirectory = "E:/";
    wg.NewDocumentName = "Sample.pdf";
    wg.ConvertToPDF();
}
using APWebGrabber;

static void Main(string[] args)
{
    WebGrabber wg = new WebGrabber();

    string html = @"<h1 style='text-align:center;'>Page Content</h1>";
    wg.CreateFromHTMLText = html;

    // Configure header
    wg.HeaderHeight = 0.5f;
    wg.HeaderHTML = "<div style='float: left;'>Header Text</div>";
    wg.HeaderHTML += $"<div style='float: right;'>{DateTime.Now.ToShortDateString()}</div>";

    // Configure footer
    wg.FooterHeight = 0.5f;
    wg.FooterHTML = "<div style='text-align: right;'>%cp% of %tp%</div>";

    wg.OutputDirectory = "E:/";
    wg.NewDocumentName = "Sample.pdf";
    wg.ConvertToPDF();
}
$vbLabelText   $csharpLabel

注意:ActivePDF 使用專有佔位符( %cp%表示目前頁, %tp%表示總頁數),需要手動建立 HTML。 如需更靈活的頁首/頁尾選項,請參閱IronPDF 的頁首和頁尾指南


進階PDF功能有何差別?

如何建立和編輯PDF表單?

IronPDF 如何處理表單建立?

using IronPdf;

// Create a PDF with form fields
var renderer = new ChromePdfRenderer();
renderer.RenderingOptions.CreatePdfFormsFromHtml = true;

string formHtml = @"
    <form>
        <label>Name: <input type='text' name='fullname'></label><br>
        <label>Email: <input type='email' name='email'></label><br>
        <label>Subscribe: <input type='checkbox' name='subscribe'></label><br>
        <label>
            Plan:
            <select name='plan'>
                <option>Basic</option>
                <option>Premium</option>
            </select>
        </label>
    </form>";

var pdf = renderer.RenderHtmlAsPdf(formHtml);

// Fill form fields programmatically
pdf.Form.FindFormField("fullname").Value = "John Doe";
pdf.Form.FindFormField("email").Value = "john@example.com";
pdf.Form.FindFormField("subscribe").Value = "Yes";

pdf.SaveAs("filled-form.pdf");
using IronPdf;

// Create a PDF with form fields
var renderer = new ChromePdfRenderer();
renderer.RenderingOptions.CreatePdfFormsFromHtml = true;

string formHtml = @"
    <form>
        <label>Name: <input type='text' name='fullname'></label><br>
        <label>Email: <input type='email' name='email'></label><br>
        <label>Subscribe: <input type='checkbox' name='subscribe'></label><br>
        <label>
            Plan:
            <select name='plan'>
                <option>Basic</option>
                <option>Premium</option>
            </select>
        </label>
    </form>";

var pdf = renderer.RenderHtmlAsPdf(formHtml);

// Fill form fields programmatically
pdf.Form.FindFormField("fullname").Value = "John Doe";
pdf.Form.FindFormField("email").Value = "john@example.com";
pdf.Form.FindFormField("subscribe").Value = "Yes";

pdf.SaveAs("filled-form.pdf");
$vbLabelText   $csharpLabel

了解更多關於使用 IronPDF建立 PDF 表單編輯表單資料的資訊

ActivePDF 工具包 如何處理表單?

// ActivePDF requires separate Toolkit component for forms
APToolkitNET.Toolkit toolkit = new APToolkitNET.Toolkit();

// Open existing PDF
toolkit.OpenInputFile("form-template.pdf");

// Set form field values
toolkit.SetFormFieldData("fullname", "John Doe", -997);
toolkit.SetFormFieldData("email", "john@example.com", -997);

// Save filled form
toolkit.CopyForm(0, 0);
toolkit.SaveAs("filled-form.pdf");
// ActivePDF requires separate Toolkit component for forms
APToolkitNET.Toolkit toolkit = new APToolkitNET.Toolkit();

// Open existing PDF
toolkit.OpenInputFile("form-template.pdf");

// Set form field values
toolkit.SetFormFieldData("fullname", "John Doe", -997);
toolkit.SetFormFieldData("email", "john@example.com", -997);

// Save filled form
toolkit.CopyForm(0, 0);
toolkit.SaveAs("filled-form.pdf");
$vbLabelText   $csharpLabel

如何確保符合 PDF/A 標準?

這兩個庫都支援PDF/A ,但採用的方法不同:

如何使用 IronPDF 建立 PDF/A 文件?

using IronPdf;

var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf("<h1>Archival Document</h1>");

// Convert to PDF/A-3B
pdf.SaveAsPdfA("archive.pdf", PdfAVersions.PdfA3B);
using IronPdf;

var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf("<h1>Archival Document</h1>");

// Convert to PDF/A-3B
pdf.SaveAsPdfA("archive.pdf", PdfAVersions.PdfA3B);
$vbLabelText   $csharpLabel

IronPDF 也支援使用 ZUGFeRD 進行電子發票的 PDF/A-3 格式。 更多詳情請參閱PDF/A 里程碑更新

如何使用 ActivePDF DocConverter建立 PDF/A 檔案?

// Requires DocConverter component
DocConverter dc = new DocConverter();
dc.SetPDFACompliance(PDFACompliance.PDFA2B);
dc.ConvertToPDF("input.html", "output.pdf");
// Requires DocConverter component
DocConverter dc = new DocConverter();
dc.SetPDFACompliance(PDFACompliance.PDFA2B);
dc.ConvertToPDF("input.html", "output.pdf");
$vbLabelText   $csharpLabel

如何為PDF檔案添加數位簽名?

IronPDF如何處理數位簽名?

using IronPdf;
using IronPdf.Signing;

// Load or create PDF
var pdf = PdfDocument.FromFile("document.pdf");

// Create signature with certificate
var signature = new PdfSignature("certificate.pfx", "password");

// Configure signature appearance
signature.SignatureImage = new PdfSignatureImage("signature.png");
signature.SigningContact = "john@company.com";
signature.SigningReason = "Document Approval";

// Apply signature
pdf.Sign(signature);
pdf.SaveAs("signed.pdf");
using IronPdf;
using IronPdf.Signing;

// Load or create PDF
var pdf = PdfDocument.FromFile("document.pdf");

// Create signature with certificate
var signature = new PdfSignature("certificate.pfx", "password");

// Configure signature appearance
signature.SignatureImage = new PdfSignatureImage("signature.png");
signature.SigningContact = "john@company.com";
signature.SigningReason = "Document Approval";

// Apply signature
pdf.Sign(signature);
pdf.SaveAs("signed.pdf");
$vbLabelText   $csharpLabel

有關進階簽名場景,請參閱IronPDF 的簽名指南使用 HSM 進行簽名

如何處理批量處理?

IronPDF如何處理大量轉換?

using IronPdf;
using System.Threading.Tasks;
using System.IO;

static async Task BatchConvertAsync()
{
    var renderer = new ChromePdfRenderer();
    var tasks = new List<Task>();

    foreach (var file in Directory.GetFiles("input", "*.html"))
    {
        tasks.Add(Task.Run(async () =>
        {
            var pdf = await renderer.RenderHtmlFileAsPdfAsync(file);
            var outputPath = Path.Combine("output", 
                Path.GetFileNameWithoutExtension(file) + ".pdf");
            await pdf.SaveAsAsync(outputPath);
        }));
    }

    await Task.WhenAll(tasks);
}
using IronPdf;
using System.Threading.Tasks;
using System.IO;

static async Task BatchConvertAsync()
{
    var renderer = new ChromePdfRenderer();
    var tasks = new List<Task>();

    foreach (var file in Directory.GetFiles("input", "*.html"))
    {
        tasks.Add(Task.Run(async () =>
        {
            var pdf = await renderer.RenderHtmlFileAsPdfAsync(file);
            var outputPath = Path.Combine("output", 
                Path.GetFileNameWithoutExtension(file) + ".pdf");
            await pdf.SaveAsAsync(outputPath);
        }));
    }

    await Task.WhenAll(tasks);
}
$vbLabelText   $csharpLabel

如需更多批次技術,請參閱IronPDF 的非同步指南平行處理範例

ActivePDF DocConverter如何處理批次處理?

// DocConverter supports watched folders for automatic conversion
DocConverter dc = new DocConverter();

// Configure watched folder
dc.AddWatchedFolder(@"C:\Input", @"C:\Output", "*.html");
dc.StartWatching();

// Files dropped in the input folder are automatically converted
// DocConverter supports watched folders for automatic conversion
DocConverter dc = new DocConverter();

// Configure watched folder
dc.AddWatchedFolder(@"C:\Input", @"C:\Output", "*.html");
dc.StartWatching();

// Files dropped in the input folder are automatically converted
$vbLabelText   $csharpLabel

效能和資源比較如何?

這些庫在效能方面有何區別?

基於基準測試和實際使用情況:

IronPDF的性能指標有哪些?

  • HTML渲染:簡單內容約125毫秒
  • 複雜網站:835毫秒(在靜態網站上測試)
  • 記憶體佔用:通常低於 10MB
  • 初始啟動時間:2-3 秒(Chrome 引擎初始化)
  • 頁首/頁尾記憶體使用量減少 75% 大型文件載入時間縮短 80%

有關詳細效能最佳化技巧,請參閱IronPDF 的效能指南

ActivePDF的性能特點是什麼?

  • 變數取決於所選的渲染引擎
  • 原生引擎:處理簡單的 HTML 速度更快
  • IE 引擎:速度較慢,但與舊版內容相容性更好 基於服務的架構會增加開銷 更適合批量處理場景

記憶體管理最佳實務有哪些?

如何優化 IronPDF 的記憶體使用?

// Dispose of resources properly
using (var renderer = new ChromePdfRenderer())
{
    using (var pdf = renderer.RenderHtmlAsPdf(html))
    {
        pdf.SaveAs("output.pdf");
    }
}

// For large documents, use streaming
await pdf.Stream.CopyToAsync(fileStream);
// Dispose of resources properly
using (var renderer = new ChromePdfRenderer())
{
    using (var pdf = renderer.RenderHtmlAsPdf(html))
    {
        pdf.SaveAs("output.pdf");
    }
}

// For large documents, use streaming
await pdf.Stream.CopyToAsync(fileStream);
$vbLabelText   $csharpLabel

如需更多記憶體最佳化策略,請參閱IronPDF 的記憶體管理指南PDF 記憶體流範例

ActivePDF 的記憶體使用注意事項有哪些?

基於服務的架構隔離了記憶體使用

  • 轉換之間的自動清理
  • 在 Windows 中配置服務記憶體限制

ActivePDF 有哪些元件可用?

ActivePDF 還有哪些其他組件可用?

成分用途及特點
ActivePDF `DocConverter`可將 300 多種文件類型轉換為 PDF。具有監控資料夾、批次處理和企業自動化等功能。
ActivePDF `WebGrabber`支援將 HTML 轉換為 PDF,支援 URL、文件和 HTML 字串。包含原生和 IE 渲染引擎。
ActivePDF 工具包進階 PDF 操作,包括表單、註釋、安全性和底層 PDF 操作。
ActivePDF 伺服器適用於網路環境的伺服器端PDF列印解決方案。
ActivePDF Meridian網路PDF印表機,用於將文件列印為PDF格式,無需按使用者付費。
ActivePDF OCR利用光學字元辨識技術使掃描的PDF檔案可搜尋。
ActivePDF Xtractor從PDF文件中提取文字和圖像以進行資料處理。
ActivePDF 編輯器永久刪除PDF文件中的敏感資訊。

這些元件中有很多需要單獨的許可證,這會增加完整 PDF 功能的總成本。


授權和定價有何異同?

IronPDF 和 ActivePDF 的授權費用有何不同?

IronPDF 的許可選項和定價(截至 2025 年)是什麼?

-精簡版授權: $799 (1 位開發者,1 個地點,1 個專案)

  • Plus License: $1,199 (3 位開發者,3 個地點,3 個專案) -專業授權: $2,399 (10 位開發人員,10 個地點,10 個專案) -無限制許可:客製化定價(開發者/專案數量不限)
  • Iron Suite: $1,498 (包含 Iron Software 的全部 10 款產品)

所有許可證均包含24/5 工程支援終身許可證有效期以及擴展升級選項。

  • WebGrabber:起價 2,499 美元(一次性付款)
  • DocConverter:起價 2,999 美元(一次性付款) 工具包:起價 1500 美元以上(價格因功能而異) -支援:高級支援需額外付費 -多零件:成本迅速累積

總成本比較是多少?

小型開發團隊(3名開發人員)-成本比較?

IronPDF Plus 許可證:1499 美元(包含所有功能)

  • ActivePDF WebGrabber + DocConverter :最低 5,498 美元 使用 IronPDF 可節省:73%

企業團隊(10位開發人員)-成本比較?

IronPDF 專業版:2,999 美元(所有功能)

  • ActivePDF 套件(多組件):10,000 美元以上 使用 IronPDF 可節省 70% 以上

有關與其他競爭對手的詳細價格比較,請參閱IronPDF 與 AsposeIronPDF 與 iText以及IronPDF 與 Syncfusion 的比較。


哪個函式庫提供更好的開發者支援?

哪個函式庫提供更好的開發者支援?

IronPDF提供哪些支援?

所有許可證均包含每週 5 天、每天 24 小時的工程支援

有關支援最佳實踐,請參閱如何提出工程支援請求以及如何獲得最佳支援

ActivePDF提供哪些支援?

  • 支援門戶訪問
  • 知識庫文章
  • 社群論壇
  • 可提供額外付費的高級支援服務
  • 舊版的遺留文檔

結論:您應該選擇哪個PDF庫?

何時選擇鐵質PDF:

-現代 .NET 開發:全面支援 .NET 9/10 和跨平台部署 -快速開發:直覺的 API 只需極少的程式碼

  • Web 應用程式:使用 Chrome 引擎實現卓越的 HTML/CSS/JavaScript 渲染效果 -雲端部署:針對 Azure、AWS 和容器化環境進行了最佳化 -預算有限:入門價格低,但包含所有功能 -學習曲線:提供豐富的文件和範例,方便快速上手。

何時選擇ActivePDF:

-傳統系統:現有的 ActivePDF 基礎架構或 Windows Server 環境 -文件格式多樣:需要將 300 多種文件類型轉換為 PDF -企業工作流程:監控資料夾和自動化批次處理 -進階表格:複雜的 XFA 表格或特殊表格要求 -合規性要求:針對特定產業制定多個 PDF/A 級別

最終建議

對於大多數現代 .NET 開發場景而言,IronPDF 提供了功能效能和價值的最佳組合。 它直觀的 API、完整的文件和透明的定價使其成為希望快速且有效率地實現PDF 功能的團隊的理想選擇。

對於有特定文件格式支援、遺留系統整合或現有 ActivePDF 基礎架構要求的企業而言,ActivePDF 仍然是一個可行的選擇。 然而,模組化定價模式和複雜的安裝過程可能會為規模較小的團隊或新專案帶來挑戰。

準備好開始了嗎?

!{--01001100010010010100001001010010010000010101001001011001010111110101001101010100010001010101010 101000101111101010100010100100100100101000001010011000101111010000100100110001001111110000010010011000100111101010110101

請注意ActivePDF 是其各自所有者的註冊商標。 本網站與ActivePDF沒有任何關聯,也未獲得ActivePDF的認可或贊助。 所有產品名稱、標誌和品牌均為其各自所有者的財產。 文中比較僅供參考,反映的是撰寫本文時可公開取得的資訊。

常見問題解答

在.NET環境下產生PDF檔案時,IronPDF和ActivePDF相比如何?

IronPDF 採用基於 Chrome 的渲染引擎和直覺的 API,提供簡化的 PDF 產生方法,支援包括 .NET 9 和 10 在內的現代 .NET 版本。 ActivePDF 為企業級場景提供 WebGrabber 和 DocConverter 等模組化元件,但需要更多設定。

如何使用 C# 將 HTML 轉換為 PDF?

您可以使用 IronPDF 的RenderHtmlAsPdf方法快速將 HTML 字串轉換為 PDF。對於基於檔案的轉換,可以使用RenderHtmlFileAsPdf方法,這兩種方法都支援 CSS3 和 JavaScript,並且可以提供高保真度的轉換效果。

IronPDF的性能基準是什麼?

IronPDF 展示了快速的 HTML 轉 PDF 渲染功能,任務完成時間約為 125-835 毫秒,記憶體佔用低於 10MB。它還顯著提高了頁首和頁尾的記憶體和處理效率。

我可以使用 IronPDF 實現 PDF 大量處理自動化嗎?

是的,IronPDF 支援透過 async/await 模式進行批次處理,讓您可以使用RenderHtmlFileAsPdfAsync等方法同時處理多個 PDF 轉換。

IronPDF 如何處理 PDF 中的數位簽章?

IronPDF 提供了一個PdfSignature類,用於在 PDF 文件中添加數位簽章。它支援基於證書的簽名,並允許自訂簽名的外觀和元資料。

在.NET開發中使用IronPDF需要考慮哪些成本因素?

IronPDF 的單開發者許可證起價為 749 美元,包含所有功能。相比之下,ActivePDF 的組件是單獨定價的,因此功能相似但總成本更高。

IronPDF 如何確保跨平台相容性?

IronPDF 支援跨平台部署,包括 Windows、Linux、macOS 和 Docker 環境,使其適用於各種開發需求和基於雲端的應用程式。

如何使用 IronPDF 為 PDF 新增頁首和頁尾?

IronPDF 提供TextHeaderFooterHtmlHeaderFooter類,讓您新增包含簡單文字和複雜 HTML/CSS 佈局的頁首和頁尾。

IronPDF 與現代 .NET 版本的整合效果如何?

IronPDF 完全支援現代 .NET 版本,包括 .NET 9 和 10,以及 .NET Core、.NET Standard 和 .NET Framework 4.6.2+,確保廣泛的兼容性和未來導向的開發。

PDF轉換過程中是否支援執行JavaScript?

是的,IronPDF 會在渲染 PDF 之前完全執行 JavaScript,並可透過WaitFor.JavaScript()RenderDelay()來控制時間,從而確保完整且準確的轉換。

Jacob Mellor,Team Iron 首席技術官
首席技術長

Jacob Mellor 是 Iron Software 的首席技術官,也是一位富有遠見的工程師,率先開發了 C# PDF 技術。作為 Iron Software 核心程式碼庫的最初開發者,他自公司成立之初便參與塑造了其產品架構,並與執行長 Cameron Rimington 一起將其發展成為一家擁有 50 多名員工、服務於 NASA、特斯拉和全球政府機構的公司。

Jacob 於 1998 年至 2001 年在曼徹斯特大學獲得土木工程一級榮譽學士學位。 1999 年,他在倫敦創辦了自己的第一家軟體公司;2005 年,他創建了自己的第一個 .NET 元件。此後,他專注於解決微軟生態系統中的複雜問題。

他的旗艦產品 IronPDF 和 IronSuite .NET 庫在全球 NuGet 上的安裝量已超過 3000 萬次,其基礎程式碼持續為全球開發者工具提供支援。憑藉 25 年的商業經驗和 41 年的程式設計專長,Jacob 始終致力於推動企業級 C#、Java 和 Python PDF 技術的創新,同時指導下一代技術領導者。