產品比較

IronPDF與PDFNet比較

發佈 2022年11月14日
分享:

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 轉換

此功能允許您從各種格式生成 PDF 檔案,例如 HTML、MVC 視圖、Web 表單、HTML 字串和 URL。

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 文件 IO

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 為任何網頁、行動裝置、桌面或伺服器上的框架或應用程式提供精確的 PDF 處理、註解、編輯和創建功能。 它管理整個文檔和信息管理流程,並與您的基礎設施集成,消除對第三方服務器依賴的需求。 PDFTron 的網路平台提供了 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 框架:

IronPDF 與 PDFNet 之間的比較,圖 1

Visual Studio 專案現在將為主控台應用程式生成結構。 完成後,將打開 program.cs 文件,您可以在其中編寫和執行源代碼。

IronPDF 和 PDFNet 的比較,圖2

現在我們可以添加庫並測試程序。

5. 安裝 IronPDF 庫

IronPDF 庫可以透過四種不同的方式下載和安裝。 這些是:

5.1 使用 Visual Studio NuGet 套件管理器

Visual Studio 軟體提供 NuGet Package Manager 選項,讓使用者可以將套件直接安裝到解決方案中。 以下截圖顯示如何打開 NuGet Package Manager。

IronPDF與PDFNet比較,圖3

在打開的套件管理 GUI 中,點擊「瀏覽」標籤並搜索「IronPDF:」

IronPDF 與 PDFNet 比較,圖4

在上圖中,我們可以看到搜尋結果的相關套件列表。 選擇 IronPDF 選項並將套件安裝到我們的解決方案中。

5.2 使用 Visual Studio 命令列

  • 在 Visual Studio 選單中,前往 工具 > NuGet 套件管理員 > 套件管理員主控台

    IronPDF與PDFNet比較,第五圖

  • 在套件管理器主控台標籤頁中輸入以下行:
Install-Package IronPdf

現在將在專案中安裝 IronPDF 套件。

IronPDF與PDFNet比較,圖6

5.3 從 NuGet 網頁直接下載

第三種方法是直接從NuGet套件下載NuGet Gallery IronPDF 套件.

  • 從右側菜單中選擇下載套件選項。
  • 雙擊下載的包; 它將自動安裝。
  • 接下來,重新載入解決方案並開始在專案中使用它。

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 套件。

IronPDF 與 PDFNet 的比較,圖 7

會出現一個帶有搜尋欄的視窗。 搜尋 PDFNet 並將其安裝到專案中。

6.2. 使用 Visual Studio 命令行

  • 在 Visual Studio 選單中,前往 工具 > NuGet 套件管理員 > 套件管理員主控台
  • 在套件管理器主控台標籤頁中輸入以下行:
Install-Package PDFNet ---Version 9.2.0
IronPDF與PDFNet之比較,圖8

6.3. 從 NuGet 網頁直接下載

第三種方法是直接從NuGet套件下載NuGet Gallery PDFNet 套件.

  • 從右側選單中選擇下載套餐選項。
  • 雙擊下載的套件以開始安裝過程。

6.4. 使用 PDFNetLoader.dll

您也可以使用 PDFNetLoader.dll 檔案安裝 PDFNet API。從GitHub Releases for PDFNetLoader.dll.

下載套件,將其放置在專案的 bin 檔案中,然後運行它。 在您的 Visual Studio 專案中,將 PDFNetLoader.dll 加入為參考。

7. 列印 PDF 檔案(程式碼範例)

列印 PDF 檔案是現代處理 PDF 文件的應用程式必備功能。 在這裡,我們將討論如何使用這兩個工具列印 PDF 檔案。

7.1. 使用 IronPDF 列印 PDF 文件

IronPDF 透過將 PDF 發送至電腦的預設打印機來打印。 這會開啟 Windows 列印介面——只需點擊列印即可完成。

using IronPdf;

// 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;

// 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);
Imports IronPdf

' Create a new PDF and print it
Private Renderer = New IronPdf.ChromePdfRenderer()
Private Pdf As PdfDocument = Renderer.RenderUrlAsPdf("https://www.nuget.org/packages/IronPdf")

' Send the PDF to the default printer to print
Pdf.Print(300, False)
VB   C#

7.2. 使用 PDFNet 列印 PDF 文件

PDFTron 的 PDFNet SDK 也提供列印功能。 以下是使用 PDFNet 列印 PDF 文件的程式碼片段。

using System;
using System.Drawing;
using System.Drawing.Printing;

using pdftron;
using pdftron.PDF;
using pdftron.Common;
using pdftron.Filters;

namespace PDFPrintTestCS
{
    Console.WriteLine("Opening the input file...");
    using (pdfdoc = new PDFDoc(input_path + "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); // regardless of ordering, an explicit DPI setting overrides the OutputQuality setting
        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 System.Drawing;
using System.Drawing.Printing;

using pdftron;
using pdftron.PDF;
using pdftron.Common;
using pdftron.Filters;

namespace PDFPrintTestCS
{
    Console.WriteLine("Opening the input file...");
    using (pdfdoc = new PDFDoc(input_path + "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); // regardless of ordering, an explicit DPI setting overrides the OutputQuality setting
        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);
    }
}
Imports System
Imports System.Drawing
Imports System.Drawing.Printing

Imports pdftron
Imports pdftron.PDF
Imports pdftron.Common
Imports pdftron.Filters

Namespace PDFPrintTestCS
	Console.WriteLine("Opening the input file...")
	pdfdoc = New PDFDoc(input_path & "tiger.pdf")
	Using pdfdoc
		pdfdoc.InitSecurityHandler()
		Console.WriteLine("Printing the input file using PDF.Print.StartPrintJob...")
		Dim printerMode As New PrinterMode()
		printerMode.SetAutoCenter(True)
		printerMode.SetAutoRotate(True)
		printerMode.SetCollation(True)
		printerMode.SetCopyCount(1)
		printerMode.SetDPI(300) ' regardless of ordering, an explicit DPI setting overrides the OutputQuality setting
		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))
		Dim pagesToPrint As New PageSet(1, pdfdoc.GetPageCount(), PageSet.Filter.e_all)
		Print.StartPrintJob(pdfdoc, "", pdfdoc.GetFileName(), "", pagesToPrint, printerMode, Nothing)
	End Using
End Namespace
VB   C#

8. 從 HTML 製作 PDF

兩個庫都具有將HTML轉換為PDF的功能,但方法略有不同。

8.1. 使用 IronPDF 從 HTML 生成 PDF

IronPDF 不需要使用 JSON 或加密機制。 IronPDF 支援多種方法。 例如:

HTML 檔案轉換為 PDF

using IronPdf;
var Renderer = new IronPdf.ChromePdfRenderer();
Renderer.RenderHtmlAsPdf("<h1>Html with CSS and Images</h1>").SaveAs("pixel-perfect.pdf");
using IronPdf;
var Renderer = new IronPdf.ChromePdfRenderer();
Renderer.RenderHtmlAsPdf("<h1>Html with CSS and Images</h1>").SaveAs("pixel-perfect.pdf");
Imports IronPdf
Private Renderer = New IronPdf.ChromePdfRenderer()
Renderer.RenderHtmlAsPdf("<h1>Html with CSS and Images</h1>").SaveAs("pixel-perfect.pdf")
VB   C#

URL轉PDF

using IronPdf;
IronPdf.ChromePdfRenderer Renderer = new IronPdf.ChromePdfRenderer();
var Pdf = Renderer.RenderUrlAsPdf("https://ironpdf.com/");
Pdf.SaveAs("url.pdf");
using IronPdf;
IronPdf.ChromePdfRenderer Renderer = new IronPdf.ChromePdfRenderer();
var Pdf = Renderer.RenderUrlAsPdf("https://ironpdf.com/");
Pdf.SaveAs("url.pdf");
Imports IronPdf
Private Renderer As New IronPdf.ChromePdfRenderer()
Private Pdf = Renderer.RenderUrlAsPdf("https://ironpdf.com/")
Pdf.SaveAs("url.pdf")
VB   C#
IronPDF 與 PDFNet 的比較,圖 9

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";
        string page0 = "/";
        string page1 = "/support";
        string page2 = "/blog";
        HTML2PDF.SetModulePath("../../../../../Lib");

        if (!HTML2PDF.IsModuleAvailable())
        {
            Console.WriteLine();
            Console.WriteLine("Unable to run HTML2PDFTest: PDFTron SDK HTML2PDF module not available.");
            Console.WriteLine("-------------------------------");
            Console.WriteLine("The HTML2PDF module is an optional add-on, available for download");
            Console.WriteLine("at http://www.pdftron.com/. If you have already downloaded this");
            Console.WriteLine("module, ensure that the SDK is able to find the required files");
            Console.WriteLine("using the HTML2PDF.SetModulePath() function.");
            Console.WriteLine();
            return;
        }
        try
        {
            using (PDFDoc doc = new PDFDoc())
            {
                if ( HTML2PDF.Convert(doc, host + page0) )
                    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";
        string page0 = "/";
        string page1 = "/support";
        string page2 = "/blog";
        HTML2PDF.SetModulePath("../../../../../Lib");

        if (!HTML2PDF.IsModuleAvailable())
        {
            Console.WriteLine();
            Console.WriteLine("Unable to run HTML2PDFTest: PDFTron SDK HTML2PDF module not available.");
            Console.WriteLine("-------------------------------");
            Console.WriteLine("The HTML2PDF module is an optional add-on, available for download");
            Console.WriteLine("at http://www.pdftron.com/. If you have already downloaded this");
            Console.WriteLine("module, ensure that the SDK is able to find the required files");
            Console.WriteLine("using the HTML2PDF.SetModulePath() function.");
            Console.WriteLine();
            return;
        }
        try
        {
            using (PDFDoc doc = new PDFDoc())
            {
                if ( HTML2PDF.Convert(doc, host + page0) )
                    doc.Save(output_path + "_01.pdf", SDFDoc.SaveOptions.e_linearized);
                else
                    Console.WriteLine("Conversion failed.");
            }
        }
        catch (PDFNetException e)
        {
            Console.WriteLine(e.Message);
        }
    }
}
Friend Class HTML2PDFSample
	Private Shared pdfNetLoader As pdftron.PDFNetLoader = pdftron.PDFNetLoader.Instance()
	Shared Sub New()
	End Sub

	Shared Sub Main(ByVal args() As String)
		Dim output_path As String = "../../../../TestFiles/Output/html2pdf_example"
		Dim host As String = "https://www.pdftron.com"
		Dim page0 As String = "/"
		Dim page1 As String = "/support"
		Dim page2 As String = "/blog"
		HTML2PDF.SetModulePath("../../../../../Lib")

		If Not HTML2PDF.IsModuleAvailable() Then
			Console.WriteLine()
			Console.WriteLine("Unable to run HTML2PDFTest: PDFTron SDK HTML2PDF module not available.")
			Console.WriteLine("-------------------------------")
			Console.WriteLine("The HTML2PDF module is an optional add-on, available for download")
			Console.WriteLine("at http://www.pdftron.com/. If you have already downloaded this")
			Console.WriteLine("module, ensure that the SDK is able to find the required files")
			Console.WriteLine("using the HTML2PDF.SetModulePath() function.")
			Console.WriteLine()
			Return
		End If
		Try
			Using doc As New PDFDoc()
				If HTML2PDF.Convert(doc, host & page0) Then
					doc.Save(output_path & "_01.pdf", SDFDoc.SaveOptions.e_linearized)
				Else
					Console.WriteLine("Conversion failed.")
				End If
			End Using
		Catch e As PDFNetException
			Console.WriteLine(e.Message)
		End Try
	End Sub
End Class
VB   C#
IronPDF與PDFNet的比較,圖10

9. 授權

IronPDF 是一個提供免費開發者授權的程式庫。 IronPDF 也提供特別的價格結構:基本套裝從 $749 開始,且沒有隱藏費用。 也可以重新分發 SaaS 和 OEM 產品。 所有授權皆包括30天退款保證、一年的軟體支持和升級、開發/測試/預備/生產有效性,以及永久授權。(一次性購買). IronPDF 授權為用戶的需求提供最佳性能。 請到這個IronPDF 授權頁面查看 IronPDF 的完整定價結構和授權。

IronPDF 與 PDFNet 的比較,圖 11

PDFTron PDFNet SDK 提供多種授權選擇,以滿足您的業務需求。 企業和OEM重新分發附帶三種類型的許可證。 企業許可證僅供組織使用,不能用於應用程式分發。 授權中還包括需要文件系統訪問的附加 API。 所有授權版本都附有授權金鑰。 三種類型的許可證是

10. 結論

IronPDF 提供許多功能與效能來處理 PDF 文件以及將其轉換為不同的格式。 將HTML轉換為PDF的過程產生的內容是矢量格式,適合高品質的商業印刷。 因此,您將收到一個清晰且高質量的 PDF。 您可以在網站上找到許可和定價資訊。

與IronPDF類似,PDFNet協助進行PDF文件的轉換、註釋、簽名、填寫、轉換和編輯。 它支持多個平台,包括 Windows、IOS、Android、WEB 和 Linux。 在生產環境中使用時,PDFNet SDK需要產品密鑰。

IronPDF 的許可證以開發者為中心,這意味著您需要根據將使用該產品的開發人員數量來獲取許可證。 另一方面,PDFNet 授權則是以功能為基礎的授權方式運作,不同於其他授權模式。 這表示您必須獲取支持所需功能的許可證。 IronPDF 授權包含所有功能,開箱即用。 在使用 PDFNet 時,某些功能如文件轉換,需要購買附加元件。

IronPDF 庫提供的功能組織有序,使得使用幾行代碼就能輕鬆編寫執行大型任務的代碼。 Iron Software目前正以兩款工具的價格提供五款工具的套裝。 IronSuite 中包含的工具有:

-IronBarcode

-IronXL

-IronOCR

-IronPDF

-IronWebscraper

請訪問此IronSuite 資訊頁面,探索 IronSuite.

< 上一頁
IronPDF 與 GroupDocs 的比較
下一個 >
IronPDF與PSPDFKit的比較

準備開始了嗎? 版本: 2024.12 剛剛發布

免費 NuGet 下載 總下載次數: 11,622,374 查看許可證 >