產品比較 A Comparison between IronPDF and PDFNet Curtis Chau 更新:2025年10月26日 下載 IronPDF NuGet 下載 DLL 下載 Windows 安裝程式 開始免費試用 法學碩士副本 法學碩士副本 將頁面複製為 Markdown 格式,用於 LLMs 在 ChatGPT 中打開 請向 ChatGPT 諮詢此頁面 在雙子座打開 請向 Gemini 詢問此頁面 在 Grok 中打開 向 Grok 詢問此頁面 打開困惑 向 Perplexity 詢問有關此頁面的信息 分享 在 Facebook 上分享 分享到 X(Twitter) 在 LinkedIn 上分享 複製連結 電子郵件文章 1. 引言 正在尋找適用於 .NET Framework 的完美 PDF 工具? 在本文中,我們將探討如何在 C#(最受歡迎的程式語言之一)中處理 PDF 檔案。 我們將討論兩款業界領先的基於 .NET Framework 的 C# PDF 工具,並使用程式碼範例根據它們的效能和功能對它們進行比較。 最後,我們將仔細研究他們的許可詳情,並學習如何取得許可證金鑰。 這兩個PDF庫分別是: PDFNet IronPDF 2. IronPDF IronPDF 是由 Iron Software 開發的 C# .NET 程式庫,旨在透過一個程式庫解決 C# .NET 開發人員的所有 PDF 問題。 IronPDF 由 Chromium 引擎驅動,具有各種實用且強大的功能,例如將 HTML5、JavaScript、CSS 和圖像檔案轉換為 PDF,建立自訂頁首和頁腳,以及精確地顯示 PDF,就像它們在瀏覽器中顯示的那樣。 IronPDF 讓您可以從 PDF 檔案讀取數據,並自動插入您的 .NET 應用程式和資料儲存系統。 您可以將舊的 PDF 文件儲存中的內容匯入、移動和索引到您的文件管理和業務應用程式中。 2.1 IronPDF 功能 2.1.1. PDF轉換 此功能可讓您從各種格式(例如 HTML、MVC 視圖、Web 表單、HTML 字串和 URL)產生 PDF 檔案。 2.1.2. 擷取PDF內容 在許多情況下,您可以輕鬆地從 PDF 中提取嵌入文字。 但是,如果上述方法無效,則您的文字很可能嵌入在圖像中。 若要掃描文件以取得可視文字(而不是純文字),請使用IronOCR庫。 2.1.3 頁首和頁尾 建立 PDF 檔案時可以新增頁首和頁尾,也可以加入現有的 PDF 檔案中。 使用"列印選項"屬性,您可以為文件的每個頁面建立頁首和頁尾。 這些參數在 ChromePdfRenderer 物件中可用。 此範例在 .NET Core 控制台應用程式中運行。 2.1.4. PDF影像處理 這使用戶能夠從PDF中生成圖像,也能從照片生成PDF。它支援圖像提取、各種圖像擴展和PDF列印。 2.1.5. PDF 文件 I/O IronPDF 還包括 128 位元 PDF 加密、密碼保護的 PDF 鎖定和 PDF 數位簽章。 2.1.6. PDF 編輯 IronPDF 工具可讓您為 PDF 文件添加浮水印、新增頁面、刪除頁面、背景、前景等等。 2.1.7. 相容性 IronPDF 支援幾乎所有與 C# 相容的作業系統和框架,例如: Windows .NET Core 2.1、3.0、3.1、.NET 6 和 5 符合 .NET Standard 2.0 通用相容性要求 Azure AWS Docker Linux 3. PDFNet PDFTron 的 PDFNet .NET SDK 為 Web、行動裝置、桌面或伺服器上的任何框架或應用程式帶來精確的 PDF 處理、註釋、編輯和建立功能。 它利用您的基礎架構管理整個文件和資訊管理流程,無需依賴第三方伺服器。 PDFTron 的 Web 平台附帶一個支援該平台的 JS 版本,以及所有 PDF SDK 的演示許可證金鑰。 PDFNet 最顯著的優勢之一是它真正具有跨平台性,使用戶能夠輕鬆地將 PDF 相容性和相關的業務功能添加到其工作流程和應用程式中,跨越許多不同的行動和桌面環境,同時幾乎使用相同的介面。 3.1 PDFNet SDK 功能 3.1.1. 相容性 PDFNet SDK 與許多平台和框架相容。 為確保平台一致性,JavaScript API 的使用方式與 PDFNet API 相同。 該 SDK 還提供了 Node.js 和 Electron 版本。 此軟體包需要非託管的附加二進位。 3.1.2. 編輯與檢視 為線上、行動和桌面平台上的使用者帶來安全、可擴展、高保真的 PDF 閱讀和編輯功能。 3.1.3. 簽署 建立自訂簽署流程。 經數位簽署的文件可以進行認證、驗證和密封。 3.1.4. 真實編輯 從文件中刪除敏感數據,例如個人資訊或個人健康資訊,同時保持文件可搜尋性。 3.1.5. 頁面操作 頁面可以新增、刪除或重新排列。 文件可以進行彙編、合併或分割為多個部分。 在同一閱讀器中同時查看多個文檔,或並排查看多個文檔。 4. 在 Visual Studio 中建立新項目 在本文中,我們將使用控制台應用程式產生 PDF 文件。 開啟 Visual Studio 軟體,然後前往"檔案"選單。 選擇"新建專案",然後選擇控制台應用程式。 在對應的文字方塊中輸入項目名稱並選擇路徑。 然後,點擊創建按鈕。 選擇所需的 .NET 框架,如下圖所示: Visual Studio 專案現在將產生控制台應用程式的結構。 完成後,它將打開Program.cs文件,您可以在其中編寫和執行原始程式碼。 現在我們可以添加庫並測試程式了。 5. 安裝 IronPDF 庫 IronPDF 庫可以透過四種不同的方式下載和安裝。 這些都是: 使用 Visual Studio NuGet 套件管理器 使用 Visual Studio 命令列。 從NuGet Gallery IronPDF 套件直接下載。 從IronPDF 下載頁面直接下載。 5.1 使用 Visual Studio NuGet 套件管理器 Visual Studio 軟體提供了 NuGet 套件管理器選項,可以直接將套件安裝到解決方案中。 下面這張截圖展示如何開啟 NuGet 套件管理器。 開啟程式包管理器圖形使用者介面後,按一下"瀏覽"標籤並蒐尋"IronPDF:"。 在上圖中,我們可以看到搜尋結果的相關軟體包清單。 選擇 IronPDF 選項並將軟體包安裝到我們的解決方案中。 5.2 使用 Visual Studio 命令列 在 Visual Studio 功能表中,前往"工具">"NuGet 套件管理器">"套件管理器控制台"。 在軟體包管理器控制台標籤中輸入以下代碼: Install-Package IronPdf IronPDF 軟體包現在將安裝到專案中。 5.3 從 NuGet 網頁直接下載 第三種方法是直接從NuGet Gallery IronPDF Package下載 NuGet 套件。 從右側選單中選擇下載套件選項。 雙擊下載的軟體包; 它會自動安裝。 接下來,重新載入解決方案,並在專案中開始使用它。 5.4 從 IronPDF 網頁直接下載 直接從IronPDF 下載頁面下載最新軟體包。 下載完成後,請按照以下步驟將軟體包新增至專案。 在解決方案視窗中右鍵點選項目。 然後,選擇參考選項並瀏覽下載的參考檔案的位置。 接下來,按一下"確定"以新增引用。 6. 安裝 PDFNet SDK PDFNet SDK 可以透過四種不同的方式下載和安裝。 使用 Visual Studio NuGet 套件管理器。 使用 Visual Studio 命令列。 從NuGet Gallery PDFNet 套件直接下載。 使用 PDFNetLoader.dll 6.1. 使用 Visual Studio NuGet 套件管理器 如上所述,在 Visual Studio 中開啟工具選單,然後開啟 NuGet 套件管理員。 將出現一個清單-點選"管理解決方案的 NuGet 套件"。 將出現一個有搜尋欄的視窗。 搜尋 PDFNet 並將其安裝到專案中。 6.2. 使用 Visual Studio 命令列 在 Visual Studio 功能表中,前往"工具">"NuGet 套件管理器">"套件管理器控制台"。 在軟體包管理器控制台標籤中輸入以下代碼: Install-Package PDFNet -Version 9.2.0 6.3. 從 NuGet 網頁直接下載 第三種方法是直接從NuGet Gallery PDFNet Package下載 NuGet 套件。 從右側選單中選擇下載套件選項。 雙擊下載的軟體包開始安裝程序。 6.4. 使用 PDFNetLoader.dll 您也可以使用 PDFNetLoader.dll 檔案安裝 PDFNet API。您可以從GitHub Releases 下載 PDFNetLoader.dll 檔案。 下載軟體包,將其放入專案的 bin 資料夾中,然後運行它。 在 Visual Studio 專案中,新增 PDFNetLoader.dll 作為參考。 Bootstrap 與 CSS 框架渲染 現代網頁應用程式大量依賴 Bootstrap 和 CSS 框架來實現一致、響應式的設計。 從網頁內容產生 PDF 時,無需修改即可準確渲染這些框架的能力對於保持設計一致性和減少開發工作量至關重要。 IronPDF:完全支援 Bootstrap 框架 Bootstrap 5:完整的 Flexbox 佈局系統、CSS Grid、實用類別以及所有元件庫 Bootstrap 4:完整的卡片元件、導航、彈性實用程式和響應式設計 Tailwind CSS:所有實用優先的類別都能以瀏覽器精確度渲染。 -基礎:完整的網格系統和組件支持 現代CSS3: Flexbox、CSS Grid、自訂屬性、動畫、轉換與變換 實際驗證:IronPDF 能夠以像素級的保真度渲染Bootstrap 主頁和所有官方範例。 程式碼範例:學習管理系統儀錶板 using IronPdf; // Set your IronPDF license key IronPdf.License.LicenseKey = "License-Key goes here"; var renderer = new ChromePdfRenderer(); string bootstrapLMS = @" <!DOCTYPE html> <html> <head> <link href='https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/css/bootstrap.min.css' rel='stylesheet'> </head> <body> <div class='container-fluid py-4'> <div class='d-flex justify-content-between align-items-center mb-4'> <div> <h1>Student Learning Dashboard</h1> <p class='text-muted mb-0'>Spring Semester 2025</p> </div> <span class='badge bg-success fs-5'>92% Overall Progress</span> </div> <div class='row g-4 mb-4'> <div class='col-md-3'> <div class='card text-center shadow-sm border-primary'> <div class='card-body'> <div class='text-primary mb-2' style='font-size: 2rem;'>📚</div> <h3>6/8</h3> <p class='text-muted mb-0'>Courses Completed</p> </div> </div> </div> <div class='col-md-3'> <div class='card text-center shadow-sm border-success'> <div class='card-body'> <div class='text-success mb-2' style='font-size: 2rem;'>🎯</div> <h3>24/28</h3> <p class='text-muted mb-0'>Assignments Submitted</p> </div> </div> </div> <div class='col-md-3'> <div class='card text-center shadow-sm border-warning'> <div class='card-body'> <div class='text-warning mb-2' style='font-size: 2rem;'>⏱️</div> <h3>48hrs</h3> <p class='text-muted mb-0'>Study Time This Week</p> </div> </div> </div> <div class='col-md-3'> <div class='card text-center shadow-sm border-info'> <div class='card-body'> <div class='text-info mb-2' style='font-size: 2rem;'>⭐</div> <h3>A- Average</h3> <p class='text-muted mb-0'>Current GPA: 3.7</p> </div> </div> </div> </div> <div class='row g-4'> <div class='col-md-8'> <div class='card shadow-sm'> <div class='card-header bg-primary text-white'> <h5>Current Courses</h5> </div> <div class='card-body p-0'> <div class='list-group list-group-flush'> <div class='list-group-item'> <div class='d-flex justify-content-between align-items-center mb-2'> <div> <h6>Advanced Web Development</h6> <small class='text-muted'>Prof. Johnson | Mondays & Wednesdays, 2:00 PM</small> </div> <span class='badge bg-success'>Grade: A</span> </div> <div class='progress' style='height: 6px;'> <div class='progress-bar bg-success' style='width: 95%'></div> </div> <small class='text-muted'>95% Complete | Final Project Due: May 15</small> </div> <div class='list-group-item'> <div class='d-flex justify-content-between align-items-center mb-2'> <div> <h6>Database Systems</h6> <small class='text-muted'>Prof. Chen | Tuesdays & Thursdays, 10:00 AM</small> </div> <span class='badge bg-primary'>Grade: A-</span> </div> <div class='progress' style='height: 6px;'> <div class='progress-bar bg-primary' style='width: 88%'></div> </div> <small class='text-muted'>88% Complete | Midterm: April 28</small> </div> <div class='list-group-item'> <div class='d-flex justify-content-between align-items-center mb-2'> <div> <h6>Artificial Intelligence Fundamentals</h6> <small class='text-muted'>Prof. Martinez | Fridays, 1:00 PM</small> </div> <span class='badge bg-warning text-dark'>Grade: B+</span> </div> <div class='progress' style='height: 6px;'> <div class='progress-bar bg-warning' style='width: 75%'></div> </div> <small class='text-muted'>75% Complete | Research Paper Due: May 5</small> </div> <div class='list-group-item'> <div class='d-flex justify-content-between align-items-center mb-2'> <div> <h6>Computer Networks</h6> <small class='text-muted'>Prof. Davis | Mondays & Wednesdays, 4:00 PM</small> </div> <span class='badge bg-success'>Grade: A</span> </div> <div class='progress' style='height: 6px;'> <div class='progress-bar bg-success' style='width: 92%'></div> </div> <small class='text-muted'>92% Complete | Lab Exam: April 30</small> </div> </div> </div> </div> </div> <div class='col-md-4'> <div class='card shadow-sm mb-3'> <div class='card-header bg-warning text-dark'> <h5>Upcoming Deadlines</h5> </div> <div class='card-body p-0'> <ul class='list-group list-group-flush'> <li class='list-group-item'> <div class='d-flex align-items-start'> <span class='badge bg-danger me-2'>Today</span> <div class='flex-grow-1'> <small><strong>AI Assignment 4</strong></small> <br><small class='text-muted'>Neural Networks Lab</small> </div> </div> </li> <li class='list-group-item'> <div class='d-flex align-items-start'> <span class='badge bg-warning text-dark me-2'>Apr 28</span> <div class='flex-grow-1'> <small><strong>Database Midterm</strong></small> <br><small class='text-muted'>Chapters 1-8</small> </div> </div> </li> <li class='list-group-item'> <div class='d-flex align-items-start'> <span class='badge bg-info me-2'>Apr 30</span> <div class='flex-grow-1'> <small><strong>Networks Lab Exam</strong></small> <br><small class='text-muted'>Practical Assessment</small> </div> </div> </li> <li class='list-group-item'> <div class='d-flex align-items-start'> <span class='badge bg-primary me-2'>May 5</span> <div class='flex-grow-1'> <small><strong>AI Research Paper</strong></small> <br><small class='text-muted'>15-20 pages</small> </div> </div> </li> </ul> </div> </div> <div class='card shadow-sm'> <div class='card-header bg-info text-white'> <h5>Study Resources</h5> </div> <div class='card-body'> <div class='d-grid gap-2'> <button class='btn btn-outline-primary btn-sm'>📖 Course Materials</button> <button class='btn btn-outline-primary btn-sm'>💬 Discussion Forums</button> <button class='btn btn-outline-primary btn-sm'>🎥 Recorded Lectures</button> <button class='btn btn-outline-primary btn-sm'>📝 Practice Quizzes</button> </div> </div> </div> </div> </div> </div> </body> </html>"; var pdf = renderer.RenderHtmlAsPdf(bootstrapLMS); pdf.SaveAs("lms-dashboard.pdf"); using IronPdf; // Set your IronPDF license key IronPdf.License.LicenseKey = "License-Key goes here"; var renderer = new ChromePdfRenderer(); string bootstrapLMS = @" <!DOCTYPE html> <html> <head> <link href='https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/css/bootstrap.min.css' rel='stylesheet'> </head> <body> <div class='container-fluid py-4'> <div class='d-flex justify-content-between align-items-center mb-4'> <div> <h1>Student Learning Dashboard</h1> <p class='text-muted mb-0'>Spring Semester 2025</p> </div> <span class='badge bg-success fs-5'>92% Overall Progress</span> </div> <div class='row g-4 mb-4'> <div class='col-md-3'> <div class='card text-center shadow-sm border-primary'> <div class='card-body'> <div class='text-primary mb-2' style='font-size: 2rem;'>📚</div> <h3>6/8</h3> <p class='text-muted mb-0'>Courses Completed</p> </div> </div> </div> <div class='col-md-3'> <div class='card text-center shadow-sm border-success'> <div class='card-body'> <div class='text-success mb-2' style='font-size: 2rem;'>🎯</div> <h3>24/28</h3> <p class='text-muted mb-0'>Assignments Submitted</p> </div> </div> </div> <div class='col-md-3'> <div class='card text-center shadow-sm border-warning'> <div class='card-body'> <div class='text-warning mb-2' style='font-size: 2rem;'>⏱️</div> <h3>48hrs</h3> <p class='text-muted mb-0'>Study Time This Week</p> </div> </div> </div> <div class='col-md-3'> <div class='card text-center shadow-sm border-info'> <div class='card-body'> <div class='text-info mb-2' style='font-size: 2rem;'>⭐</div> <h3>A- Average</h3> <p class='text-muted mb-0'>Current GPA: 3.7</p> </div> </div> </div> </div> <div class='row g-4'> <div class='col-md-8'> <div class='card shadow-sm'> <div class='card-header bg-primary text-white'> <h5>Current Courses</h5> </div> <div class='card-body p-0'> <div class='list-group list-group-flush'> <div class='list-group-item'> <div class='d-flex justify-content-between align-items-center mb-2'> <div> <h6>Advanced Web Development</h6> <small class='text-muted'>Prof. Johnson | Mondays & Wednesdays, 2:00 PM</small> </div> <span class='badge bg-success'>Grade: A</span> </div> <div class='progress' style='height: 6px;'> <div class='progress-bar bg-success' style='width: 95%'></div> </div> <small class='text-muted'>95% Complete | Final Project Due: May 15</small> </div> <div class='list-group-item'> <div class='d-flex justify-content-between align-items-center mb-2'> <div> <h6>Database Systems</h6> <small class='text-muted'>Prof. Chen | Tuesdays & Thursdays, 10:00 AM</small> </div> <span class='badge bg-primary'>Grade: A-</span> </div> <div class='progress' style='height: 6px;'> <div class='progress-bar bg-primary' style='width: 88%'></div> </div> <small class='text-muted'>88% Complete | Midterm: April 28</small> </div> <div class='list-group-item'> <div class='d-flex justify-content-between align-items-center mb-2'> <div> <h6>Artificial Intelligence Fundamentals</h6> <small class='text-muted'>Prof. Martinez | Fridays, 1:00 PM</small> </div> <span class='badge bg-warning text-dark'>Grade: B+</span> </div> <div class='progress' style='height: 6px;'> <div class='progress-bar bg-warning' style='width: 75%'></div> </div> <small class='text-muted'>75% Complete | Research Paper Due: May 5</small> </div> <div class='list-group-item'> <div class='d-flex justify-content-between align-items-center mb-2'> <div> <h6>Computer Networks</h6> <small class='text-muted'>Prof. Davis | Mondays & Wednesdays, 4:00 PM</small> </div> <span class='badge bg-success'>Grade: A</span> </div> <div class='progress' style='height: 6px;'> <div class='progress-bar bg-success' style='width: 92%'></div> </div> <small class='text-muted'>92% Complete | Lab Exam: April 30</small> </div> </div> </div> </div> </div> <div class='col-md-4'> <div class='card shadow-sm mb-3'> <div class='card-header bg-warning text-dark'> <h5>Upcoming Deadlines</h5> </div> <div class='card-body p-0'> <ul class='list-group list-group-flush'> <li class='list-group-item'> <div class='d-flex align-items-start'> <span class='badge bg-danger me-2'>Today</span> <div class='flex-grow-1'> <small><strong>AI Assignment 4</strong></small> <br><small class='text-muted'>Neural Networks Lab</small> </div> </div> </li> <li class='list-group-item'> <div class='d-flex align-items-start'> <span class='badge bg-warning text-dark me-2'>Apr 28</span> <div class='flex-grow-1'> <small><strong>Database Midterm</strong></small> <br><small class='text-muted'>Chapters 1-8</small> </div> </div> </li> <li class='list-group-item'> <div class='d-flex align-items-start'> <span class='badge bg-info me-2'>Apr 30</span> <div class='flex-grow-1'> <small><strong>Networks Lab Exam</strong></small> <br><small class='text-muted'>Practical Assessment</small> </div> </div> </li> <li class='list-group-item'> <div class='d-flex align-items-start'> <span class='badge bg-primary me-2'>May 5</span> <div class='flex-grow-1'> <small><strong>AI Research Paper</strong></small> <br><small class='text-muted'>15-20 pages</small> </div> </div> </li> </ul> </div> </div> <div class='card shadow-sm'> <div class='card-header bg-info text-white'> <h5>Study Resources</h5> </div> <div class='card-body'> <div class='d-grid gap-2'> <button class='btn btn-outline-primary btn-sm'>📖 Course Materials</button> <button class='btn btn-outline-primary btn-sm'>💬 Discussion Forums</button> <button class='btn btn-outline-primary btn-sm'>🎥 Recorded Lectures</button> <button class='btn btn-outline-primary btn-sm'>📝 Practice Quizzes</button> </div> </div> </div> </div> </div> </div> </body> </html>"; var pdf = renderer.RenderHtmlAsPdf(bootstrapLMS); pdf.SaveAs("lms-dashboard.pdf"); $vbLabelText $csharpLabel 輸出:採用 Bootstrap 5 網格系統、卡片組件、進度條、徽章、flexbox 佈局和列表組的專業學習管理系統 PDF——所有元素均以完美的間距、排版和色彩準確性呈現。 PDFNet(Apryse):部分支援現代 CSS PDFNet 使用自訂 HTML 渲染引擎,並選擇性地支援 CSS3: Flexbox 實作有限: Bootstrap 4/5 基於 Flexbox 的佈局可能渲染不一致 -部分 CSS Grid 支援:基於網格的設計通常需要備用方案 JavaScript 限制:與完整的瀏覽器環境相比,執行量最小 -框架測試是必需的: Bootstrap 元件在投入生產環境之前需要進行驗證。 開發影響:團隊必須單獨測試每個 Bootstrap 元件,並且經常為 PDFNet 創建簡化的佈局或替代 CSS,這增加了複雜性並降低了設計一致性。 有關 Bootstrap 框架的全面指導和現代 CSS 渲染功能,請參閱Bootstrap 和 Flexbox CSS 指南。 7. 列印 PDF 檔案(程式碼範例) 對於處理 PDF 文件的現代應用程式來說,列印 PDF 文件是一項必備功能。 在這裡,我們將討論如何使用這兩種工具列印 PDF 文件。 7.1. 使用 IronPDF 列印 PDF 文件 IronPDF 透過將 PDF 檔案傳送到電腦的預設印表機來列印該檔案。 這將打開 Windows 列印介面——只需點擊列印按鈕即可完成列印。 using IronPdf; class PrintPDF { static void Main(string[] args) { // Create a new PDF and print it var Renderer = new IronPdf.ChromePdfRenderer(); PdfDocument Pdf = Renderer.RenderUrlAsPdf("https://www.nuget.org/packages/IronPdf"); // Send the PDF to the default printer to print Pdf.Print(300, false); } } using IronPdf; class PrintPDF { static void Main(string[] args) { // Create a new PDF and print it var Renderer = new IronPdf.ChromePdfRenderer(); PdfDocument Pdf = Renderer.RenderUrlAsPdf("https://www.nuget.org/packages/IronPdf"); // Send the PDF to the default printer to print Pdf.Print(300, false); } } $vbLabelText $csharpLabel 7.2. 使用 PDFNet 列印 PDF 文件 PDFTron 的 PDFNet SDK 也提供列印功能。 以下是 PDFNet 中用於列印 PDF 檔案的原始程式碼片段。 using System; using pdftron; using pdftron.PDF; using pdftron.Common; using pdftron.Filters; namespace PDFPrintTestCS { class Program { static void Main(string[] args) { Console.WriteLine("Opening the input file..."); using (PDFDoc pdfdoc = new PDFDoc("tiger.pdf")) { pdfdoc.InitSecurityHandler(); Console.WriteLine("Printing the input file using PDF.Print.StartPrintJob..."); PrinterMode printerMode = new PrinterMode(); printerMode.SetAutoCenter(true); printerMode.SetAutoRotate(true); printerMode.SetCollation(true); printerMode.SetCopyCount(1); printerMode.SetDPI(300); // Set print quality to 300 DPI printerMode.SetDuplexing(PrinterMode.DuplexMode.e_Duplex_Auto); printerMode.SetNUp(PrinterMode.NUp.e_NUp_1_1, PrinterMode.NUpPageOrder.e_PageOrder_LeftToRightThenTopToBottom); printerMode.SetOrientation(PrinterMode.Orientation.e_Orientation_Portrait); printerMode.SetOutputAnnot(PrinterMode.PrintContentTypes.e_PrintContent_DocumentAndAnnotations); printerMode.SetOutputColor(PrinterMode.OutputColor.e_OutputColor_Grayscale); printerMode.SetOutputPageBorder(false); printerMode.SetOutputQuality(PrinterMode.OutputQuality.e_OutputQuality_Medium); printerMode.SetPaperSize(new Rect(0, 0, 612, 792)); PageSet pagesToPrint = new PageSet(1, pdfdoc.GetPageCount(), PageSet.Filter.e_all); Print.StartPrintJob(pdfdoc, "", pdfdoc.GetFileName(), "", pagesToPrint, printerMode, null); } } } } using System; using pdftron; using pdftron.PDF; using pdftron.Common; using pdftron.Filters; namespace PDFPrintTestCS { class Program { static void Main(string[] args) { Console.WriteLine("Opening the input file..."); using (PDFDoc pdfdoc = new PDFDoc("tiger.pdf")) { pdfdoc.InitSecurityHandler(); Console.WriteLine("Printing the input file using PDF.Print.StartPrintJob..."); PrinterMode printerMode = new PrinterMode(); printerMode.SetAutoCenter(true); printerMode.SetAutoRotate(true); printerMode.SetCollation(true); printerMode.SetCopyCount(1); printerMode.SetDPI(300); // Set print quality to 300 DPI printerMode.SetDuplexing(PrinterMode.DuplexMode.e_Duplex_Auto); printerMode.SetNUp(PrinterMode.NUp.e_NUp_1_1, PrinterMode.NUpPageOrder.e_PageOrder_LeftToRightThenTopToBottom); printerMode.SetOrientation(PrinterMode.Orientation.e_Orientation_Portrait); printerMode.SetOutputAnnot(PrinterMode.PrintContentTypes.e_PrintContent_DocumentAndAnnotations); printerMode.SetOutputColor(PrinterMode.OutputColor.e_OutputColor_Grayscale); printerMode.SetOutputPageBorder(false); printerMode.SetOutputQuality(PrinterMode.OutputQuality.e_OutputQuality_Medium); printerMode.SetPaperSize(new Rect(0, 0, 612, 792)); PageSet pagesToPrint = new PageSet(1, pdfdoc.GetPageCount(), PageSet.Filter.e_all); Print.StartPrintJob(pdfdoc, "", pdfdoc.GetFileName(), "", pagesToPrint, printerMode, null); } } } } $vbLabelText $csharpLabel 8. 從 HTML 產生 PDF 這兩個函式庫都具備 HTML 轉 PDF 的功能,但方法略有不同。 8.1. 使用 IronPDF 從 HTML 產生 PDF IronPDF 不需要使用 JSON 或加密機制。 IronPDF 支援多種方法。 例如: HTML 檔案轉 PDF using IronPdf; class HtmlToPdf { static void Main(string[] args) { var Renderer = new IronPdf.ChromePdfRenderer(); Renderer.RenderHtmlAsPdf("<h1>Html with CSS and Images</h1>").SaveAs("pixel-perfect.pdf"); } } using IronPdf; class HtmlToPdf { static void Main(string[] args) { var Renderer = new IronPdf.ChromePdfRenderer(); Renderer.RenderHtmlAsPdf("<h1>Html with CSS and Images</h1>").SaveAs("pixel-perfect.pdf"); } } $vbLabelText $csharpLabel PDF檔案的URL using IronPdf; class UrlToPdf { static void Main(string[] args) { IronPdf.ChromePdfRenderer Renderer = new IronPdf.ChromePdfRenderer(); var Pdf = Renderer.RenderUrlAsPdf("https://ironpdf.com/"); Pdf.SaveAs("url.pdf"); } } using IronPdf; class UrlToPdf { static void Main(string[] args) { IronPdf.ChromePdfRenderer Renderer = new IronPdf.ChromePdfRenderer(); var Pdf = Renderer.RenderUrlAsPdf("https://ironpdf.com/"); Pdf.SaveAs("url.pdf"); } } $vbLabelText $csharpLabel 8.2. 使用 PDFNet 從 HTML 產生 PDF PDFNet 也提供 HTML 轉 PDF 功能,支援頁面轉換和 URL 轉換。 由於程式碼很長,我們這裡只給一個範例。 class HTML2PDFSample { private static pdftron.PDFNetLoader pdfNetLoader = pdftron.PDFNetLoader.Instance(); static HTML2PDFSample() {} static void Main(string[] args) { string output_path = "../../../../TestFiles/Output/html2pdf_example"; string host = "https://www.pdftron.com"; HTML2PDF.SetModulePath("../../../../../Lib"); if (!HTML2PDF.IsModuleAvailable()) { Console.WriteLine(); Console.WriteLine("Unable to run HTML2PDFTest: PDFTron SDK HTML2PDF module not available."); return; } try { using (PDFDoc doc = new PDFDoc()) { if (HTML2PDF.Convert(doc, host + "/")) doc.Save(output_path + "_01.pdf", SDFDoc.SaveOptions.e_linearized); else Console.WriteLine("Conversion failed."); } } catch (PDFNetException e) { Console.WriteLine(e.Message); } } } class HTML2PDFSample { private static pdftron.PDFNetLoader pdfNetLoader = pdftron.PDFNetLoader.Instance(); static HTML2PDFSample() {} static void Main(string[] args) { string output_path = "../../../../TestFiles/Output/html2pdf_example"; string host = "https://www.pdftron.com"; HTML2PDF.SetModulePath("../../../../../Lib"); if (!HTML2PDF.IsModuleAvailable()) { Console.WriteLine(); Console.WriteLine("Unable to run HTML2PDFTest: PDFTron SDK HTML2PDF module not available."); return; } try { using (PDFDoc doc = new PDFDoc()) { if (HTML2PDF.Convert(doc, host + "/")) doc.Save(output_path + "_01.pdf", SDFDoc.SaveOptions.e_linearized); else Console.WriteLine("Conversion failed."); } } catch (PDFNetException e) { Console.WriteLine(e.Message); } } } $vbLabelText $csharpLabel 9. 許可 IronPDF是一個提供免費開發者許可的庫。 IronPDF 也提供特殊的定價結構:輕量級套餐起價為$799 ,沒有任何隱藏費用。 SaaS 和 OEM 產品也可以重新分發。 所有許可證均包含 30 天退款保證、一年的軟體支援和升級、開發/測試/預發布/生產有效期以及永久許可證(一次性購買)。 IronPDF 授權可為使用者需求提供最佳效能。 請造訪IronPDF 許可頁面,查看 IronPDF 的完整定價結構和許可資訊。 PDFTron PDFNet SDK 提供多種授權選項,可根據您的業務需求量身訂做。 企業版和 OEM 版分發附帶三種類型的授權。 企業版許可證僅供組織內部使用,不可用於應用程式分發。 許可證中還包含需要存取檔案系統的其他 API。 所有許可證均附有許可證密鑰。 三種許可證類型是: 檢視器 檢視器和註釋 核心 SDK 有關其許可結構的更多信息,請訪問PDFTron 許可資訊頁面。 10. 結論 IronPDF 提供了許多用於處理 PDF 文件並將其轉換為不同格式的功能。 HTML 轉換為 PDF 時,產生的檔案為向量格式,適用於高品質的商業印刷。 因此,您將收到一份清晰、高品質的PDF文件。 許可證和定價資訊可在網站上找到。 與 IronPDF 類似,PDFNet 可以幫助使用者進行 PDF 文件的轉換、註釋、簽名、填寫、轉換和編輯。 它支援多種平台,包括 Windows、iOS、Android、WEB 和 Linux。 生產環境中使用 PDFNet SDK 需要產品金鑰。 IronPDF 的許可證以開發者為中心,這意味著您必須根據有多少開發者將使用該產品來獲得許可證。 另一方面,PDFNet 許可證的工作方式不同,它採用的是基於功能的許可證。 這意味著您必須獲得支援所需功能的許可證。 IronPDF 許可證包含所有開箱即用的功能。 使用 PDFNet 時,某些功能(例如文件轉換)需要作為附加功能購買。 IronPDF 庫以有條理的方式提供各種功能,使編寫程式碼變得容易,只需幾行程式碼即可執行大型任務。 Iron Software 目前以兩款工具的價格提供五款工具的套裝。 Iron Suite包含的工具有: IronBarcode IronXL IronOCR IronPDF IronWebscraper 請造訪Iron Suite 資訊頁面以了解 Iron Suite 。 請注意PDFTron 是其各自所有者的註冊商標。 本網站與 PDFTron 無任何關聯,亦未獲得其認可或贊助。 所有產品名稱、標誌和品牌均為其各自所有者的財產。 文中比較僅供參考,反映的是撰寫本文時可公開取得的資訊。 常見問題解答 文章中比較的主要 PDF 函式庫有哪些? 文章比較了 Iron Software 所開發的 IronPDF 和 PDFTron 所開發的 PDFNet,重點在於它們在 .NET Framework 內供 C# 開發人員使用的功能。 如何在 C# 中將 HTML 轉換為 PDF? 您可以使用 IronPDF 的 RenderHtmlAsPdf 方法將 HTML 字串轉換為 PDF。此外,您還可以使用 IronPDF 強大的 Chromium 引擎將 HTML 檔案和 URL 轉換為 PDF。 IronPDF 支援哪些作業系統? IronPdf 支援多種作業系統,包括 Windows、Azure 和 Docker,可無縫整合至多樣化的開發環境。 IronPDF 如何處理 PDF 資料萃取? IronPDF 可以高效地提取 PDF 資料,讓開發人員可以輕鬆地從 PDF 文件中擷取文字和影像,以便進一步處理。 IronPDF 有哪些安裝選項? IronPdf 可透過 Visual Studio NuGet Package Manager、Visual Studio Command Line 或直接從 NuGet Gallery 安裝,確保開發人員能輕易設定。 IronPdf 和 PDFNet 的授權有何不同? IronPdf 提供以開發人員為中心的授權,包含所有功能,而 PDFNet 授權則以功能為基礎,可能需要額外購買特定功能。 IronPDF 適合大型 PDF 任務嗎? 是的,IronPDF 因其易用性和最少的程式碼需求而備受稱讚,適合高效處理大型 PDF 任務。 Iron Software 套件還包括哪些工具? Iron Software 套件包括 IronBarcode、IronXL、IronOCR、IronPDF 和 IronWebscraper,以套餐形式提供,增强了对开发人员的吸引力。 Curtis Chau 立即與工程團隊聊天 技術撰稿人 Curtis Chau 擁有電腦科學學士學位(卡爾頓大學),專長於前端開發,精通 Node.js、TypeScript、JavaScript 和 React。Curtis 對製作直覺且美觀的使用者介面充滿熱情,他喜歡使用現代化的架構,並製作結構良好且視覺上吸引人的手冊。除了開發之外,Curtis 對物聯網 (IoT) 也有濃厚的興趣,他喜歡探索整合硬體與軟體的創新方式。在空閒時間,他喜歡玩遊戲和建立 Discord bots,將他對技術的熱愛與創意結合。 相關文章 發表日期 2026年1月20日 Generate PDF Using iTextSharp in MVC vs IronPDF: A Complete Comparison Compare PDF generation methods in ASP.NET MVC using iTextSharp vs IronPDF. Discover which library offers better HTML rendering and easier implementation. 閱讀更多 更新2026年1月7日 Ghostscript GPL vs IronPDF: Technical Comparison Guide Discover the key differences between Ghostscript GPL and IronPDF. Compare AGPL licensing vs commercial, command-line switches vs native .NET API, and HTML-to-PDF capabilities. 閱讀更多 更新2026年1月21日 Which ASP.NET PDF Library Offers the Best Value for .NET Core Development? Discover the best PDF library for ASP.NET Core applications. Compare IronPDF's Chrome engine with Aspose and Syncfusion alternatives. 閱讀更多 IronPDF vs GroupDocs: Which PDF Library Should Engineering Teams Choose?A Comparison between IronPDF and PS...
發表日期 2026年1月20日 Generate PDF Using iTextSharp in MVC vs IronPDF: A Complete Comparison Compare PDF generation methods in ASP.NET MVC using iTextSharp vs IronPDF. Discover which library offers better HTML rendering and easier implementation. 閱讀更多
更新2026年1月7日 Ghostscript GPL vs IronPDF: Technical Comparison Guide Discover the key differences between Ghostscript GPL and IronPDF. Compare AGPL licensing vs commercial, command-line switches vs native .NET API, and HTML-to-PDF capabilities. 閱讀更多
更新2026年1月21日 Which ASP.NET PDF Library Offers the Best Value for .NET Core Development? Discover the best PDF library for ASP.NET Core applications. Compare IronPDF's Chrome engine with Aspose and Syncfusion alternatives. 閱讀更多