產品比較

Compdfkit 與 IronPDF 的比較

Chipego
奇佩戈·卡林达
2024年8月13日
分享:

PDF,全名為可攜式文檔格式,是由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 檔案轉換為各種格式,例如 Word、Excel、PowerPoint 和圖像,以及將其從這些格式轉換回來。 這種彈性對於需要將 PDF 內容轉換為不同用途的應用程式至關重要。

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

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

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

2. IronPDF 程式庫

Compdfkit與IronPDF之間的比較: 圖2 - IronPDF主頁

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

IronPDF 的主要功能

  1. HTML 轉換為 PDF:IronPDF 在將 HTML、CSS 和 JavaScript 內容轉換為高質量的 PDF 文檔方面表現出色。 此功能支援HTML字串轉換為PDF、URL、ASPX網頁表單和MVC視圖,使其成為針對各種基於網路內容的靈活解決方案。

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

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

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

  5. OCR 和資料擷取:該程式庫包含光學字符識別(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 應用程式。

    Compdfkit和IronPDF的比較:圖4 - IronPDF和DinkToPdf的比較:圖2 - 在創建新專案對話框中,選擇C#控制台應用程式並點擊下一步。

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

  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

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

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

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

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

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

5. 安裝 ComPDFKit C

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

5.1 使用 NuGet 套件管理器

  1. 開啟 NuGet 套件管理員:在方案總管中,右鍵點擊「References」,然後選擇「管理 NuGet 套件」。

  2. 搜尋並安裝:在 NuGet 套件管理器中搜尋 "ComPDFKit"。 選擇合適的套件(例如,ComPDFKit.NetFrameworkComPDFKit.Conversion.NetFramework),然後點擊“安裝”。

    Compdfkit 與 IronPDF 的比較:圖 7 - 使用 NuGet 套件管理器搜尋 ComPDFKit

  3. 驗證安裝:確保該套件顯示在方案總管中的「參考」下。

5.2 使用本地套件

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

  2. 配置 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 團隊以取得試用或完整許可證。

  2. 在程式碼中應用授權
    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);
    }

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

通過以下步驟,您可以成功將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}");
    }
}

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}");
    }
}

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

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

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

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

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

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

  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);
        }
    }
}

這只是展示我們可以在 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://Confidential.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://Confidential.pdf");

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.");
}

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);
    }
}

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

  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.");
}

以下是步驟的摘要:

  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");
    }
}

該過程涉及:

  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("--------------------");
}

步驟包括:

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

該過程涉及:

  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();
}

步驟如下:

  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 為其用戶提供全面的文檔和強大的支持選項。 文件說明詳盡且詳細,提供關於安裝、基本使用、高級功能和故障排除的明確指導。 官方文件可在Read the Docs上獲得,其中包括快速入門指南、詳細的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。

Chipego
奇佩戈·卡林达
軟體工程師
Chipego 擁有天生的傾聽技能,這幫助他理解客戶問題,並提供智能解決方案。他在獲得信息技術理學學士學位後,于 2023 年加入 Iron Software 團隊。IronPDF 和 IronOCR 是 Chipego 專注的兩個產品,但隨著他每天找到新的方法來支持客戶,他對所有產品的了解也在不斷增長。他喜歡在 Iron Software 的協作生活,公司內的團隊成員從各自不同的經歷中共同努力,創造出有效的創新解決方案。當 Chipego 離開辦公桌時,他常常享受讀好書或踢足球的樂趣。
< 上一頁
CraftMyPDF 和 IronPDF 的比較
下一個 >
報告 .NET 與 IronPDF 的比較