在生產環境中測試,無水印。
在任何需要的地方都能運行。
獲得 30 天的全功能產品。
在幾分鐘內上手運行。
試用產品期間完全訪問我們的支援工程團隊
這篇文章由在 .NET 開發領域中備受讚譽的專家 Jeff Fritz 撰寫。
在這篇文章中,Jeff 評審和比較 IronPDF 庫與另外三個 C#.NET 的領先 PDF 庫:Aspose、SyncFusion 和 iTextPdf
我正在研究與三個商業開發者用PDF管理產品的整體開發者互動體驗,並將它們與IronPDF的體驗進行比較。 我們將在以下方面比較並評價每個產品:
探索和獲取體驗
授權透明度
相容性
入门体验
C# 開發人員使用 API 的便利性
文檔質量,包括代碼範例和教程
將 HTML 轉換為 PDF 的功能
CSS3 合規性
HTML 5 合規性
JavaScript 合規性
生成表單支持
技術支援
發布節奏和功能開發
我們將以工具的最終評分卡作為結束。
開發人員有眾多 PDF 產品可供選擇。 他們如何能夠區分這些產品並為他們的專案選擇合適的產品呢? C# 開發人員在研究軟體工具時主要會尋找三個地方:搜尋引擎、GitHub 和 NuGet。 我們將在私密的搜索引擎DuckDuckGo上搜索 "PDF Software C#",並在GitHub及NuGet.org上尋找這些PDF工具。 NuGet 是 .NET 的套件庫。
注意:我將每個服務的搜尋結果限制在前 100 個,無法在 DuckDuckGo 上找到 IronPDF 的 GitHub 儲存庫以及 iText 網站。 SyncFusion 沒有提供用於 PDF 創建範例的 GitHub 存儲庫。
每款產品從其網站獲取產品的方式各不相同。
IronPDF 在首頁提供清晰的下載按鈕
圖1 - IronPDF 下載發現
下載按鈕會引導至 NuGet.org 和標準的 .NET 套件安裝說明。
Aspose 在首頁設有點擊功能,需選擇語言後,系統將顯示該版本產品的詳細資訊及下載按鈕。
圖 2 - Aspose.PDF 語言選擇器
圖 3 - Aspose.PDF C# 下載發現
Aspose 然後會提示您下載這些工具,並提供包含 NuGet 指示和多段宣傳材料的頁面
圖 4 - Aspose 下載頁面
SyncFusion 將其 PDF 管理庫歸類於「文件處理 - PDF」。 他們的子站看起來如下所示:
圖 5 - SyncFusion PDF 探索
然後,您必須填寫一個表格以在他們的網站上創建帳戶,表格需要填寫電子郵件地址、電話號碼和公司名稱。 SyncFusion 透過簡訊驗證您的電子郵件,然後允許您下載其軟體的安裝程式。 您也可以從 NuGet 安裝試用封包,但他們說安裝程式提供「完整產品」。 在註冊SyncFusion's網站後的幾天內,我收到了兩封電子郵件和兩通電話,為我提供啟動幫助。 電子郵件和電話的語氣都很友好,然而,我覺得電話有些侵入性。
iTextPDF 明確表示有一個產品和一個鏈接到他們的產品:
圖 7 - iTextPDF 探索
下載頁面提供三個下載選項,並要求註冊時提供電話號碼、電子郵件、職稱和公司名稱。
圖 7 - iText 下載畫面
我發現 iText 的選擇量令人難以承受,不確定該下載什麼。 我選擇了iText 7,然後被引導到另一個畫面從九個PDF相關產品中選擇下載。 這次又讓我感到困惑,讓我不確定我項目需要哪些庫和工具。
我收到來自iText的後續電子郵件,其中包含他們客戶門戶的鏈接和一個生成的密碼。 我嘗試使用提供的憑證訪問他們的入口網站,但無法訪問該網站。
對於開發者下載的任何函式庫,其授權將決定他們是否以及如何在其專案中使用該產品。 更寬鬆的許可證將允許該工具與移動或桌面應用程序一起發行,而更具限制性的許可證可能會限制該工具僅在受保護的伺服器上運行。
IronPDF 在首頁提供了一個明確的按鈕,位於“Free NuGet Download”按鈕旁邊,連結至許可條款。 結果頁面清楚地顯示了涵蓋了多少開發人員以及該產品可用於多少個項目。 組織擁有辦公室的數量有限制。 將此軟體重新分發為SaaS產品或本機應用程式需要額外的授權費用。
Aspose 提供六種不同的授權模式,分為無支援、支援,或包含支援與諮詢的套裝。 我發現他們的選項相當令人困惑,因為還有限制可以用產品創建的專案類型、開發者授權人數,以及組織的規模。
包括支持的面向公共的網站專案:
Inclusion | IronPDF | Syncfusion | AsposePDF | iText |
---|---|---|---|---|
1 website, 1 developer, 1 location, Support | $749 | $2,495 | $5,394 | |
10 websites, 10 developers, 10 locations, Support | $1,999 | $13,990 | $28,771 | |
Unlimited websites, Support | $3,999 | N/A | $25,785+ (per year) |
圖 8 - Aspose 授權模式
SyncFusion 對其文件格式產品收取一次性費用,包括對所有 .NET 應用類型的支持。該費用按開發人員收取,並在合約的第二年提供費率優惠。 對組織規模或產品使用的項目數量沒有任何限制。 他們也為初創公司提供免費的社群授權。
圖 9 - SyncFusion 授權
iText 有多個開源產品,但他們讓人覺得需要購買許可證才能使用該產品。
圖 10 - iText 開源產品
選擇購買商業許可證的選項會進入一個沒有立即列出購買選項的畫面。 您必須完成一個配置工具,填寫有關您的位置、語言、使用量以及您希望使用的產品的信息。 該工具隨後會提供商業授權的報價。
圖11 - iText 授權配置工具
如果產品是開源的,我可以只使用該產品而不選擇任何商業支持選項嗎? 直到您點擊進入他們的iText 7 Community網站,才會發現它是以AGPL許可證覆蓋的,而這要求您必須釋出使用該庫所撰寫應用程式的源碼。 這是一個有趣的選擇,但可能會讓開發人員感到困惑。
針對每個產品的不同部署模型,每個網站上承諾的相容性有所不同。需要進行更多研究,以確定與不同主機提供商和像 Docker 這樣的託管工具的相容性。
COM | Yes | |||
.NET Framework | Yes | Yes | Yes | Yes |
.NET 5 | Yes | Yes | Yes | |
.NET 6 | Yes | Yes | Yes | |
.NET Standard | Yes | Yes | Yes | |
Xamarin | Yes | Yes | ||
MAUI | Yes | |||
Azure | Yes | |||
AWS | Yes | Yes | ||
Mac | Yes | |||
Linux | Yes | |||
Docker | Yes |
Aspose 是唯一聲稱可用於 COM 應用程式的產品,這通常是開發人員的遺留需求。 iText未在其網站上列出其支持的平台,並且對其NuGet包的掃描表明支持所指示的平台。 SyncFusion 列出了對多個使用者介面框架的支持,但未列出特定的運行時版本。 iText 是除了 IronPDF 之外唯一聲稱支持雲服務的產品,並在橫幅中突出顯示對 AWS 的支持。
圖 12 - AWS 上的 iText 支援
我查看了每個產品及其網站上列出的「快速入門」體驗。 這是「使用產品構建您的第一個應用程序」的指南,適用於這些產品中的每一個。
我能夠使用 NuGet 和一行程式碼安裝並開始使用 IronPDF 的範例版本。 非常方便,而且沒有使我的系統變得雜亂。
IronPDF 的 入門頁面上的範例可在使用 .NET 6 及更早版本的簡單控制台或原生應用中運行。 它創建並加載了一個新的 PDF,其中包含一個簡單的「Hello World」文本塊,完成了包含 5 行代碼的範例並寫出文件。
範例代碼清晰明瞭,且能很好地與 .NET 6 / C# 10 格式配合運作。 線上程式碼區塊有一個「複製到剪貼簿」按鈕,使其輕鬆執行。
該檔案寫入專案下的 bin/ 資料夾中,對於快速範例來說,這樣可行。 我希望能将其写在我刚写的代码文件旁边,因为有些人可能不知道去 bin/ 文件夹寻找内容。
我必須安裝一個217MB大小的大型下載才能在我的系統上開始使用Aspose庫。 這沒有安裝任何應用程式,只是將Aspose的函式庫放到磁碟上。
Aspose 的範例位於他們的文件中 "Get Started" 部分,使其有點難以找到。 Aspose 的 Hello World 範例 中的代碼範例包含了一些圍繞它的文字說明,解釋了代碼試圖達成的目的,並且與代碼中的註釋感覺有些重複。
Aspose 的範例無法按所寫的運作,需要改進。 在我對他們產品的評論中,我遇到了以下問題:
我必須下載一個 874MB 的大型檔案才能開始,而安裝過程需要我登錄到 Syncfusion 伺服器來提取和使用這些程式庫。 安裝程式創建了一個「控制面板」應用程式,使我能夠瀏覽磁碟上的多個示例。
圖 13 - SyncFusion 的控制面板應用程式
SyncFusion 的演示位於其產品頁面大約中間處,位於Syncfusion's PDF Framework for .NET,背景為藍色,上面有淺藍色文字。 根據Lighthouse,這樣的對比度較低,對某些使用者來說不易於使用。
我將 Syncfusion 程式碼粘貼到 Visual Studio,無法讓 Visual Studio 為示範程式碼中引用的物件生成適當的「using 語句」。 事實上,當我要求 Visual Studio 嘗試定位並生成 using 語句時,它指示我安裝一個競爭包:
圖 14 - Visual Studio 建議我安裝 iTextSharp 以使用 SyncFusion
SyncFusion 示例的代碼在屏幕上呈現時沒有任何作用。 範例代碼將 PDF 寫入 MemoryStream,一個在記憶體中管理文件內容的對象。 我修改了代碼以寫入磁碟上的檔案,並成功生成了一個包含「Hello World」的檔案。
iText 的示範代碼被寫在產品主頁中間的一個清晰的代碼編輯器內。 iText 7 Community 不同於其他示範,iText 包含了一個連結,用於查看此代碼生成的 PDF。
我被要求從他們的客戶門戶下載安裝包,並且在註冊後的一天,於早上五點收到一封包含註冊說明的電子郵件。 憑證無法使用,因此我改為下載並安裝了在NuGet上提供的社區包。
提供的 iText7 範例程式碼無法如預期運行。 該代碼也缺少了一些使用語句,但一旦添加,應用程序便生成了一個 PDF 文件並將其寫入到項目的 bin/ 資料夾中。
此審查元素調查開發人員與該庫的API和交互。 這些工具中的每一個都有多種方法可以創建和操作 PDF 文件。 讓我們來看看每一個。
該產品的文件將在長期內決定它在開發者中的成敗。 當他們深入探索並需要更高級的功能時,他們能多快找到相關資料,並且是否提供幫助教導這些概念的範例。
在這些產品中,我在它們的 API 文件中搜尋加入 PDF 數位簽章的功能。
API 文件清晰且組織良好,左側面板有目錄和即時篩選功能。 右上角的搜尋框還包含即時篩選功能,快速返回了多篇關於提供簽名功能的各種組件的文章。 API 網站具有亮色和暗色模式,這是開發人員偏好的不錯功能。
圖15 - IronPDF API簽名搜尋結果
PdfSignature
類別文件描述了該對象,但不包括任何示例代碼的鏈接。 我在 ironpdf.com 網站上搜尋「signature」,並找到參考 PdfSignature
物件的範例程式碼,可以在 IronPDF Digitally Sign a PDF Example 中找到。
當我搜索「Signature」時,Aspose API 文檔將我鏈接到他們的 PdfFileSignature 類別。 此頁面如同 IronPDF 的頁面一樣,顯示了PdfFileSignature
類的詳細資訊,但不包含任何演示連結或描述如何使用該類別。
我返回到 Aspose PDF for .NET 文檔 的基礎頁面並搜索簽名。 之後,我看到了一系列相關文章,並點擊進入了位於Aspose 的"在 PDF 文件中添加簽名"文章。
SyncFusion 的 PDF 文件格式產品的基本文檔頁面位於 Syncfusion PDF 文件格式概述,需要在他們的網站上點擊幾次才能找到。 我不用費太多力氣就能在文件的首頁找到簽名範例。
SyncFusion網站上沒有支持數位簽章功能的API文件。
iText 的 API 文件非常詳盡,並從每個發佈版本生成。 這是您在網路上其他庫中會看到的標準外觀和風格。 尋找簽名時發現了一些類別,並且這些特性有很好的描述,但同樣沒有樣本的連結。
我在iText網站上搜尋簽名範例,但未能找到,反而看到幾篇宣佈新合作關係的博客文章。
每個工具提供的 API 都非常詳細,每個工具透過各自的方法為開發人員提供充分的權限來創建和管理 PDF 文件的內容。 值得慶幸的是,所有框架都具有完整的自動完成提示,這些提示在您使用其工具時提供了出色的內嵌文檔,尤其是在像 Visual Studio 或 Visual Studio Code 這樣提供自動完成功能的現代代碼編輯器中。
IronPDF 的 API 透過簡化的指令如「RenderHtmlAsPdf」,讓非常困難和複雜的互動變得容易,但同時仍提供了對於文件內容創建和放置、安全性、元數據和表單的深入訪問。 作為開發者,這些 API「與我思考如何呈現內容的方式一致」。
IronPDF API 使用的名稱和術語顯示您正在渲染文件或構建文件。 某些設定中的時間屬性是表示毫秒的整數,我會更希望使用原生的 TimeSpan 類型。 最後,我希望能看到提供具有現代流暢配置 API 的設定和選項類型,如下所示:
var Renderer = new IronPdf.ChromePdfRenderer(options => {
RenderDelay = TimeSpan.FromSeconds(1)
});
var Renderer = new IronPdf.ChromePdfRenderer(options => {
RenderDelay = TimeSpan.FromSeconds(1)
});
IRON VB CONVERTER ERROR developers@ironsoftware.com
SyncFusion 的 API 很清晰,並提供非常詳細的控制,以便與其轉換工具進行互動。 這裡沒有捷徑,一切都是必需的,且您必須告訴它您正在使用哪些工具,沒有預設可用。 設定非常廣泛,包含對所有細節的精細控制,包括 WebKit 渲染器在磁碟上的位置。
此額外配置雖然在某些安裝中並不需要,但在過去曾導致人們遇到問題,SyncFusion 承諾未來版本中不會出現這種問題。
Aspose API 非常冗長,這讓我懷疑他們是否真正在努力提高開發者的生產力。 從網站加載文檔所需的配置量是驚人的,十行代碼,或兩倍於SyncFusion(五行)的代碼。
其中一個例子是,Aspose 沒有 API 允許您指定 URL 來抓取和轉換。
iText 的 API 與 Aspose 類似,非常冗長,允許直接與使用不同數據類型寫入文件進行交互,但如何創建文件的部分並不明確。 由於 API 非常清楚且文檔質量較低,使用 iText 工作至多是困難的。
接下來,我想測試每個工具在將HTML內容轉換為PDF時的渲染和速度能力。 我寫了一些程式碼,可以從Jeff 的 PDF 比較 GitHub 資源庫獲得,你可以查看以了解更多關於我如何執行每項測試的資訊。 我也在那裡存放了每個結果 PDF 的副本供您查看。 我將測試每個產品是否:
參考網站非常簡單,沒有CSS,只有文字、連結和圖片。
圖 16 - 靜態網頁測試的參考網站
這是簡單的三行程式碼即可執行,且效能在835毫秒時表現良好。 然而,當我打開 PDF 時,我發現渲染中沒有包含任何圖像,這是預設配置下的一個令人失望的結果。
在稍作探索後,我發現可以添加渲染延遲,使用這個配置,我能夠渲染一個包含正確圖片的PDF頁面。
在工具的測試版本中,生成的 PDF 會包含水印。 在完整授權版本中,此浮水印不存在。
圖 17 - IronPDF 靜態站點渲染
SyncFusion 是一次既好奇又令人困惑的旅程。他們的文件提到幾種不同的方式來渲染和傳遞 HTML 和 PDF,其版本號、框架各異,需要不同的代碼和配置,還需要安裝二進位工具才能正常運行。
與 IronPDF 示範一樣,SyncFusion 沒有渲染頁面的圖像,並且生成了一個邊距非常小的 PDF。
在工具的測試版本中,生成的 PDF 會包含水印。 在完整授權版本中,此浮水印不存在。
圖 18 - 靜态網站的 SyncFusion 渲染。
Aspose 提供了非常清晰的使用工具指南。 然而,根據他們網站上的將網站轉換為PDF的說明,他們存在一個重大錯誤,阻止了該功能的運行。 此外,他們的在線工具可將網站轉換為 PDF的功能已不再運作。
iText 的文檔不太容易找到,我們必須閱讀一本電子書才能獲得我們尋找的範例代碼來運行這個範例。 在不更改代碼、不需額外配置且僅使用四行代碼的情況下,我們生成了一個非常好看的 PDF,沒有浮水印且邊距良好。
圖 19 - iText 靜態網站的渲染。
IronPDF | 835ms |
SyncFusion | 1799ms |
Aspose | N/A |
iText | 2975ms |
在此測試中,我們使用的是 ESPN.com,一個擁有大量 CSS、圖片和 JavaScript 的運動網站。 由於 Aspose 未通過簡單測試,我們將在後續跳過它們。 我們將使用與上次示範相同的程式碼來建立這些擷取,只需更換網站地址即可。
作為參考,以下是在此測試時 ESPN 的外觀:
圖20 - 瀏覽器中完整呈現的ESPN.com
螢幕上方的分數和中間的比賽狀態報告是使用 JavaScript 放置的,所有定位和顏色都由 CSS3 處理。
IronPDF 的渲染能夠忠實地複製和加載動態內容,然而,似乎頁面是為行動裝置渲染的,內容元素被分割成單獨的片段並排成瓷磚狀。
圖 21 - IronPDF 渲染的 ESPN
SyncFusion 執行了類似的「行動風格」渲染,內容垂直並排。 然而,我們已經丟失了由ESPN網站動態加載的幾張圖片,並且一些字體格式也丟失了:
圖 22 - SyncFusion 渲染 ESPN
在此測試中,iText 無法運行並拋出 NullReferenceException,阻止它嘗試渲染網站。
IronPDF | 835ms |
SyncFusion | 1799ms |
Aspose | N/A |
iText | 2975ms |
最終測試是根據網站生成一個帶有表單輸入字段的 PDF。我寫的簡單電子報註冊表單可在 GitHub 存儲庫中找到,並在 Firefox 中使用 Bootstrap 5 呈現,如下所示:
圖 23 - Firefox 中的表單網站
注意:州是一個下拉選單,電話字段是一個電話字段,電子郵件是一個電子郵件字段,鞋碼是一個數字字段。
Iron在此測試中表現出色,渲染速度很快,顯示在類似的移動友好佈局中,這可以從右上角的漢堡菜單按鈕看出。 測試版本中的浮水印很煩人,但是在完全授權版本中會被移除。
所有文字框欄位都被呈現為我可以互動的 PDF 表單欄位,除了最後的單選按鈕和複選框。 這些文字框在內容驗證或內容強制方面不像在瀏覽器中那樣具備特定功能。
圖24 - IronPDF表單渲染
SyncFusion 顯示了完整的桌面版網站,因為沒有漢堡菜單按鈕。 渲染的表單元素顯示為螢幕上的方框、按鈕和框,但其中沒有一個是標準的 PDF 資料輸入欄位。 標頭和頁腳上的連結,儘管被浮水印遮住,仍然可以點擊。
圖 25 - 由 SyncFusion 渲染的表單網站
iText 在渲染內容方面輕鬆成為這三個框架中最快的。 然而,速度是有代價的。他們的渲染確實提供了可以點擊導航的錨點標籤,但無法到達原始網站。Bootstrap 的所有格式都遺失了,所有的表單欄位都被渲染為簡單的框。
圖26 - 由 iText 渲染的表單網站
IronPDF | 835ms |
SyncFusion | 1799ms |
Aspose | N/A |
iText | 2975ms |
這些框架中的每一個都有單獨的支援功能和發佈節奏。 為了一個可行的、正在開發和成長的框架,支持更多的PDF標準,我們希望看到在線支持並有定期的發布時間表。
從NuGet 網站上看來,IronPDF 大約每2至4週會發布一次版本。 提供即時聊天和電子郵件支援選項。 期待看到一個線上論壇或 Discord / Slack 伺服器,以便與支援人員和其他 IronPDF 社區成員交流。
根據NuGet,他們每週會發布一次 PDF 庫的更新。 SyncFusion 有在線論壇和在線支援工單系統。 SyncFusion 沒有提供線上客服選項。
根據NuGet,Aspose.PDF每月發布一次。 他們提供免費的客服、付費的客服和付費的諮詢服務。 我沒有看到任何即時互動或社群互動可用。
NuGet 報告指出 iText 每 2-3 個月更新一次他們的套件。 他們唯一的支援途徑是透過線上JIRA問題追蹤系統和「聯絡我們」表單。 沒有可用的即時互動或託管論壇。
從此文件的每個部分中,我對產品進行了排名,四分為最高排名。
Discovery | 3 | 4 | 2 | 1 |
Acquisition | 4 | 3 | 2 | 1 |
Licensing | 3 | 2 | 4 | 1 |
Compatibility | 4 | 1 | 2 | 3 |
Getting Started | 4 | 1 | 2 | 3 |
API | 4 | 2 | 3 | 1 |
Documentation | 4 | 4 | 3 | 2 |
Render Websites | 4 | 0 | 3 | 2 |
Support | 3 | 4 | 2 | 1 |
Total (higher is better) | 33 | 21 | 23 | 15 |
筆記: