产品比较

使用 Byte 数组创建 PDF C# iTextSharp(与 IronPDF相比)

Chipego
奇佩戈-卡琳达
2023年五月30日
分享:

1.0 简介

Adobe 开发了可移植文档格式,以便于共享基于文本和图像的文档(PDF)。 要查看 PDF 图像文件,必须使用不同的应用程序。 在当今文化中,许多企业使用 PDF 文档来完成各种任务,包括准备发票和其他文书工作。

开发人员还可使用现有的 PDF 文件格式,制作符合客户规格的文件或图像文件。 幸运的是,简化流程的程序库让 PDF 的制作变得前所未有的简单。 在为您的项目选择资料库时,请考虑构建、读取和转换能力等因素,以便选择最合适的资料库。

在本篇文章中,我们将比较两个使用最广泛的 Dot NET PDF 库。 它们是

  • iText PDF
  • IronPDF

    在您的 Microsoft.NET 应用程序或项目中,您可以使用 IronPDF 或 iText PDF 库创建、读取和修改 PDF。 我们将首先了解这两个库的功能,而不是直接讨论整体性能、转换和处理 PDF 的费用,以便确定哪个库更适合您的应用。 Microsoft.NET Framework 支持这两种库。 此外,每个图书馆的持续时间都将被记录下来,供参考和日后研究之用。 要了解比较,请点击这里

2.图书馆特色

2.1 iText PDF 功能

一个可以将文本转换成 PDF 文件的 Java 库和系统被称为 iText PDF。 文本遵循 AGPL 软件许可模式。 AGPL 软件许可证是免费和开源的。

  • 可通过 iText 库使用 API 生成 PDF 文件。
  • HTML 和 XML 字符串均可使用 iText 程序的变量阅读器解析为 PDF 格式。
  • 我们可以使用 iText 库为 PDF 文档添加书签、页码和标记。
  • 我们可以使用 iText 库将 PDF 文件分割成多个 PDF 文件,或将多个 PDF 文件合并成一个 PDF 文件。
  • 我们可以使用 iText 编辑 PDF 中的表格。
  • 使用 PNG、JPEG 和其他图像格式的图像,iText 还能制作 PDF。
  • iText 库提供了一个 Canvas 类,可用于在已有文本上绘制不同的几何图形。
  • 在 PDF 文档中,iText 提供了一个可以添加和编辑字体和图像的工具。

2.2 IronPDF 功能

开发人员可以借助强大的 PDF .NET 库 IronPDF 快速制作、读取和更改 PDF 文件。 IronPDF 以 Chrome 引擎为核心,提供丰富实用的强大功能,包括将 HTML5、JavaScript、CSS 和图片文件转换为 PDF,添加独特的页眉和页脚,以及精确生成与网页浏览器中一样的 PDF。 IronPDF for .NET 支持各种 Web 和 .NET 格式,包括 HTML、ASPX、Razor View 和 MVC。 IronPDF 的主要属性如下:

  • 在 Dot NET C# 程序中轻松创建、阅读和编辑 PDF 文件。
  • 通过网站 URL 链接创建 PDF,该 URL 链接具有用户代理、代理、Cookie、HTTP 标头和表单变量设置,支持使用 HTML 登录表单进行登录。
  • 从已有的 PDF 出版物中删除照片。
  • 在 PDF 文件中添加文本、照片、书签、水印和其他元素。
  • 该功能可轻松合并和分割多个 PDF 文档的页面。
  • 将媒体类型资产(包括 CSS 文件)转化为文档的能力。

3.0 安装图书馆

3.1 安装 iText7

首先使用 NuGet 软件包管理器查找 iText。 必须同时安装 iText7 和 iText.pdfhtml,因为这些软件包的功能分散在多个软件包中。

从字节数组创建 PDF C# iTextSharp(与 IronPDF 比较)图 1 - iText7

如果您喜欢使用 Visual Studio Command-Line,请安装以下软件包:

Install-Package itext7 && Install-Package itext7.pdfhtml

由于 iText7 是最新版本,我们在解决方案中使用了它。

3.2 安装 IronPDF 库

如下图所示,我们可以在软件包管理器中轻松搜索 "IronPDF":

从字节数组创建 PDF C# iTextSharp(与 IronPDF 比较)图 2 - IronPDF

相关搜索结果列表显示在上图中。 要在机器上安装软件包,请选中必要的复选框。

如果要使用命令行安装软件包,请在软件包管理器的终端选项卡中添加以下一行:

:PackageInstall

现在软件包已准备就绪,将下载并安装到当前项目中。

4.0 PDF 创建

4.1 使用 iTextSharp

我们可以使用从 iText 文档 doc 生成的公共静态字节数组创建 PDF 文档。 下面是借助 iText PDF 库创建新文档的示例。

using iText.Kernel.Pdf;
using iText.Layout;
using iText.Layout.Element;
using iText.Layout.Properties;
using System.IO;
using iText.Kernel.Geom;
using iText.Html2pdf;

var html = "<h1>Hello world</h1>";
//byte array
byte [] result;
//create new MemoryStream using var ms
using (var ms = new MemoryStream())
{
    //new document
    var doc = new PdfDocument(new PdfWriter(ms));
    doc.SetDefaultPageSize(PageSize.A4);
    doc.SetTagged();
    HtmlConverter.ConvertToPdf(html, doc, new ConverterProperties());
    result = ms.ToArray();
}
File.WriteAllBytes(@"test.pdf", result);
using iText.Kernel.Pdf;
using iText.Layout;
using iText.Layout.Element;
using iText.Layout.Properties;
using System.IO;
using iText.Kernel.Geom;
using iText.Html2pdf;

var html = "<h1>Hello world</h1>";
//byte array
byte [] result;
//create new MemoryStream using var ms
using (var ms = new MemoryStream())
{
    //new document
    var doc = new PdfDocument(new PdfWriter(ms));
    doc.SetDefaultPageSize(PageSize.A4);
    doc.SetTagged();
    HtmlConverter.ConvertToPdf(html, doc, new ConverterProperties());
    result = ms.ToArray();
}
File.WriteAllBytes(@"test.pdf", result);
Imports iText.Kernel.Pdf
Imports iText.Layout
Imports iText.Layout.Element
Imports iText.Layout.Properties
Imports System.IO
Imports iText.Kernel.Geom
Imports iText.Html2pdf

Private html = "<h1>Hello world</h1>"
'byte array
Private result() As Byte
'create new MemoryStream var ms
Using ms = New MemoryStream()
	'new document
	Dim doc = New PdfDocument(New PdfWriter(ms))
	doc.SetDefaultPageSize(PageSize.A4)
	doc.SetTagged()
	HtmlConverter.ConvertToPdf(html, doc, New ConverterProperties())
	result = ms.ToArray()
End Using
File.WriteAllBytes("test.pdf", result)
$vbLabelText   $csharpLabel

上例显示,我们正在根据给定的 HTML 字符串创建 PDF 文档。 首先,我们创建MemoryStream来保存数据。 然后我们创建PdfWriter并将MemoryStream作为参数传递,以存储数据。 然后我们使用HtmlConverter创建PDF文件。 之后,所有输出都已保存到MemoryStream中。 然后,我们将数据转换为字节,然后使用 File 类将MemoryStream ms 保存到一个新文件,如下所示。

从字节数组创建 PDF C# iTextSharp(与 IronPDF 比较)图 3 - 输出

4.2 使用 IronPDF

IronPDF 只需几行代码就能轻松创建 PDF 文件。 以下是使用 IronPDF 创建 PDF 文件的示例代码。

var html = "<h1>Hello world</h1>";
var pdf = new IronPdf.ChromePdfRenderer();
var bytedata=pdf.RenderHtmlAsPdf(html).BinaryData;
File.WriteAllBytes(@"test.pdf", bytedata);
var html = "<h1>Hello world</h1>";
var pdf = new IronPdf.ChromePdfRenderer();
var bytedata=pdf.RenderHtmlAsPdf(html).BinaryData;
File.WriteAllBytes(@"test.pdf", bytedata);
Dim html = "<h1>Hello world</h1>"
Dim pdf = New IronPdf.ChromePdfRenderer()
Dim bytedata=pdf.RenderHtmlAsPdf(html).BinaryData
File.WriteAllBytes("test.pdf", bytedata)
$vbLabelText   $csharpLabel

在第一步中,我们创建了一个ChromePdfRenderer对象,该对象有助于创建PDF文件。然后我们使用RenderHtmlAsPdf方法将HTML数据添加到PDF文档中。 然后,我们将数据转换为字节数组。 最后一步是使用文件,它可以帮助我们将字节数组转换为 PDF 文件。输出结果如下。

从字节数组创建 PDF C# iTextSharp(与 IronPDF 对比)图 4 - IronPDF 输出

有关更多代码教程,请点击此处

5.0 结论

iText7 是常用的 PDF 库之一。 iText 代码非常复杂,不适合初学者。 要在用户应用程序中使用该库,我们需要对其有基本的了解。 iText 生成的 PDF 文件空间很大,因此在生成多页文件时可能会影响用户内存。 与其他软件包不同,iText7 将程序库分为多个软件包。 iText7 与多个软件包存在依赖关系。 我们需要下载所有软件包才能运行,这可能会增加应用程序的大小。 iText 免费提供开发许可证和商业许可证。 点击此处了解更多关于iText许可证的信息。

另一方面,IronPDF 使用方便简单。 只需几行代码,我们就能创建 PDF 文件。 它适合初学者使用,无需任何基础知识。 IronPDF 不依赖任何其他软件包。 它是一个单独运行的软件包。 除了提供免费许可证外,开发人员还可以根据自己的需要选择购买各种许可证。 $749 Lite 版本确实包含所有库功能,例如永久许可证、30 天退款保证、一年的软件支持、升级以及用于 SaaS 和 OEM 重新分发的可能性。 此外,它还不包括经常性开支。 这些许可证是一次性购买,可用于开发、暂存和生产。 此外,IronPDF 还提供有时限、不可分发的免费许可证。 请点击此处查看IronPDF价格和授权信息的详细分解。

Chipego
软件工程师
Chipego 拥有出色的倾听技巧,这帮助他理解客户问题并提供智能解决方案。他在 2023 年加入 Iron Software 团队,此前他获得了信息技术学士学位。IronPDF 和 IronOCR 是 Chipego 主要专注的两个产品,但他对所有产品的了解每天都在增长,因为他不断找到支持客户的新方法。他喜欢 Iron Software 的合作氛围,公司各地的团队成员贡献他们丰富的经验,以提供有效的创新解决方案。当 Chipego 离开办公桌时,你经常可以发现他在看书或踢足球。
< 前一页
IronPDF和Foxit PDF SDK的比较
下一步 >
iTextSharp 与 IronPDF 编辑 PDF 的比较