在實際環境中測試
在生產環境中測試無浮水印。
在任何需要的地方都能運作。
本文由在 .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 的套件庫。
產品 | DuckDuckGo | GitHub | NuGet |
---|---|---|---|
IronPDF | 未找到 | ||
Aspose | 2 | ||
SyncFusion | 9 | 不適用 | |
iTextPDF | 未找到 | 0 |
注意: 我將搜尋結果限制為每個服務的前 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 的網站後的幾天內,我收到了兩封電子郵件和兩通電話,提供協助入門。 電子郵件和電話的語氣都很友好,然而,我覺得電話有些侵入性。
iTextPDF 清楚地表明其產品及其產品鏈接:
圖 7 - iTextPDF 探索
下載頁面提供三個下載選項,並要求註冊時提供電話號碼、電子郵件、職稱和公司名稱。
圖 7 - iText 下載畫面
我發現來自iText的選擇多得讓人不知所措,不確定該下載什麼。 我選擇了iText 7,然後被引導到另一個畫面從九個PDF相關產品中選擇下載。 這次又讓我感到困惑,讓我不確定我項目需要哪些庫和工具。
我收到來自iText的後續電子郵件,內含他們客戶門戶的連結和生成的密碼。 我嘗試使用提供的憑證訪問他們的入口網站,但無法訪問該網站。
對於開發者下載的任何函式庫,其授權將決定他們是否以及如何在其專案中使用該產品。 更寬鬆的許可證將允許該工具與移動或桌面應用程序一起發行,而更具限制性的許可證可能會限制該工具僅在受保護的伺服器上運行。
IronPDF 在主頁上提供了一個清晰的按鈕,緊鄰 'Free NuGet Download' 按鈕,連結至授權條款。 結果頁面清楚地顯示了涵蓋了多少開發人員以及該產品可用於多少個項目。 組織擁有辦公室的數量有限制。 將此軟體重新分發為SaaS產品或本機應用程式需要額外的授權費用。
Aspose 擁有提供六種不同的授權模式,包裝不含支援、包含支援,或包含支援和諮詢。 我發現他們的選項相當令人困惑,因為還有限制可以用產品創建的專案類型、開發者授權人數,以及組織的規模。
包括支持的面向公共的網站專案:
包含 | IronPDF | Syncfusion | AsposePDF | iText |
---|---|---|---|---|
個網站,1 位開發者,1 個地點,支持 | `$Lite License` | ,495 | ,394 | |
0 個網站,10 名開發人員,10 個地點, 支援 | `$ProfessionalLicense` | ,990 | ,771 | |
無限制網站, 支援 | `$Unlimited License` | 不適用 | ,785+ (每年) |
圖 8 - Aspose 授權模式
SyncFusion 的檔案格式產品收取一次性費用,該費用涵蓋所有 .NET 應用類型的支持。費用按每位開發人員計算,合同的第二年有費率減少。 對組織規模或產品使用的項目數量沒有任何限制。 他們也有一個免費的初創階段公司可獲得社群授權.
圖 9 - SyncFusion 授權
iText 有幾個開源的產品,但他們讓你覺得需要購買許可證才能使用該產品。
圖 10 - iText 開源產品
選擇購買商業許可證的選項會進入一個沒有立即列出購買選項的畫面。 您必須完成一個配置工具,填寫有關您的位置、語言、使用量以及您希望使用的產品的信息。 該工具隨後會提供商業授權的報價。
圖11 - iText 授權配置工具
如果產品是開源的,我可以只使用該產品而不選擇任何商業支持選項嗎? 在您點擊進入他們的頁面之前並不清楚iText 7 社群網站並發現它是基於 AGPL 授權,這要求您釋出使用其庫所編寫的應用程式的源代碼。 這是一個有趣的選擇,但可能會讓開發人員感到困惑。
針對每個產品的不同部署模型,每個網站上承諾的相容性有所不同。需要進行更多研究,以確定與不同主機提供商和像 Docker 這樣的託管工具的相容性。
環境 | IronPDF | Aspose | SyncFusion | iText |
---|---|---|---|---|
COM | 是的 | |||
.NET框架 | 是的 | 是的 | 是的 | 是的 |
.NET 5 | 是的 | 是的 | 是的 | |
.NET 6 | 是的 | 是的 | 是的 | |
.NET 標準 | 是的 | 是的 | 是的 | |
Xamarin | 是的 | 是的 | ||
MAUI | 是的 | |||
Azure | 是的 | |||
AWS | 是的 | 是的 | ||
麦金塔 | 是的 | |||
Linux | 是的 | |||
Docker | 是的 |
Aspose 是唯一一款聲稱可與 COM 應用程式配合使用的產品,通常是開發人員的舊有需求。 iText 並未在其網站上列出支持的平台,而對其 NuGet 套件的掃描顯示支持所示的平台。 SyncFusion 列出支持多個用戶介面框架,但未指定特定的運行時間版本。 除了IronPDF之外,iText是唯一宣稱支持雲服務的產品,並且有一個旗幟強調對AWS的支持。
圖 12 - AWS 上的 iText 支援
我查看了每個產品及其網站上列出的「快速入門」體驗。 這是「使用產品構建您的第一個應用程序」的指南,適用於這些產品中的每一個。
我能夠使用 NuGet 和一行程式碼安裝並開始使用 IronPDF 的範例版本。 非常方便,而且沒有使我的系統變得雜亂。
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 的 PDF 框架 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 數位簽署 PDF 範例.
當我搜索「Signature」時,Aspose API 文檔將我鏈接到他們的 PdfFileSignature 類別。 該頁面與IronPDF的頁面類似,顯示了PdfFileSignature
類的詳細資訊,但不包含任何展示連結或描述如何使用該類。
我返回了 Aspose 文件基礎頁面在Aspose PDF for .NET 文件並搜索簽名。 接著,我看到了一份相關文章的清單,並點擊進入「在 PDF 文件中添加簽名」文章。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 | 35ms |
SyncFusion | 799ms |
Aspose | 不適用 |
iText | 975ms |
在此測試中,我們使用的是 ESPN.com,一個擁有大量 CSS、圖片和 JavaScript 的運動網站。 由於 Aspose 未通過簡單測試,我們將在後續跳過它們。 我們將使用與上次示範相同的程式碼來建立這些擷取,只需更換網站地址即可。
作為參考,以下是在此測試時 ESPN 的外觀:
圖20 - 瀏覽器中完整呈現的ESPN.com
螢幕上方的分數和中間的比賽狀態報告是使用 JavaScript 放置的,所有定位和顏色都由 CSS3 處理。
IronPDF 的渲染能夠忠實地複製和加載動態內容,然而,似乎頁面是為行動裝置渲染的,內容元素被分割成單獨的片段並排成瓷磚狀。
圖 21 - IronPDF 渲染的 ESPN
SyncFusion 執行了類似的「行動風格」渲染,內容垂直並排。 然而,我們已經丟失了由ESPN網站動態加載的幾張圖片,並且一些字體格式也丟失了:
圖 22 - SyncFusion 渲染 ESPN
在此測試中,iText 無法運行並拋出 NullReferenceException,阻止它嘗試渲染網站。
使用的工具 | 速度以毫秒計算(越低越好) |
---|---|
IronPDF | 35ms |
SyncFusion | 799ms |
Aspose | 不適用 |
iText | 975ms |
最終測試是根據網站生成一個帶有表單輸入字段的 PDF。我寫的簡單電子報註冊表單可在 GitHub 存儲庫中找到,並在 Firefox 中使用 Bootstrap 5 呈現,如下所示:
圖 23 - Firefox 中的表單網站
注意:州是一個下拉選單,電話字段是一個電話字段,電子郵件是一個電子郵件字段,鞋碼是一個數字字段。
Iron在此測試中表現出色,渲染速度很快,顯示在類似的移動友好佈局中,這可以從右上角的漢堡菜單按鈕看出。 測試版本中的浮水印很煩人,但是在完全授權版本中會被移除。
所有文字框欄位都被呈現為我可以互動的 PDF 表單欄位,除了最後的單選按鈕和複選框。 這些文字框在內容驗證或內容強制方面不像在瀏覽器中那樣具備特定功能。
圖24 - IronPDF表單渲染
SyncFusion 顯示了完整的桌面版網站,因為沒有漢堡菜單按鈕。 渲染的表單元素顯示為螢幕上的方框、按鈕和框,但其中沒有一個是標準的 PDF 資料輸入欄位。 標頭和頁腳上的連結,儘管被浮水印遮住,仍然可以點擊。
圖 25 - 由 SyncFusion 渲染的表單網站
iText 在渲染內容方面輕鬆成為這三個框架中最快的。 然而,速度是有代價的。他們的渲染確實提供了可以點擊導航的錨點標籤,但無法到達原始網站。Bootstrap 的所有格式都遺失了,所有的表單欄位都被渲染為簡單的框。
圖26 - 由 iText 渲染的表單網站
使用的工具 | 速度以毫秒計算(越低越好) |
---|---|
IronPDF | 35ms |
SyncFusion | 799ms |
Aspose | 不適用 |
iText | 975ms |
這些框架中的每一個都有單獨的支援功能和發佈節奏。 為了一個可行的、正在開發和成長的框架,支持更多的PDF標準,我們希望看到在線支持並有定期的發布時間表。
從NuGet網站看來 IronPDF 每 2-4 週會發佈一次新版。 提供即時聊天和電子郵件支援選項。 期待看到一個線上論壇或 Discord / Slack 伺服器,以便與支援人員和其他 IronPDF 社區成員交流。
根據NuGet他們每週發布一次 PDF 庫的更新。 SyncFusion 有在線論壇和在線支援工單系統。 SyncFusion 沒有提供線上客服選項。
根據NuGet,Aspose.PDF 每月發行一次。 他們提供免費的客服、付費的客服和付費的諮詢服務。 我沒有看到任何即時互動或社群互動可用。
NuGet報導指出,iText 每 2-3 個月更新一次套件。 他們唯一的支援途徑是透過線上JIRA問題追蹤系統和「聯絡我們」表單。 沒有可用的即時互動或託管論壇。
從此文件的每個部分中,我對產品進行了排名,四分為最高排名。
類別 | IronPDF | Aspose | SyncFusion | iText |
---|---|---|---|---|
發現 | ||||
獲取 | ||||
授權 | ||||
相容性 | ||||
入門 | ||||
API | ||||
文件資料 | ||||
渲染網站 | ||||
支援 | ||||
總計 (越高越好) | 3 | 1 | 3 | 5 |
筆記: