產品比較

Compdfkit 與 IronPDF 的比較

發佈 2024年8月13日
分享:

PDFPDF(可攜式文件格式的縮寫)是由 Adobe 創建的一種文件類型,旨在確保文件共享的一致性。 此格式在不同的設備和作業系統上保持佈局、文字和圖片的一致性。 PDFs 以其安全性、互動功能和緊湊的大小而著稱,這使得它們非常適合分發文件而不改變原始內容。

對於使用C#的開發人員,PDF庫提供了處理PDF檔案的PDF解決方案。 這些庫能夠實現文件創建、內容修改,以及提取文字和圖像。 他們還支援表單處理、數位簽章等功能,並且在不同平台之間具有相容性。 為了達到最佳效能設計,這些程式庫促進高效的 PDF 處理。

在本文中,我們將比較兩個 C# PDF 函式庫:IronPDFComPDFKit. 此比較將涵蓋功能、實用性、代碼示例和許可。 通過檢查這些方面,您可以確定哪個庫最適合您的 PDF 相關專案。

1. ComPDFKit SDK

ComPDFKIT 與 IronPDF 的比較:圖1 - ComPDFKIT SDK首頁

ComPDFKit PDF SDK 是一款強大的 C# PDF SDK,允許開發人員將全面的 PDF 功能整合到他們的應用程式中。 此庫支援處理 PDF 文件所需的各種 PDF 功能。 它被設計用於多種環境,包括網頁、桌面和移動平台,使其成為開發人員在跨平台專案中工作的多功能工具。 在示例解決方案中具有多種功能。 您可以選擇任何相關的ComPDFKit PDF SDK功能進行嘗試。

ComPDFKit的主要功能

  1. PDF 檢視:ComPDFKit 提供了一個強大的 PDF 檢視器,使用戶能夠以高保真度檢視 PDF 文件。 查看器支持平滑滾動、縮放和導航,確保順暢的用戶體驗。

  2. 註釋:該庫包含工具以順利整合 PDF 註釋。 使用者可以突出顯示文字、添加註解,並創建各種類型的註釋,這對於協作工作流程至關重要。

  3. 表單處理:該函式庫提供廣泛的互動表單支持。 開發人員可以創建、填寫和提取 PDF 表單中的數據,這使其成為需要表單處理的應用程式的理想選擇。

  4. PDF 編輯:ComPDFKit 提供廣泛的 PDF 編輯功能,包括修改 PDF 文件中的文本、圖像和其他內容。 此功能對於需要更新或自訂現有 PDF 文件的應用程式非常有用。

  5. 轉換:該函式庫支持將PDF文件轉換為多種格式或從多種格式轉換為PDF,例如Word、Excel、PowerPoint和圖像。 這種彈性對於需要將 PDF 內容轉換為不同用途的應用程式至關重要。

  6. 安全性:ComPDFKit 包含強大的安全功能,例如加密和權限管理。 開發人員可以加密 PDF 文件,以保護敏感信息免受未經授權的訪問。

  7. 光學字元辨識(光學字符識別)**:該庫包含光學字符識別功能,可將掃描文件轉換為可編輯和搜索的 PDF。 此功能對於將紙質文件數字化並使其在電子方式下可訪問至關重要。

    ComPDFKit 提供了一套全面的 API,以簡化這些功能在各種應用程式中的整合。 其詳盡的文件和支持使其成為開發人員希望將高級 PDF 功能納入其專案的絕佳選擇。

2. IronPDF 程式庫

Compdfkit 和 IronPDF 之間的比較:圖2 - IronPDF 首頁

IronPDF是一個多功能的 PDF 函式庫,適用於 .NET,允許開發人員使用 C# 創建、編輯和管理 PDF 文件。 它提供全面的 PDF 功能。 它旨在透過從 HTML、CSS、JavaScript 和各種圖像格式渲染 PDF,來簡化 PDF 生成。 這使其成為希望將強大的 PDF 功能整合到其 .NET 應用程序中的開發人員的理想工具。

IronPDF 的主要功能

  1. HTML 轉換為 PDF:IronPDF 擅長將 HTML、CSS 和 JavaScript 內容轉換為高品質的 PDF 文件。 此功能支持將 HTML 字串轉換為 PDF、網址、ASPX 網頁表單和 MVC 視圖,使其成為各種基於網頁內容的靈活解決方案。

  2. PDF 編輯:該庫提供廣泛的編輯功能,包括新增、複製和刪除頁面,合併和拆分 PDF,以及操作文字和圖像。 開發人員還可以在 PDF 文件中新增頁首、頁尾、水印和數位簽名。

  3. 表單處理:IronPDF 支援智慧表單建立和以程式方式填寫 PDF 表單. 此功能對於需要動態表單生成和從用戶提交的表單中提取數據的應用程式至關重要。

  4. 安全功能:IronPDF 提供強大的安全選項,例如設定密碼和許可權、加密文件以及添加數位簽章。 這些功能確保 PDF 文件中的敏感信息受到未經授權存取的保護。

  5. OCR 和資料提取:該庫包含光學字符識別(光學字符識別)功能,允許將掃描的文件轉換為可編輯和可搜尋的PDF文件。 此外,IronPDF 能夠從現有的 PDF 中提取文字、圖片和其他數據,從而促進內容的重用和分析。

  6. 圖像轉換:IronPDF 支援將各種圖像格式,包括 JPG、PNG、GIF、BMP 和 SVG,轉換為 PDF 文件。 它還提供將 PDF 頁面呈現為圖像的功能,這對於需要視覺預覽 PDF 內容的應用程序來說很有用。

  7. 跨平台相容性:IronPDF 與多個 .NET 平台相容,包括 .NET Core、.NET Framework 和 .NET Standard。 它支持在 Windows、Linux、macOS 和 Azure 上部署,成為在多樣環境中工作的開發人員的多功能選擇。

  8. 性能優化:該庫設計為高性能,支持多線程和異步操作。 這確保了即使在工作負荷大的應用程序中,PDF 處理任務也能高效執行。

  9. 全面的文件和支援:IronPDF 提供詳細的文件和大量的程式碼範例,使開發人員能夠輕鬆上手並實施其功能。 此外,它提供技術支援,以協助解決開發過程中可能出現的任何問題。

3. 建立新的 Visual Studio 專案

在我們深入探討程式碼範例之前,讓我們建立一個新的 Visual Studio 專案。 以下是設定 Visual Studio 中 C# 主控台應用程式的分步指南。

步驟 1:安裝 Visual Studio(如果尚未安裝)

Visual Studio 是 C# 專案的最佳 IDE。 如果您尚未下載和安裝,請從此處下載Visual Studio 下載頁面。

步驟 2:開啟 Visual Studio

安裝 Visual Studio 後,開啟它。 如果您擁有 Visual Studio Community,您可以選擇登入或繼續不登入。

第3步:創建新專案

  1. 點擊「創建新專案」或導航到「檔案」>「新增」>「專案」。

    Compdfkit 和 IronPDF 之間的比較:圖 3 IronPDF 和 DinkToPdf 之間的比較:圖 1

  2. 在搜索欄中搜尋 Console 應用程式,並從搜索結果中選擇 Console 應用程式。

    精簡與IronPDF之間的比較:圖4 - IronPDF與DinkToPdf之間的比較:圖2 - 在創建新項目對話框中,選擇C#控制台應用程序並單擊“下一步”。

  3. 選擇最符合您需求的專案模板。 對於基礎的主控台應用程式,您可以選擇「Console App」(.NET框架).

  4. 提供專案的名稱和保存位置。 您還可以設定解決方案名稱。

  5. 選擇適當的目標框架,然後點選「建立」來生成您的專案。

4. 安裝 IronPDF

將 IronPDF 整合到您的專案可以透過多種方法完成,每種方法都能提供無縫的設置體驗。

  1. 要使用 Visual Studio NuGet 套件管理器,首先在方案中右鍵單擊「Dependencies」,然後選擇「管理 NuGet 套件」。在「瀏覽」選項卡中搜尋「IronPDF」並為您的專案安裝最新版本。

    比較 Compdfkit 與 IronPDF:圖 5 - 使用 NuGet 套件管理員搜尋 IronPDF

  2. 或者,您可以使用 NuGet 套件管理器控制台。 在 Visual Studio 中,通過導航到工具 > NuGet 套件管理員 > 套件管理員主控台,打開主控台。 一旦控制台打開,執行指令:
Install-Package IronPdf
Install-Package IronPdf
'INSTANT VB TODO TASK: The following line uses invalid syntax:
'Install-Package IronPdf
VB   C#

這種方法提供了一種通過簡單的命令行快速安裝庫的方法。

Compdfkit 與 IronPDF 的比較:圖 6 - 使用命令行輸入上述命令

  1. 對於那些喜歡直接從 NuGet 網站下載的人,請訪問IronPDF NuGet 套件頁面. 從那裡,您可以下載套件檔案。下載後,雙擊檔案將其添加到您的專案,然後重新載入您的解決方案以完成整合。

  2. 另一種方法是直接下載最新版本的IronPDF. 這可確保您擁有最新的套件。 按照網站上提供的說明手動將 IronPDF 整合到您的 Visual Studio 專案中。

    通過遵循任何這些方法,您可以高效地將IronPDF集成到您的.NET專案中。

5. 安裝 ComPDFKit C

將 ComPDFKit 添加到您的專案有兩種主要方法:使用 NuGet 套件管理器或使用本地套件。

5.1 使用 NuGet 套件管理器

  1. 打開 NuGet 套件管理器:在解決方案資源管理器中,右鍵點擊「參考」,然後選擇「管理 NuGet 套件」。

    1. 搜尋並安裝:在 NuGet 套件管理員中搜尋「ComPDFKit」。 選擇適當的套件(例如,ComPDFKit.NetFrameworkComPDFKit.Conversion.NetFramework)並點擊“安裝”。

    Compdfkit 與 IronPDF 之比較:圖 7 - 使用 NuGet 包管理器搜尋 ComPDFKit

  2. 驗證安裝:確保該套件顯示在 Solution Explorer 的「引用」下。

5.2 使用本地套件

  1. 下載套件:從 ComPDFKit 官方網站獲取 ComPDFKit.NetFramework.nupkg 文件。

    1. 配置 NuGet 原始碼:在項目目錄中創建或編輯 nuget.config 文件,以包含本地包的路徑。
<?xml version="1.0" encoding="utf-8"?>
    <configuration>
        <packageSources>
            <add key="ComPDFKitSource" value="path\to\directoryContainingNupkg" />
        </packageSources>
    </configuration>
XML
  1. 安裝本地套件:重新在 Visual Studio 中開啟您的解決方案,進入「管理 NuGet 套件」,並選擇您的本地套件來源。 從本地來源安裝ComPDFKit套件。

5.3 套用授權金鑰

  1. 取得許可:聯繫 ComPDFKit 團隊以獲取試用或完整許可。

    1. 在程式碼中套用授權證
bool LicenseVerify()
    {
        if (!CPDFSDKVerifier.LoadNativeLibrary())
            return false;
        LicenseErrorCode verifyResult = CPDFSDKVerifier.LicenseVerify("input your license here");
        return (verifyResult == LicenseErrorCode.E_LICENSE_SUCCESS);
    }
bool LicenseVerify()
    {
        if (!CPDFSDKVerifier.LoadNativeLibrary())
            return false;
        LicenseErrorCode verifyResult = CPDFSDKVerifier.LicenseVerify("input your license here");
        return (verifyResult == LicenseErrorCode.E_LICENSE_SUCCESS);
    }
Private Function LicenseVerify() As Boolean
		If Not CPDFSDKVerifier.LoadNativeLibrary() Then
			Return False
		End If
		Dim verifyResult As LicenseErrorCode = CPDFSDKVerifier.LicenseVerify("input your license here")
		Return (verifyResult = LicenseErrorCode.E_LICENSE_SUCCESS)
End Function
VB   C#

將此方法添加到您的主應用程式文件中以驗證許可證。

通過以下步驟,您可以成功將ComPDFKit整合到您的C#專案中。

6. HTML轉PDF

將 HTML 轉換為 PDF在許多應用程式中,從網頁內容動態生成報告、發票或文件是一個常見的需求。 IronPDF 和 ComPDFKit 都為此任務提供強大的解決方案,但它們的方法和功能存在顯著差異。

該過程通常從捕獲 HTML 內容開始,該內容可以是靜態的或動態生成的。 捕獲的 HTML 隨後會經過處理以應用任何相關樣式表。(CSS)和腳本(JavaScript),這確保最終的 PDF 與原始網頁的外觀和行為相匹配。

6.1. 使用 IronPDF 將 HTML 轉換為 PDF

IronPDF 是一個多功能的程式庫,用於在 C# 中將 HTML 轉換為 PDF。 它使用基于 Chrome 的渲染引擎以確保高品質輸出。 此過程涉及將 HTML、CSS 和 JavaScript 內容準確地轉換為 PDF 格式。 以下是一個使用 IronPDF 將 HTML 字串轉換為 PDF 文件的基本範例:

using IronPdf;
using System;
class Program
{
    static void Main()
    {
        // Define your HTML string
        string htmlString = @"
                <h1>Hello, IronPDF!</h1>
                <p>This is a simple PDF created from an HTML string.</p>";
        var renderer = new ChromePdfRenderer();
        // Convert the HTML string to a PDF document
        PdfDocument pdf = renderer.RenderHtmlAsPdf(htmlString);
        // Save the PDF document to a file
        string outputPath = "sample.pdf";
        pdf.SaveAs(outputPath);
        Console.WriteLine($"PDF created successfully and saved to {outputPath}");
    }
}
using IronPdf;
using System;
class Program
{
    static void Main()
    {
        // Define your HTML string
        string htmlString = @"
                <h1>Hello, IronPDF!</h1>
                <p>This is a simple PDF created from an HTML string.</p>";
        var renderer = new ChromePdfRenderer();
        // Convert the HTML string to a PDF document
        PdfDocument pdf = renderer.RenderHtmlAsPdf(htmlString);
        // Save the PDF document to a file
        string outputPath = "sample.pdf";
        pdf.SaveAs(outputPath);
        Console.WriteLine($"PDF created successfully and saved to {outputPath}");
    }
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
VB   C#

比較 Compdfkit 和 IronPDF:圖 8 - 從上述代碼輸出的範例

同樣地,您可以從 HTML 文件創建 PDF。這非常有用,因為有時 HTML 字串過大,您需要添加 CSS。 IronPDF 透過提供一種方法,直接將 HTML 檔案及其 CSS 和 JS 檔案轉換成 PDF 文件來提供幫助。

using IronPdf;
using System;
class Program
{
    static void Main()
    {
        var renderer = new ChromePdfRenderer();
        // Convert the HTML string to a PDF document
        PdfDocument pdf = renderer.RenderHtmlFileAsPdf("index.html");
        // Save the PDF document to a file
        string outputPath = "HTML File.pdf";
        pdf.SaveAs(outputPath);
        Console.WriteLine($"PDF created successfully and saved to {outputPath}");
    }
}
using IronPdf;
using System;
class Program
{
    static void Main()
    {
        var renderer = new ChromePdfRenderer();
        // Convert the HTML string to a PDF document
        PdfDocument pdf = renderer.RenderHtmlFileAsPdf("index.html");
        // Save the PDF document to a file
        string outputPath = "HTML File.pdf";
        pdf.SaveAs(outputPath);
        Console.WriteLine($"PDF created successfully and saved to {outputPath}");
    }
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
VB   C#

比較 Compdfkit 和 IronPDF:圖 9 - 使用 IronPDF 將 HTML 渲染為 PDF 的示例輸出

IronPDF 也支援將 URL 轉換為 PDF 和 HTML 檔案轉換為 PDF。 這些功能在文件管理非常重要的軟體中非常有用。 IronPDF 提供廣泛的 PDF 創建和操作功能,使其成為開發人員的強大工具。

6.2. 使用 ComPDFKit 將 HTML 轉換為 PDF 的 C# 代码

ComPDFKit 的 C# SDK 不直接支持將 HTML 轉換為 PDF。 相反,它提供了一個專門用於此目的的相關 API。 此 API 可讓您透過向其服務發送 HTTP 請求來執行 HTML 到 PDF 的轉換。

要使用 ComPDFKit 的 HTML 到 PDF API,您通常會遵循以下步驟:

  1. 發送 HTML 內容:使用您的 HTML 內容創建一個發送到 ComPDFKit API 端點的 HTTP POST 請求。

  2. 接收 PDF 輸出:API 處理 HTML 內容並返回生成的 PDF 文件。

    以下是您可能在 C# 中建構此類請求的範例:

using System;
using System.Net.Http;
using System.Threading.Tasks;
public class HtmlToPdfExample
{
    public static async Task ConvertHtmlToPdfAsync()
    {
        using (var client = new HttpClient())
        {
            var content = new StringContent("<h1>Hello World</h1>");
            var response = await client.PostAsync("https://api.compdfkit.com/html-to-pdf", content);
            var pdfBytes = await response.Content.ReadAsByteArrayAsync();
            System.IO.File.WriteAllBytes("output.pdf", pdfBytes);
        }
    }
}
using System;
using System.Net.Http;
using System.Threading.Tasks;
public class HtmlToPdfExample
{
    public static async Task ConvertHtmlToPdfAsync()
    {
        using (var client = new HttpClient())
        {
            var content = new StringContent("<h1>Hello World</h1>");
            var response = await client.PostAsync("https://api.compdfkit.com/html-to-pdf", content);
            var pdfBytes = await response.Content.ReadAsByteArrayAsync();
            System.IO.File.WriteAllBytes("output.pdf", pdfBytes);
        }
    }
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
VB   C#

這只是展示我們可以在 C# 程式中這樣使用 API。 在ComPDFKit的文檔中,沒有針對C#的具體使用方法。

7. PDF上的浮水印

在 PDF 上添加水印是許多理由的重要實踐。 它有助於保護文件的完整性,確認所有權,並增加一層安全性。 水印可以是文本、標誌或圖像,顯示在文件的背景或前景中。 它們阻止未授權使用、複製和分發內容。 此外,浮水印可以傳達文件狀態等重要信息。(例如,「機密」、「草稿」、「批准」)創作者的身份

7.1 使用 IronPDF 添加水印

IronPDF 提供了一種以編程方式向 PDF 文件添加浮水印的簡單方法。 此功能已整合進庫中,允許開發人員使用 C# 代碼應用浮水印。

using IronPdf;
using IronPdf.Editing;
License.LicenseKey = "License-Code";
string watermarkHtml = @"
<img style='width: 500px;' src=""C:\Users\Tayyab Ali\Desktop\watermark.png"">
<h1>IronPDF Watermark</h1>";
ChromePdfRenderer renderer = new ChromePdfRenderer();
PdfDocument pdf = renderer.RenderHtmlAsPdf("<h1>It's a PDF with a watermark</h1>");
// Apply watermark with 45 degrees rotation and 70% opacity
pdf.ApplyWatermark(watermarkHtml, rotation: 30, opacity: 50);
pdf.SaveAs("f://Confedential.pdf");
using IronPdf;
using IronPdf.Editing;
License.LicenseKey = "License-Code";
string watermarkHtml = @"
<img style='width: 500px;' src=""C:\Users\Tayyab Ali\Desktop\watermark.png"">
<h1>IronPDF Watermark</h1>";
ChromePdfRenderer renderer = new ChromePdfRenderer();
PdfDocument pdf = renderer.RenderHtmlAsPdf("<h1>It's a PDF with a watermark</h1>");
// Apply watermark with 45 degrees rotation and 70% opacity
pdf.ApplyWatermark(watermarkHtml, rotation: 30, opacity: 50);
pdf.SaveAs("f://Confedential.pdf");
IRON VB CONVERTER ERROR developers@ironsoftware.com
VB   C#

Compdfkit 與 IronPDF 比較:圖 10 - 上述程式碼的輸出範例顯示了使用 IronPDF 添加的浮水印。

在此範例中,ChromePdfRenderer 類別用於從 HTML 字串建立 PDF。 接著使用 ApplyWatermark 方法來套用浮水印。 水印包含一個圖像和一個標題,兩者都定義在 watermarkHtml 字串中。 將旋轉參數設置為30度,並將不透明度設置為50%,以確保浮水印可見但不會壓過主要內容。 生成的 PDF 會儲存到指定的路徑。

7.2 使用 ComPDFKit 添加浮水印

ComPDFKit 提供全面的功能,允許直接在 C# 中為 PDF 文件添加浮水印。 這可以透過使用ComPDFKit庫的方法以程式化方式完成。 以下是使用ComPDFKit添加文字水印的範例:

static private bool AddTextWatermark(CPDFDocument document)
{
    CPDFWatermark watermark = document.InitWatermark(C_Watermark_Type.WATERMARK_TYPE_TEXT);
    watermark.SetText("test");
    watermark.SetFontName("Helvetica"); 
    watermark.SetPages("0-3");
    byte[] color = { 255, 0, 0 };
    watermark.SetTextRGBColor(color);
    watermark.SetScale(2);
    watermark.SetRotation(0);
    watermark.SetOpacity(120);
    watermark.SetVertalign(C_Watermark_Vertalign.WATERMARK_VERTALIGN_CENTER);
    watermark.SetHorizalign(C_Watermark_Horizalign.WATERMARK_HORIZALIGN_CENTER);
    watermark.SetVertOffset(0);
    watermark.SetHorizOffset(0);
    watermark.SetFront(true);
    watermark.SetFullScreen(true);
    watermark.SetVerticalSpacing(10);
    watermark.SetHorizontalSpacing(10);
    watermark.CreateWatermark();
    string path = outputPath + "\\AddTextWatermarkTest.pdf";
    if (!document.WriteToFilePath(path))
    {
        return false;
    }
    Console.WriteLine("Browse the changed file in " + path);
    return true;
}
CPDFDocument document = CPDFDocument.InitWithFilePath("SamplePDF.pdf");
if (AddTextWatermark(document))
{
    Console.WriteLine("Add text watermark done.");
}
else
{
    Console.WriteLine("Add text watermark failed.");
}
static private bool AddTextWatermark(CPDFDocument document)
{
    CPDFWatermark watermark = document.InitWatermark(C_Watermark_Type.WATERMARK_TYPE_TEXT);
    watermark.SetText("test");
    watermark.SetFontName("Helvetica"); 
    watermark.SetPages("0-3");
    byte[] color = { 255, 0, 0 };
    watermark.SetTextRGBColor(color);
    watermark.SetScale(2);
    watermark.SetRotation(0);
    watermark.SetOpacity(120);
    watermark.SetVertalign(C_Watermark_Vertalign.WATERMARK_VERTALIGN_CENTER);
    watermark.SetHorizalign(C_Watermark_Horizalign.WATERMARK_HORIZALIGN_CENTER);
    watermark.SetVertOffset(0);
    watermark.SetHorizOffset(0);
    watermark.SetFront(true);
    watermark.SetFullScreen(true);
    watermark.SetVerticalSpacing(10);
    watermark.SetHorizontalSpacing(10);
    watermark.CreateWatermark();
    string path = outputPath + "\\AddTextWatermarkTest.pdf";
    if (!document.WriteToFilePath(path))
    {
        return false;
    }
    Console.WriteLine("Browse the changed file in " + path);
    return true;
}
CPDFDocument document = CPDFDocument.InitWithFilePath("SamplePDF.pdf");
if (AddTextWatermark(document))
{
    Console.WriteLine("Add text watermark done.");
}
else
{
    Console.WriteLine("Add text watermark failed.");
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
VB   C#

ComPDFKit 與 IronPDF 的比較:圖 11 - 上面的示例來自代碼輸出,展示了使用 ComPDFKit 添加的水印

在此範例中,使用 CPDFDocument 類來開啟現有的 PDF 文件。 AddTextWatermark 方法使用 InitWatermark 方法初始化文字浮水印。 水印的各種屬性設置,如文字內容、字體、顏色、比例、旋轉、不透明度、對齊和間距。 接著建立水印並應用於 PDF 文件的指定頁面。 最後,修改後的 PDF 被儲存到指定的路徑。 需要不同的方法來整合圖片浮水印。

8. PDFA

PDF/A是一種標準化的 PDF 版本,旨在長期數位保存電子文件。 確保文件符合 PDF/A 標準可保證它們能夠在未來可靠地查看和重製。 本節探討如何使用兩個流行的庫:IronPDF 和 ComPDFKit,來創建符合 PDF/A 標準的文件。

8.1 使用 IronPDF 的PDFA

IronPDF 簡化了將標準 PDF 文件轉換為符合 PDF/A 標準的文件的過程。 使用 IronPDF,您可以輕鬆地載入現有的 PDF 並將其保存為符合 PDF/A 標準的格式。

using IronPdf;
using System;
class Program
{
    static void Main()
    {
        License.LicenseKey = "License-Key";
        PdfDocument pdf = PdfDocument.FromFile("Source.pdf");
        pdf.SaveAsPdfA("pdfa-compliant.pdf", PdfAVersions.PdfA3);
    }
}
using IronPdf;
using System;
class Program
{
    static void Main()
    {
        License.LicenseKey = "License-Key";
        PdfDocument pdf = PdfDocument.FromFile("Source.pdf");
        pdf.SaveAsPdfA("pdfa-compliant.pdf", PdfAVersions.PdfA3);
    }
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
VB   C#

以下是該過程的簡要概述:

  1. 初始化 IronPDF:首先匯入 IronPDF 函式庫並設置您的授權金鑰。

  2. 載入 PDF:使用 PdfDocument.FromFile 來載入您的源 PDF 檔案。

  3. 轉換並儲存:透過指定所需的 PDF/A 版本並儲存生成的文件來將載入的 PDF 轉換為 PDF/A。

    這種簡單的方法使 IronPDF 成為處理 PDF/A 轉換的便利選擇。

8.2 使用 ComPDFKit 的 PDFA

ComPDFKit 提供將 PDF 轉換為 PDF/A 格式的強大解決方案。 該過程包括初始化 PDF 文件、定義輸出路徑以及調用轉換方法。

static public bool CovertToPDFA1a(CPDFDocument document)
{
    string convertToPDFA1aPath = outputPath + "\\ConvertToPDFA1aTest.pdf";
    if (!document.WritePDFAToFilePath(CPDFType.CPDFTypePDFA1a, convertToPDFA1aPath))
    {
        return false;
    }
    Console.WriteLine("Browse the changed file in " + convertToPDFA1aPath);
    return true;
}
CPDFDocument document = CPDFDocument.InitWithFilePath("CommonFivePage.pdf");
if (!Directory.Exists(outputPath))
{
    Directory.CreateDirectory(outputPath);
}
if (CovertToPDFA1a(document))
{
    Console.WriteLine("Convert to PDF/A-1a done.");
}
else
{
    Console.WriteLine("Convert to PDF/A-1a failed.");
}
static public bool CovertToPDFA1a(CPDFDocument document)
{
    string convertToPDFA1aPath = outputPath + "\\ConvertToPDFA1aTest.pdf";
    if (!document.WritePDFAToFilePath(CPDFType.CPDFTypePDFA1a, convertToPDFA1aPath))
    {
        return false;
    }
    Console.WriteLine("Browse the changed file in " + convertToPDFA1aPath);
    return true;
}
CPDFDocument document = CPDFDocument.InitWithFilePath("CommonFivePage.pdf");
if (!Directory.Exists(outputPath))
{
    Directory.CreateDirectory(outputPath);
}
if (CovertToPDFA1a(document))
{
    Console.WriteLine("Convert to PDF/A-1a done.");
}
else
{
    Console.WriteLine("Convert to PDF/A-1a failed.");
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
VB   C#

以下是步驟的摘要:

  1. 初始化文件:使用 CPDFDocument.InitWithFilePath 加载 PDF 文件。

  2. 設定輸出目錄:確保輸出目錄存在,或在必要時創建它。

  3. 轉換為 PDF/A:使用 WritePDFAToFilePath 與指定的 PDF/A 類型進行轉換並保存文件。

9. 數位簽章

數位簽章對於驗證文件的真實性和完整性至關重要。 本節示範如何使用IronPDF和ComPDFKit將數位簽章添加到PDF中。

9.1 IronPDF 的數位簽名

IronPDF 提供一種簡單有效的方法來為 PDF 文件應用數位簽名。

using IronPdf;
using IronPdf.Signing;
class Program
{
    static void Main(string[] args)
    {
        var simpleSignature = new IronPdf.Signing.PdfSignature("MyCert.p12", "newpassword");
        simpleSignature.SignPdfFile("sample.pdf");
    }
}
using IronPdf;
using IronPdf.Signing;
class Program
{
    static void Main(string[] args)
    {
        var simpleSignature = new IronPdf.Signing.PdfSignature("MyCert.p12", "newpassword");
        simpleSignature.SignPdfFile("sample.pdf");
    }
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
VB   C#

該過程涉及:

  1. 初始化 IronPDF:匯入必要的 IronPDF 庫。

  2. 建立簽名:使用證書文件和密碼初始化PdfSignature物件。

  3. 簽署 PDF:使用 SignPdfFile 將簽名應用於 PDF。

    此方法可確保您的 PDF 文件獲得安全的簽名,增強其可信度和安全性。

9.2 使用 CompDFKit 的數位簽章

ComPDFKit 提供了一個完整的解決方案,用於創建數位簽名,並具備豐富的自訂選項。

private static void CreateDigitalSignature(CPDFDocument document, string certificatePath, string password)
{
    Console.WriteLine("--------------------");
    Console.WriteLine("Create digital signature.");
    CPDFSignatureCertificate certificate = CPDFPKCS12CertHelper.GetCertificateWithPKCS12Path("Certificate.pfx", "ComPDFKit");
    CPDFPage page = document.PageAtIndex(0);
    CPDFSignatureWidget signatureField = page.CreateWidget(C_WIDGET_TYPE.WIDGET_SIGNATUREFIELDS) as CPDFSignatureWidget;
    signatureField.SetRect(new CRect(28, 420, 150, 370));
    signatureField.SetWidgetBorderRGBColor(new byte[] { 0, 0, 0 });
    signatureField.SetWidgetBgRGBColor(new byte[] { 150, 180, 210 });
    signatureField.UpdateAp();
    string name = GetGrantorFromDictionary(certificate.SubjectDict) + "\n";
    string date = DateTime.Now.ToString("yyyy.MM.dd HH:mm:ss");
    string reason = "I am the owner of the document.";
    string location = certificate.SubjectDict["C"];
    string DN = certificate.Subject;
    CPDFSignatureConfig signatureConfig = new CPDFSignatureConfig
    {
        Text = GetGrantorFromDictionary(certificate.SubjectDict),
        Content =
        "Name: " + name + "\n" +
        "Date: " + date + "\n" +
        "Reason: " + reason + " \n" +
        "Location: " + location + "\n" +
        "DN: " + DN + "\n",
        IsContentAlignLeft = false,
        IsDrawLogo = true,
        LogoBitmap = new Bitmap("Logo.png"),
        TextColor = new float[] { 0, 0, 0 },
        ContentColor = new float[] { 0, 0, 0 }
    };
    string filePath = outputPath + "\\" + document.FileName + "_Signed.pdf";
    signatureField.UpdataApWithSignature(signatureConfig);
    if (document.WriteSignatureToFilePath(signatureField,
        filePath,
        certificatePath, password,
        location,
        reason, CPDFSignaturePermissions.CPDFSignaturePermissionsNone))
    {
        Console.WriteLine("File saved in " + filePath);
        Console.WriteLine("Create digital signature done.");
    }
    else
    {
        Console.WriteLine("Create digital signature failed.");
    }
    Console.WriteLine("--------------------");
}
private static void CreateDigitalSignature(CPDFDocument document, string certificatePath, string password)
{
    Console.WriteLine("--------------------");
    Console.WriteLine("Create digital signature.");
    CPDFSignatureCertificate certificate = CPDFPKCS12CertHelper.GetCertificateWithPKCS12Path("Certificate.pfx", "ComPDFKit");
    CPDFPage page = document.PageAtIndex(0);
    CPDFSignatureWidget signatureField = page.CreateWidget(C_WIDGET_TYPE.WIDGET_SIGNATUREFIELDS) as CPDFSignatureWidget;
    signatureField.SetRect(new CRect(28, 420, 150, 370));
    signatureField.SetWidgetBorderRGBColor(new byte[] { 0, 0, 0 });
    signatureField.SetWidgetBgRGBColor(new byte[] { 150, 180, 210 });
    signatureField.UpdateAp();
    string name = GetGrantorFromDictionary(certificate.SubjectDict) + "\n";
    string date = DateTime.Now.ToString("yyyy.MM.dd HH:mm:ss");
    string reason = "I am the owner of the document.";
    string location = certificate.SubjectDict["C"];
    string DN = certificate.Subject;
    CPDFSignatureConfig signatureConfig = new CPDFSignatureConfig
    {
        Text = GetGrantorFromDictionary(certificate.SubjectDict),
        Content =
        "Name: " + name + "\n" +
        "Date: " + date + "\n" +
        "Reason: " + reason + " \n" +
        "Location: " + location + "\n" +
        "DN: " + DN + "\n",
        IsContentAlignLeft = false,
        IsDrawLogo = true,
        LogoBitmap = new Bitmap("Logo.png"),
        TextColor = new float[] { 0, 0, 0 },
        ContentColor = new float[] { 0, 0, 0 }
    };
    string filePath = outputPath + "\\" + document.FileName + "_Signed.pdf";
    signatureField.UpdataApWithSignature(signatureConfig);
    if (document.WriteSignatureToFilePath(signatureField,
        filePath,
        certificatePath, password,
        location,
        reason, CPDFSignaturePermissions.CPDFSignaturePermissionsNone))
    {
        Console.WriteLine("File saved in " + filePath);
        Console.WriteLine("Create digital signature done.");
    }
    else
    {
        Console.WriteLine("Create digital signature failed.");
    }
    Console.WriteLine("--------------------");
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
VB   C#

步驟包括:

  1. 初始化文件和證書:使用 CPDFPKCS12CertHelper 加載 PDF 文件並檢索證書。

  2. 建立和配置簽名欄位:添加簽名欄位到 PDF,設置其屬性,並配置簽名詳情。

  3. 應用簽名:使用 WriteSignatureToFilePath 來應用簽名並儲存已簽名的 PDF。

10. 擷取文本

從 PDF 文件中提取文字對於各種數據處理和分析任務來說至關重要。 本節說明如何使用IronPDF和ComPDFKit從PDF中提取文字。

10.1 使用 IronPDF 提取文字

IronPDF 提供了一種簡單的方法從 PDF 文件中提取文本。

using IronPdf;
using System.IO;
PdfDocument pdf = PdfDocument.FromFile("PDF File With Text.pdf");
string text = pdf.ExtractAllText();
File.WriteAllText("PDF Text.txt", text);
using IronPdf;
using System.IO;
PdfDocument pdf = PdfDocument.FromFile("PDF File With Text.pdf");
string text = pdf.ExtractAllText();
File.WriteAllText("PDF Text.txt", text);
IRON VB CONVERTER ERROR developers@ironsoftware.com
VB   C#

該過程涉及:

  1. 初始化 IronPDF:匯入 IronPDF 程式庫。

  2. 載入 PDF:使用 PdfDocument.FromFile 來載入 PDF 檔案。

  3. 提取文本:呼叫 ExtractAllText 以從 PDF 中檢索所有文本內容。

  4. 儲存文本至文件:使用標準文件 I/O 操作將提取的文本寫入文件。

    此方法提供了一種簡單高效的方式來提取並保存 PDF 文件中的文本。

10.2 使用 ComPDFKit 提取文本

ComPDFKit 提供了一個靈活的解決方案,用於從 PDF 文件中提取文本。

static private bool PDFToText(CPDFDocument document)
{
    string path = outputPath + "//PDFToText.txt";
    if (!document.PdfToText("1-" + document.PageCount.ToString(), path))//Page ranges are counted from 1
    {
        return false;
    }
    Console.WriteLine("Browse the generated file in " + path);
    return true;
}
static void Main(string[] args)
{
    #region Perparation work
    Console.WriteLine("Running PDFPage test sample…\r\n");
    SDKLicenseHelper.LicenseVerify();
    CPDFDocument document = CPDFDocument.InitWithFilePath("CommonFivePage.pdf");
    if (!Directory.Exists(outputPath))
    {
        Directory.CreateDirectory(outputPath);
    }
    #endregion
    if (PDFToText(document))
    {
        Console.WriteLine("PDF to text done.");
    }
    else
    {
        Console.WriteLine("PDF to text failed.");
    }
    Console.WriteLine("--------------------");
    Console.WriteLine("Done!");
    Console.WriteLine("--------------------");
    Console.ReadLine();
}
static private bool PDFToText(CPDFDocument document)
{
    string path = outputPath + "//PDFToText.txt";
    if (!document.PdfToText("1-" + document.PageCount.ToString(), path))//Page ranges are counted from 1
    {
        return false;
    }
    Console.WriteLine("Browse the generated file in " + path);
    return true;
}
static void Main(string[] args)
{
    #region Perparation work
    Console.WriteLine("Running PDFPage test sample…\r\n");
    SDKLicenseHelper.LicenseVerify();
    CPDFDocument document = CPDFDocument.InitWithFilePath("CommonFivePage.pdf");
    if (!Directory.Exists(outputPath))
    {
        Directory.CreateDirectory(outputPath);
    }
    #endregion
    if (PDFToText(document))
    {
        Console.WriteLine("PDF to text done.");
    }
    else
    {
        Console.WriteLine("PDF to text failed.");
    }
    Console.WriteLine("--------------------");
    Console.WriteLine("Done!");
    Console.WriteLine("--------------------");
    Console.ReadLine();
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
VB   C#

步驟如下:

  1. 初始化文件:使用 CPDFDocument.InitWithFilePath 加载 PDF 文件。

  2. 設定輸出目錄:確保輸出目錄存在,或在必要時創建它。

  3. 提取並儲存文本:使用 PdfToText 從指定的頁範圍提取文本並將其儲存到檔案中。

11. 授權

IronPDF 和 ComPDFKit 的授權模式在方法和使用條款上有所不同。 了解這些差異可以幫助您為專案的需求和預算選擇合適的工具。

11.1 IronPDF 授權

Compdfkit與IronPDF之比較:圖12 - IronPDF授權頁面

IronPDF 採用商業授權模式,這意味著對於商業或業務相關應用,一般需要購買許可。 此模型提供靈活性,包括免版稅分發等選項。 這使得開發人員可以在不產生執行時額外成本的情況下將該庫整合到他們的專案中。

IronPDF 提供永久授權。 永久授權需要一次性付款即可終身使用,並可選擇支付更新和超出最初階段的技術支援費用。 這種商業模式確保企業能夠獲得專屬支援、完整的文檔以及專業 PDF 生成和操作所需的高級功能存取。

11.2 ComPDFKit 授權

ComPDFKit 採用靈活的授權模式,滿足不同的業務需求。 它提供永久授權和訂閱授權。 永久授權涉及一次性付款,授予SDK的終身訪問權,並可選擇支付更新和延長支持的費用。 訂閱許可證需要定期付款(每月或每年)並包括持續獲得更新和支援的訪問權限。

在選擇 IronPDF 和 ComPDFKit 之間時,請考慮您專案的具體需求,例如是否需要專門支援、預算限制,以及部署的規模。 IronPDF 的商業模式更適合尋求強大支援和進階功能的企業。

12. 文件和支援

12.1. IronPDF 文件及支援

IronPDF 為其用戶提供全面的文檔和強大的支持選項。 文件說明詳盡且詳細,提供關於安裝、基本使用、高級功能和故障排除的明確指導。 官方文件可在以下網址查看閱讀文檔,包括快速入門指南、詳細的 API 參考和大量代碼範例,以幫助開發人員開始並有效地使用 IronPDF 的功能。

IronPDF 也通過其部落格和範例部分維護一個活躍的故障排除指南和技術支持網站,使用者可以在這裡找到常見問題的解決方案,例如渲染延遲和部署挑戰。 支援網站包含一系列文章,解決常見問題和特定技術問題。

為了提供直接支持,IronPDF 提供了一個反應迅速的客戶服務團隊,可以在遇到更複雜的問題或需要個人化協助時進行聯繫。 IronPDF 擁有廣泛的文件和強大的支援基礎設施,這使得它成為開發人員在其應用程式中整合 PDF 功能的可靠選擇。

12.2. ComPDFKit 文件和支援

ComPDFKit 亦為其用戶提供詳細的文件和支援資源。 它涵蓋了使用 SDK 的各個方面,從基本設置到進階功能,如浮水印和數位簽章。 如需支援,ComPDFKit 透過其客戶服務渠道提供技術協助。 支援團隊可幫助解決技術問題、回答問題,並提供有關有效使用 SDK 的指導。

雖然 IronPDF 和 ComPDFKit 都提供充實的文檔和支援,IronPDF 在更全面的故障排除指南和高度響應的支援團隊方面具有優勢。 這對於可能面臨複雜技術挑戰且需要可靠協助的開發人員來說尤為有利。

13. 結論

IronPDF 與 ComPDFKit 的比較突顯了開發者在尋找強大的 C# 庫進行 PDF 生成和操作時的優勢和考量。

ComPDFKit 是一個綜合性的 PDF SDK,支持處理 PDF 文件所需的廣泛功能。 它在 PDF 註釋方面表現出色,具有廣泛的編輯功能。 其格式轉換和安全選項等功能為開發者增添了顯著的價值。

另一方面,IronPDF以其强大且用户友好的 API 而闻名。 它通過從 HTML、CSS 和 JavaScript 生成 PDF,使 PDF 生成簡化。 IronPDF 在 HTML 到 PDF 的轉換中表現出色,並提供與 .NET 應用程式的無縫整合。 該程式庫提供廣泛的編輯功能,包括新增標頭、頁尾、浮水印和數位簽章。

IronPDF 的安全功能確保 PDF 文件中的敏感資訊得到良好保護。 它對多個 .NET 平台的支持以及針對高工作負載的優化性能,使其成為企業級應用程式的理想選擇。 IronPDF 的商業授權模式確保專業支援、完整的文件以及先進功能的存取,使其特別適合專業級專案。

IronPDF 相較於 ComPDFKit,作為尋求完善且功能豐富的 PDF 庫的開發者來說,是一個強大的選擇。 其先進的功能、用戶友好的 API 和強大的支持基礎設施,使其成為企業和具有多樣化及高需求 PDF 相關要求的項目的首選解決方案。 IronPDF 的強大功能和專業支援提供了顯著的優勢,確保專業應用中可靠且高效的 PDF 生成和操作。

總之,IronPDF 和 ComPDFKit 都是用於 C# 的強大 PDF 處理工具。 然而,IronPDF 廣泛的功能集、優化的性能和卓越的支持使其成為開發人員尋求專業和企業級應用程序的首選。

IronPDF 提供一個免費試用授權以供用戶嘗試該庫及其功能。 IronPDF 授權的起始價格為 $749。 此外,Iron Software 提供九個函式庫,僅以兩個的價格銷售,其中包括IronXLIronOCR以及 IronPDF。

< 上一頁
CraftMyPDF 和 IronPDF 的比較
下一個 >
報告 .NET 與 IronPDF 的比較

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

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