产品比较

Compdfkit与IronPDF比较

发布 2024年八月13日
分享:

PDFPDF(Portable Document Format 的缩写)是由 Adobe 创建的一种文件类型,用以确保文档共享的统一性。 此格式在不同的设备和操作系统中保持布局、文本和图像的一致性。 PDF因其安全性、互动功能和紧凑大小而闻名,非常适合分发文档而不更改原始内容。

对于使用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功能。

1.1 ComPDFKit的主要功能

  1. PDF查看:ComPDFKit提供了一个强大的PDF查看器,允许用户高保真查看PDF文档。 该查看器支持平滑滚动、缩放和导航,确保无缝的用户体验。
  2. 注释:该库包括工具以顺畅整合PDF注释。 用户可以高亮显示文本、添加评论以及创建各种类型的注释,这对于协作工作流程至关重要。
  3. 表单处理:该库为交互式表单提供了广泛的支持。 开发人员可以创建、填充并从 PDF 表格中提取数据,非常适合需要表格处理的应用程序。
  4. PDF编辑:ComPDFKit支持广泛的PDF编辑功能,包括修改PDF文件中的文本、图像和其他内容。 此功能适用于需要更新或自定义现有PDF文档的应用程序。
  5. 转换:该库支持将PDF文件转换为Word、Excel、PowerPoint和图像等多种格式,以及从这些格式转换回PDF文件。 这种灵活性对于需要将PDF内容转换用于不同用途的应用程序至关重要。
  6. 安全性:ComPDFKit 包含了强大的安全功能,如加密和权限管理。 开发者可以保护 PDF 文档,以防止敏感信息被未经授权的访问。
  7. 光学字符识别 (光学字符识别): 该库包括OCR功能,可以将扫描的文档转换为可编辑和可搜索的PDF。 此功能对于数字化纸质文件并使其电子化访问至关重要。

    ComPDFKit 提供了一套全面的 API,简化了这些功能在各种应用程序中的集成。 它的广泛文档和支持使其成为开发人员在项目中整合高级PDF功能的绝佳选择。

2. IronPDF 库

比较Compdfkit和IronPDF:图2 - IronPDF主页

IronPDF IronPDF是一个多功能的.NET PDF库,允许开发者使用C#创建、编辑和管理PDF文档。 它提供全面的PDF功能。 它旨在通过从HTML、CSS、JavaScript和各种图像格式渲染PDF来简化PDF生成。 这使它成为开发者希望在其.NET应用程序中集成强大的PDF功能的理想工具。

IronPDF 的主要功能

  1. HTML转PDF转换:IronPDF擅长将HTML、CSS和JavaScript内容转换成高质量的PDF文档。 此功能支持 从HTML字符串生成PDF,URLs、ASPX Web表单和MVC视图,使其成为各种基于Web的内容的灵活解决方案。
  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。 如果您还没有下载和安装,请从这里下载。 链接 并安装它。

步骤 2:打开 Visual Studio

安装完 Visual Studio 后,打开它。 如果您有 Visual Studio Community,您可以选择登录或继续而不登录。

步骤 3:创建新项目

  1. 点击“创建新项目”或导航至文件 > 新建 > 项目。

    Compdfkit和IronPDF之间的比较:图3 - IronPDF和DinkToPdf之间的比较:图1

  2. 在搜索栏中搜索控制台应用程序,并从搜索结果中选择控制台应用程序。

    Compdfkit与IronPDF的比较: 图4 - IronPDF与DinkToPdf的比较: 图2 - 在创建新项目的对话框中,选择C#控制台应用并点击下一步。

  3. 选择最适合您需求的项目模板。 对于基本的控制台应用程序,您可以选择“控制台应用程序”。 (.NET框架)."
  4. 请提供您的项目名称和保存位置。 您还可以设置解决方案名称。
  5. 选择合适的目标框架并点击“创建”以生成您的项目。

4.安装 IronPDF

将 IronPDF 集成到您的项目中可以通过多种方法进行,每种方法都提供无缝的设置体验。

  1. 要使用 Visual Studio NuGet 包管理器,请首先右键点击解决方案中的“依赖关系”并选择“管理 NuGet 包”。在“浏览”标签中,搜索“IronPDF”并为您的项目安装最新版本。

    Compdfkit 与 IronPDF 的比较:图 5 - 使用 NuGet 包管理器搜索 IronPDF

  2. 您也可以使用 NuGet 包管理器控制台。 在 Visual Studio 中,通过导航到 Tools > NuGet Package Manager > Package Manager Console 来打开控制台。 一旦控制台打开,执行命令:
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. 验证安装:确保包在解决方案资源管理器中的“引用”下显示。

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 version="1.0" encoding="utf-8"?>
    <configuration>
        <packageSources>
            <add key="ComPDFKitSource" value="path\to\directoryContainingNupkg" />
        </packageSources>
    </configuration>
'INSTANT VB TODO TASK: The following line uses invalid syntax:
'<?xml version="1.0" encoding="utf-8"?> <configuration> <packageSources> <add key="ComPDFKitSource" value="path" + vbTab + "o\directoryContainingNupkg" /> </packageSources> </configuration>
VB   C#
  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 C#将HTML转换为PDF

ComPDFKit 在其 C# SDK 中不直接支持 HTML 到 PDF 的转换。 相反,它为此目的提供了一个专门的API。 此 API 允许您通过对其服务进行 HTTP 请求来执行 HTML 转 PDF 转换。

要使用 ComPDFKit HTML 到 PDF API,您通常需要遵循以下步骤:

  1. 发送HTML内容:向ComPDFKit API端点创建一个HTTP POST请求,并附上您的HTML内容。
  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. PDF/A

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 从指定的页面范围提取文本并保存到文件中。

8.许可

IronPDF和ComPDFKit的许可模式在方法和使用条款上有所不同。 了解这些差异可以帮助您为项目的需求和预算选择合适的工具。

9.1 IronPDF 许可证

Compdfkit与IronPDF比较:图12 - IronPDF许可页面

IronPDF采用商业许可模式运作,这意味着对于商业或商务相关应用,通常需要购买许可证。 此模型提供灵活性,包括免版税分发等选项。 这使得开发者可以在不增加运行时成本的情况下,将库集成到他们的项目中。

IronPDF提供永久许可证。 永久许可证需要一次性支付,以便终身使用,初期之后更新和技术支持可选择支付额外费用。 此商业模式确保企业获得专门的支持、全面的文档以及获取生成和操作专业PDF所需的高级功能的权限。

9.2 ComPDFKit 许可证管理

ComPDFKit 采用灵活的许可模式,以满足不同的商业需求。 它提供永久许可和订阅许可。 永久许可证涉及一次性付款,该付款授予对 SDK 的终生访问权限,并可选择支付更新和扩展支持的费用。 订阅许可证需要定期付款 (每月或每年) 并包括持续获取更新和支持的权限。

在选择 IronPDF 和 ComPDFKit 之间时,应考虑您项目的具体需求,如是否需要专门的支持、预算限制以及部署的规模。 IronPDF的商业模式更适合寻求强大支持和高级功能的企业。

9.文件和支持

9.1.IronPDF 文档和支持

IronPDF为用户提供全面的文档和强大的支持选项。 文档内容详尽且详细,提供了关于安装、基本使用、高级功能和故障排除的清晰指导。 官方文档可在此处获取 阅读文档,其中包括快速入门指南、详尽的 API 参考和众多代码示例,以帮助开发者开始并有效使用 IronPDF 的功能。

IronPDF还通过其博客和示例部分维护了一个活跃的故障排除指南和技术支持网站,用户可以在此找到常见问题的解决方案,如渲染延迟和部署挑战。 支持网站包含了一系列文章,解答常见问题和具体技术问题。

为了提供直接支持,IronPDF拥有一个响应迅速的客户服务团队,您可以联系他们以解决更复杂的问题或获得个性化帮助。 这种广泛的文档和强大的支持基础设施的结合使得IronPDF成为开发人员在其应用程序中整合PDF功能时的可靠选择。

9.2. ComPDFKit 文档和支持

ComPDFKit 也为其用户提供全面的文档和支持资源。 它涵盖了使用SDK的各个方面,从基本设置到高级功能,如添加水印和数字签名。 有关支持,ComPDFKit通过其客户服务渠道提供技术协助。 支持团队随时准备帮助解决技术问题、回答问题并提供如何有效使用SDK的指导。

虽然IronPDF和ComPDFKit都提供了详尽的文档和支持,但IronPDF在故障排除指南的全面性和响应迅速的支持团队方面具有优势。 这对于可能遇到复杂技术挑战并需要可靠帮助的开发者来说尤其有利。

10.结论

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作为一个功能丰富的PDF库,与ComPDFKit相比,对开发者来说是一个强有力的选择。 其先进的功能、用户友好的API和健壈的支持基础设施使其成为企业和具有多样化及苛刻PDF相关需求的项目的首选解决方案。 IronPDF的广泛功能和专业支持提供了重要的优势,确保了专业应用中可靠和高效的PDF生成和操作。

总之,IronPDF和ComPDFKit都是C#中处理PDF的强大工具。 然而,IronPDF的广泛功能集、优化性能和卓越支持使其成为专业和企业级应用开发者的首选。

IronPDF 提供了一个 免费试用许可证 让用户尝试该库及其功能。 IronPDF 许可证起价为 $749。此外,Iron Software 以两个库的成本捆绑了九个库,其中包括 IronXLIronOCR 以及 IronPDF。

< 前一页
CraftMyPDF与IronPDF的比较
下一步 >
Report .NET 与 IronPDF 的比较

准备开始了吗? 版本: 2024.9 刚刚发布

免费NuGet下载 总下载量: 10,731,156 查看许可证 >