产品比较

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

发布 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)
VB   C#

上例显示,我们正在根据给定的 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)
VB   C#

第一步,我们为 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 不依赖任何其他软件包。 它是一个单独运行的软件包。 除了提供免费许可证外,开发人员还可以根据自己的需要选择购买各种许可证。 $liteLicense` 精简版确实包含所有库功能,如永久许可、30 天退款保证、一年软件支持、升级以及 SaaS 和 OEM 再分发的可能性。 此外,它还不包括经常性开支。 这些许可证是一次性购买,可用于开发、暂存和生产。 此外,IronPDF 还提供有时限、不可分发的免费许可证。 请点击这里详细了解 IronPDF 价格和许可信息。

< 前一页
IronPDF和Foxit PDF SDK的比较
下一步 >
iTextSharp 与 IronPDF 编辑 PDF 的比较

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

免费NuGet下载 总下载量: 11,781,565 查看许可证 >