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 | 主要優勢 |
|---|---|---|---|---|
| 核心架構 | 設計理念 | 功能齊全、對開發者友善的程式庫 | 模組化組件,面向企業 | IronPDF:更簡單的集成 |
| API複雜度 | Intuitive methods like `RenderHtmlAsPdf`() | 組件特定的 API | IronPDF:更少的程式碼行數 | |
| 學習曲線 | 通常需要1-2天。 | 通常需要 1-2 週。 | IronPDF:更快的普及 | |
| 平台支援 | 跨平台 | Windows、Linux、macOS、Docker | Windows Server 主要 | IronPDF:真正的跨平台 |
| .NET 版本 | .NET 10、9、8、7、6、5、Core、Framework 4.6.2+ | .NET Framework 4.5+、Core 1.0、Standard 1.0 | IronPDF:支援現代 .NET | |
| 雲端平台 | Azure、AWS、Google Cloud 最佳化 | 雲端支援有限 | IronPDF:雲端原生就緒 | |
| HTML 轉 PDF | 渲染引擎 | 鉻合金 V8 發動機 | 原生引擎和IE引擎 | IronPDF:現代渲染 |
| CSS3/HTML5 支持 | 全力支持 | 部分支持 | IronPDF:現代網路標準 | |
| JavaScript 執行 | 完全支援 JavaScript | JavaScript 支援有限 | IronPDF:動態內容 | |
| 網頁字體 | Google Fonts,系統字體 | 限系統字體 | IronPDF:排版靈活性 | |
| 文件轉換 | 支援的格式 | HTML、DOCX、圖片、RTF、MD | 300+ formats (`DocConverter`) | ActivePDF:更多格式 |
| DOCX 轉 PDF | Built-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 component | IronPDF:入場費降低70%。 |
| 團隊許可證 | Professional: $2,399 (10 devs) | 需要多個組件 | IronPDF:全方位 | |
| 套房選項 | Iron Suite: $1,498 (9 products) | 無套房選項 | IronPDF:超值 | |
| 支援 | 包含支持 | 是的,我們提供 24/5 全天候工程支援。 | 支援門戶訪問 | IronPDF:直接工程支持 |
| 回應時間 | 通常需要 24-48 小時。 | 因期而異 | IronPDF:可預測的服務等級協議 | |
| 最適合 | 用例 | 現代網路應用程序,快速開發 | 企業自動化、遺留系統 | 上下文相關 |
| 項目類型 | 軟體即服務 (SaaS)、Web 應用、微服務 | 文件管理、批量處理 | 根據要求 |
概述
IronPDF C# 庫是什麼?
Iron Software是一家市場領先的組件提供商,提供IronPDF ,用於完整的PDF 操作。 IronPDF 提供了一個全面的解決方案,可以從各種格式產生 PDF 文件,同時提供對文件屬性的完全程序化控制。 開發者喜歡 IronPDF,因為它具有一致、可靠的輸出和直覺的 API,只需要極少的程式碼,尤其是在使用現代 Web 標準和JavaScript 框架時。
IronPDF 支援C# 、 VB.NET 、 ASP.NET 、MVC、 .NET Core 、.NET 9 和 .NET 10。它可以在Windows 、 Linux 、 macOS 、 Docker 、 Azure 、 AWS和其他雲端平台上無縫運作。
什麼是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");輸出:一個專業的定價表,採用 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 進行大量額外工作。 球隊必須滿足以下條件之一:
- 維護用於產生 PDF 的平行簡化 CSS(雙重維護負擔)
- 將網頁使用者介面限制為 Bootstrap 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 在需要以下功能的企業環境中表現出色:
- 帶有監控資料夾的自動化批次處理
- 支援 300 多種檔案格式轉換(透過
DocConverter) - Windows Server 上的傳統系統集成
- 高級表單欄位操作和 XFA 表單支援
- 滿足歸檔要求的多種PDF/A 合規級別
儘管與IronPDF 的功能相比,ActivePDF 的成本和複雜性更高,但對於已經擁有 ActivePDF 基礎架構或特定企業工作流程需求的組織來說,ActivePDF 的模組化方法可能是有益的。
比較
ActivePDF 和 IronPDF 的功能有何不同?
哪個函式庫的HTML轉PDF轉換功能比較好?
IronPDF 使用完整的Chrome V8 渲染引擎,提供 98% 以上的瀏覽器保真度,並完全支援HTML5 、 CSS3 、 JavaScript和Web 字體。 ActivePDF WebGrabber提供原生引擎和 Internet Explorer 引擎,但JavaScript 執行和CSS3 支援有限。 Native Engine 不支援 CSS 樣式表,而 IE Engine 依賴已棄用的 Internet Explorer 11,它缺少CSS Grid和flexbox 佈局等現代 Web 標準。
這些庫在文檔格式支援方面有何區別?
IronPDF 主要支援常見格式( HTML 、 DOCX 、圖像、 RTF 、 Markdown ),而 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手動下載 IronPDF.dll
或者,下載 IronPDF.dll並使用手動安裝方法將其引用新增至專案。
安裝完成後,請透過新增以下內容來驗證存取權限:
using IronPdf;using IronPdf;IronPDF 支援.NET 9 和 10 ,以及所有現代 .NET 版本,包括Core 、 Standard和Framework 4.6.2+ 。 有關特定平台的安裝,請參閱Linux 、 macOS 、 Docker 、 Azure和AWS的指南。
如何安裝ActivePDF組件?
如何安裝ActivePDF WebGrabber ?
ActivePDF WebGrabber安裝過程較為複雜:
- 從 ActivePDF 網站下載安裝程序
- 向 ActivePDF 銷售部門申請許可證密鑰(提供評估密鑰)
- 以管理員權限執行安裝程序
- 在安裝過程中設定
WebGrabber服務 - 對於 Windows Server 2012 及更高版本,請為該服務建立一個專用使用者帳戶。
安裝完成後,新增WebGrabber引用: C:\Program Files\ActivePDF\WebGrabber\bin\APWebGrabber.Net45.dll
如何安裝ActivePDF DocConverter ?
DocConverter安裝方式類似:
- 下載
DocConverter安裝程序 - 使用管理員權限安裝
- 如果使用拖放轉換,請設定受監視的資料夾
- 設定組態管理員以進行批次處理
注意: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");
}IronPDF 方法的主要優勢: 轉換僅需 3 行程式碼。
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();
}這兩個庫是如何處理帶有 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");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");
}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();
}請注意,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");
}如何使用 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");
}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();
}對於更進階的 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");
}使用 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);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();
}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");
}對於使用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
};IronPDF 中預先定義的合併欄位包括:
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();
}注意: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");了解更多關於使用 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");如何確保符合 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);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");如何為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");有關進階簽名場景,請參閱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);
}如需更多批次技術,請參閱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效能和資源比較如何?
這些庫在效能方面有何區別?
基於基準測試和實際使用情況:
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);如需更多記憶體最佳化策略,請參閱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 與 Aspose 、 IronPDF 與 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
常見問題解答
在.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 提供TextHeaderFooter和HtmlHeaderFooter類,讓您新增包含簡單文字和複雜 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()來控制時間,從而確保完整且準確的轉換。






