IRONSOFTWAREHOME

Iron Suite for .NET

10個 .NET 程式庫。一個完整的文件套件。

IRONPDF
IRONWORD
IRONXL
IRONPPT
IRONOCR
IRONBARCODE
IRONQR
IRONPRINT
IRONZIP
IRONWEBSCRAPER
比較

SelectPdf與IronPDF:技術比較指南

Curtis Chau
Curtis Chau
Updated: 2026年5月8日

當.NET開發者評估用於文件生成和操作的PDF程式庫時,ZetPDF作為基於PDFSharp基礎的商業授權選項之一出現。 然而,其繼承的架構和限制為構建現代應用程式的團隊帶來了重要的考慮因素。 這項技術比較檢視了ZetPDF與IronPDF,以幫助架構師和開發者理解渲染技術、API設計和功能完整性方面的基本差異。

了解ZetPDF

ZetPDF是一個設計用於在C#應用程式中處理PDF檔案的商業授權PDF程式庫。 建基於廣泛使用的開源PDFSharp程式庫基礎上,它提供了一個穩固的解決方案,可以建立、修改和管理PDF文件,並提供商業支援和授權選項。

作為一個基於PDFSharp的程式庫,它繼承了其基礎的功能和限制:

  • PDFSharp基礎: 利用PDFSharp的核心能力與商業授權
  • 基於坐標的API: 需要用精確坐標手動定位元素
  • 商業支援: 通過商業授權提供優先支援
  • 靈活的授權: 提供開發者、專案或OEM授權模式
  • 繼承的限制: 繼承PDFSharp的限制,包括有限的HTML至PDF能力

PDFSharp的傳承

ZetPDF基於坐標的程式設計模型迫使開發人員手動定位每個元素:

// ZetPDF: 手動 positioning with coordinates
graphics.DrawString("Name:", font, brush, new XPoint(50, 100));
graphics.DrawString("John Doe", font, brush, new XPoint(100, 100));
graphics.DrawString("Address:", font, brush, new XPoint(50, 120));
graphics.DrawString("123 Main St", font, brush, new XPoint(100, 120));
// ... hundreds of lines for a simple form
C#

這種方法對於需要適應不同內容長度或需要響應設計模式的文件佈局來說可能變得複雜。

了解IronPDF

IronPDF採取了一種根本不同的方法,使用基於Chromium的技術來提供完整的網頁標準支持的HTML到PDF轉換。 而不是基於坐標的圖形程式設計,IronPDF允許開發人員使用熟悉的HTML和CSS進行文件建立。

主要特點包括:

  • Chromium渲染引擎: 使用現代瀏覽器技術進行準確的HTML/CSS渲染
  • 基於HTML/CSS的設計: 利用網頁開發技能進行文件佈局
  • 完整的JavaScript支持: 以ES2024 JavaScript渲染動態網頁內容
  • 自動佈局: 內容自然流動,無需手動坐標計算
  • 高級PDF功能: 內建支持水印、頁眉/頁腳、合併等

功能比較

下表基於其架構方法突出了ZetPDF和IronPDF之間的重要差異:

功能ZetPDFIronPDF
基於PDFSharp
HTML至PDF轉換有限的是 (完整的Chromium渲染)
商業授權是,永久性
開源基礎PDFSharp (MIT授權)基於Chromium
與PDFSharp的區別有限的完整的HTML至PDF,獨特的能力
簡單和易用性中等
支持PDF註釋
文字提取標準高級
支持水印

詳細的功能比較

功能ZetPDFIronPDF
內容建立
HTML到PDF有限的
URL到PDF有限的
CSS支持完整的CSS3
JavaScript完整的ES2024
版面
自動佈局
自動分頁
表格手動繪製HTML <table>
圖片手動放置<img> 標籤
PDF操作
頁眉/頁腳手動HTML/CSS
水印手動程式碼內建的
合併PDFs
分割PDFs有限的
數位簽名
PDF/A
開發
跨平台

API架構差異

ZetPDF和IronPDF之間的API模式揭示了關於PDF生成的不同設計理念。

ZetPDF HtmlToPdfConverter模式

該程式庫提供了一個HtmlToPdfConverter類進行HTML到PDF轉換:

// ZetPDF — download from zetpdf.com
using ZetPDF;
using System;

class Program
{
    static void Main()
    {
        var converter = new HtmlToPdfConverter();
        var htmlContent = "<html><body><h1>Hello World</h1></body></html>";
        converter.ConvertHtmlToPdf(htmlContent, "output.pdf");
        Console.WriteLine("PDF created successfully");
    }
}

ConvertHtmlToPdf方法採入HTML內容和一個輸出檔路徑,並直接將結果寫入磁碟。

IronPDF ChromePdfRenderer模式

IronPDF使用ChromePdfRenderer類與基於Chromium的渲染:

// NuGet: Install-Package IronPdf
using IronPdf;
using System;

class Program
{
    static void Main()
    {
        var renderer = new ChromePdfRenderer();
        var htmlContent = "<html><body><h1>Hello World</h1></body></html>";
        var pdf = renderer.RenderHtmlAsPdf(htmlContent);
        pdf.SaveAs("output.pdf");
        Console.WriteLine("PDF created successfully");
    }
}

ChromePdfRenderer返回一個PdfDocument物件,在保存之前提供額外的操作能力。 有關完整的HTML轉換指導,請參閱HTML到PDF教程

URL至PDF轉換

將即時網頁轉換為PDF文件展示了每個程式庫的網頁渲染方法能力。

ZetPDF實現

程式庫也通過其HtmlToPdfConverter類處理URL轉換:

// ZetPDF — download from zetpdf.com
using ZetPDF;
using System;

class Program
{
    static void Main()
    {
        var converter = new HtmlToPdfConverter();
        var url = "https://www.example.com";
        converter.ConvertUrlToPdf(url, "webpage.pdf");
        Console.WriteLine("PDF from URL created successfully");
    }
}

IronPDF實現

IronPDF提供專用的URL渲染與Chromium:

// NuGet: Install-Package IronPdf
using IronPdf;
using System;

class Program
{
    static void Main()
    {
        var renderer = new ChromePdfRenderer();
        var url = "https://www.example.com";
        var pdf = renderer.RenderUrlAsPdf(url);
        pdf.SaveAs("webpage.pdf");
        Console.WriteLine("PDF from URL created successfully");
    }
}

RenderUrlAsPdf方法利用Chromium的渲染引擎處理網頁,全面執行JavaScript,並支持現代CSS,生成的輸出與現代瀏覽器中使用者看到的效果相符。

PDF合併操作

組合多個PDF文件是組裝工作流的通用需求。

ZetPDF合併模式

程式庫提供了一個PdfMerger類來組合文件:

// ZetPDF — download from zetpdf.com
using ZetPDF;
using System;
using System.Collections.Generic;

class Program
{
    static void Main()
    {
        var merger = new PdfMerger();
        var files = new List<string> { "document1.pdf", "document2.pdf" };
        merger.MergeFiles(files, "merged.pdf");
        Console.WriteLine("PDFs merged successfully");
    }
}

MergeFiles方法接受一個檔路徑列表和一個輸出路徑,並將合併結果直接寫入磁碟。

IronPDF靜態合併模式

IronPDF提供一個靜態PdfDocument類上:

// NuGet: Install-Package IronPdf
using IronPdf;
using System;
using System.Collections.Generic;

class Program
{
    static void Main()
    {
        var pdfs = new List<PdfDocument>
        {
            PdfDocument.FromFile("document1.pdf"),
            PdfDocument.FromFile("document2.pdf")
        };
        var merged = PdfDocument.Merge(pdfs);
        merged.SaveAs("merged.pdf");
        Console.WriteLine("PDFs merged successfully");
    }
}

PdfDocument.Merge方法返回一個PdfDocument物件,允許在保存之前進行水印、安全設置或元資料修改等額外操作。

API對應參考

評估從ZetPDF轉向IronPDF的團隊將發現此對應圖有助於理解概念等價物:

ZetPDFIronPDF
new HtmlToPdfConverter()new ChromePdfRenderer()
converter.ConvertHtmlToPdf()renderer.RenderHtmlAsPdf()
converter.ConvertUrlToPdf()renderer.RenderUrlAsPdf()
new PdfMerger()PdfDocument.Merge()
merger.MergeFiles()PdfDocument.Merge(list)
new PdfDocument()new ChromePdfRenderer()
document.AddPage()自動的
XGraphics.FromPdfPage(page)不適用
graphics.DrawString()HTML 文字元素
graphics.DrawImage()<img> 標籤
graphics.DrawLine()CSS邊框
graphics.DrawRectangle()CSS border + div
new XFont()CSS font-family
XBrushes.BlackCSS color
document.Save()pdf.SaveAs()
PdfReader.Open()PdfDocument.FromFile()

坐標基於與HTML基於設計

ZetPDF和IronPDF根本的架構差異在於它們在文件佈局上的方法。

ZetPDF圖形程式設計

ZetPDF的PDFSharp基礎要求基於坐標的定位:

using ZetPdf;
using ZetPdf.Drawing;

var document = new PdfDocument();
var page = document.AddPage();
var graphics = XGraphics.FromPdfPage(page);
var titleFont = new XFont("Arial", 24, XFontStyle.Bold);
var bodyFont = new XFont("Arial", 12);

graphics.DrawString("Company Report", titleFont, XBrushes.Navy,
    new XPoint(50, 50));
graphics.DrawString("This is the introduction paragraph.", bodyFont, XBrushes.Black,
    new XPoint(50, 80));
graphics.DrawString("Generated: " + DateTime.Now.ToString(), bodyFont, XBrushes.Gray,
    new XPoint(50, 100));

document.Save("report.pdf");

這種方法需要建立字體物件、畫刷物件,以及指定每個元素的精確X,Y坐標。

IronPDF HTML/CSS設計

IronPDF使用熟悉的網頁技術:

using IronPdf;

var html = $@"
<html>
<head>
    <style>
        body {{font-family: Arial, sans-serif; padding: 50px;}}
        h1 {{color: navy;}}
        .date {{color: gray;}}
    </style>
</head>
<body>
    <h1>Company Report</h1>
    <p>This is the introduction paragraph.</p>
    <p class='date'>Generated: {DateTime.Now}</p>
</body>
</html>";

var renderer = new ChromePdfRenderer();
renderer.RenderingOptions.PaperSize = PdfPaperSize.A4;
var pdf = renderer.RenderHtmlAsPdf(html);
pdf.SaveAs("report.pdf");
C#

HTML自動處理佈局—CSS提供樣式,無需管理字體物件,內容自然地跨頁流動。

當團隊考慮從ZetPDF轉向IronPDF

在幾種情況下,開發團隊常常評估IronPDF作為ZetPDF的替代品:

現代網頁內容需求

構建從基於Web的模板、儀表板或報告生成PDF應用程式的團隊發現基於坐標的方法限制了他們。 IronPDF的Chromium引擎渲染現代CSS Grid、Flexbox以及JavaScript驅動的內容,這是基於坐標的程式庫無法完全支持的。

HTML/CSS開發技能

擁有強大網頁開發技能的團隊發現基於坐標的PDF生成的學習曲線陡峭。HTML和CSS是廣泛理解的技術,這使得IronPDF的方法對於開發者來說更容易,無需專業的PDF或圖形程式設計專業知識。

降低程式碼複雜性

基於坐標的API產生的冗長程式碼難以維護,當文件佈局發展時尤其如此。 一個簡單的報告可能在ZetPDF中需要數十個DrawString和坐標計算,而在IronPDF中只需幾行HTML/CSS。

自動分頁和佈局

程式庫需要手動跟蹤Y位置和當內容超過頁面邊界時的明確頁面建立。 IronPDF根據CSS規則和內容流動自動處理頁面分隔:

// IronPDF - automatic page breaks
var html = @"
<div>Page 1 content</div>
<div style='page-break-after: always;'></div>
<div>Page 2 content</div>";

var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf(html);
pdf.SaveAs("multipage.pdf");

高級PDF功能

IronPDF提供內建支持功能,這些功能需要使用基於坐標的方法進行手動實現或外部工具:

優勢與考慮事項

ZetPDF優勢

  • 商業支援: 通過商業授權提供優先支援,確保開發人員獲得及時協助
  • PDFSharp整合: 利用PDFSharp的核心能力,得到許多.NET開發人員的認可

ZetPDF考量因素

  • 繼承的限制: 因其基於PDFSharp,該程式庫繼承了底層框架的限制
  • 有限的區別: 相較於直接使用PDFSharp,商業授權提供的額外價值有限
  • 基於坐標的複雜性: 手動定位需求增加了動態文件程式碼的複雜性

IronPDF優勢

  • 完整的HTML至PDF解決方案: 全面HTML至PDF功能對於自動化網頁轉換至關重要
  • 增強的渲染能力: Chromium基於渲染直接影響輸出質量,提供更好的網頁內容處理
  • 高級功能: 包括PDF表單管理、動態水印及數位簽名等獨特功能超越了標準PDF操作
  • 積極開發: 定期更新以確保與現代.NET版本的相容性

.NET相容性和未來準備

這兩個程式庫都支持跨平台.NET開發。 IronPDF保持積極開發,並且定期更新以確保與.NET 8、.NET 9以及預計於2026年發布的.NET 10的相容性。該程式庫的HTML/CSS方法與現代網頁開發實踐一致,利用.NET開發者已經擁有的網頁技術技能。

結論

ZetPDF和IronPDF代表了.NET中PDF生成的不同方法。 ZetPDF,以PDFSharp為基礎的程式庫,為熟悉坐標圖形程式設計的開發者提供了可靠的解決方案。 其商業授權為投資PDFSharp生態系統的團隊提供了支持和可靠性。

IronPDF的基於Chromium的方法將PDF生成視為網頁渲染,使開發人員可以使用HTML、CSS和JavaScript,而不需要學習基於坐標的圖形API。自動佈局、分頁和現代網頁標準支持(CSS Grid、Flexbox、ES2024 JavaScript)顯著減少程式碼複雜性,同時產生出與現代瀏覽器渲染相匹配的輸出。

對於構建應用程式生成基於網頁的報告、儀表板或動態文件的團隊而言,IronPDF的方法自然符合現代開發實踐。 對於已有PDFSharp專業知識或特定需要對低級別PDF進行控制的團隊而言,ZetPDF商業產品提供基於熟悉的PDFSharp基礎的支持和授權選項。

最終的選擇取決於您團隊的需求:如果您的PDF源自網頁內容或您更喜歡使用HTML/CSS進行文件設計,IronPDF提供了顯著的生產力優勢。 如果您是在現有的PDFSharp技能基礎上開發或需要ZetPDF提供的特定授權模式,那麼這條路徑可能適合您的需求。

更多實施指引可查閱IronPDF文件教程,涉及具體用例和高級功能。

(PDFSharp 和 ZetPDF 是其各自所有者的註冊商標。 本網站與ZetPDF或empira Software GmbH無關或未由其贊助或認可。 所有產品名稱、商標和品牌均為其各自所有者的財產。 比較僅供資訊參考,反映撰寫時公開可用的資訊。)

Key in blue circle

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

Your trial license will be sent to your email address

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

bullet_checked無需信用卡或建立帳號無任何限制。100% 解鎖。無需信用卡。
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried IronPDF
獲取您的無義務諮詢
填寫以下表格或發送電子郵件至sales@ironsoftware.com
您的詳細資訊將始終保密。
被全球數百萬工程師信任
Iron Software的客戶標誌
立即獲取您的30天試用金鑰
無需信用卡或帳戶建立