产品比较

IronPDF与ITextPDF的比较

发布 2022年三月31日
分享:

简介

PDF 是 "便携式文档格式 "的缩写,是 Adobe 公司开发的一种文件格式。PDF 对于呈现需要格式化其中包含的文本和图像的文件非常有用。PDF 文件在现代社会中发挥着重要作用,被用于各类商业部门,如开具发票和生成文档。如今,有了市场上的 PDF 库,PDF 生成几乎变得直观。在决定为您的项目使用 PDF 库时,重要的是要考虑每个 PDF 库的功能和优势,以便能够选择最适合您的 PDF 库。

在本文中,我们将比较两个最流行的 .NET PDF 库,它们是

  • IronPDF
  • iText PDF

IronPDF 和 iText PDF 库都用于在 Microsoft .NET 应用程序或项目中创建、读取和修改 PDF 文件。为了确定哪个库最适合您的应用程序,我们将先比较这两个库的功能,然后再比较转换和处理 PDF 的性能成本。这两个库都受 Microsoft .NET Frameworks 的支持。我们还将记录每个库的持续时间,以便进行分析。

1.IronPDF 功能

IronPDF 是一款功能强大的 PDF .NET 库,开发人员可使用它轻松创建、阅读和修改 PDF。在内部,IronPDF 使用 chromium 引擎,并包含许多有用且强大的功能,如将 HTML5、JavaScript、CSS 和图像文件转换为 PDF,添加自定义页眉和页脚,以及完全按照浏览器中的显示方式渲染 PDF。IronPDF 支持各种网页和网络格式,如 HTML、ASPX、Razor View 和 MVC。IronPDF 的主要功能包括

  • 在.NET C#代码中直观地创建、读取和修改PDF文件。
  • 通过网站 URL 链接生成 PDF 文件,设置可处理自定义网络登录凭证、用户代理、代理、Cookie、HTTP 标头和表单变量,以便在 HTML 登录表单后登录。
  • 从现有 PDF 文档中提取图像。
  • 为 PDF 文档添加页眉、页脚、文本、图像、书签、水印等。
  • 轻松合并和分割多个 PDF 文档页面的功能。
  • 可将 CSS 文件和媒体类型文件转换为文档。

2. iText PDF 功能

iText PDF 是一个开源 Java 库,可将文本转换为 PDF 文档。APGL 是一种免费开源软件许可证。

  • iText 库提供了创建 PDF 文档的 API。
  • iText 软件能将 HTML 和 XML 字符串解析为 PDF。
  • 使用 iText 库,我们可以在 PDF 文档中添加书签、页码和标记。
  • 使用 iText 库,我们还可以将 PDF 文档分割成多个 PDF,或将多个 PDF 文档合并成一个 PDF。
  • 使用 iText,我们可以编辑 PDF 中的表单。
  • iText 还可用于使用 png、jpeg 和其他图像格式的图像创建 PDF。
  • iText 库提供了一个画布类,可用于在现有文档上绘制各种几何图形。
  • iText 具有在 PDF 文档中添加和更改字体和图像的功能。

3.在 Visual Studio 中创建新项目

在本文中,我们将使用控制台应用程序生成 PDF 文档。首先,打开 Microsoft Visual Studio 应用程序,从文件菜单中选择 "新建项目",然后选择 "控制台应用程序"。

输入项目名称并选择文件路径。然后点击创建按钮。同时,选择所需的 .NET Framework,如下图所示:

现在,Microsoft Visual Studio 将为所选应用程序生成结构。如果您选择了控制台、Windows 和 Web 应用程序,现在它将打开 program.cs 文件,您可以在其中输入代码并构建/运行应用程序。

选择 .NET 框架版本。在本例中,我们将使用 .NET 5.0

接下来,我们可以添加库来测试代码。

4.安装 IronPDF 库

IronPDF 库可以通过四种方式下载和安装:

  • 使用 Visual Studio 的 NuGet 软件包管理器。
  • 使用 Visual Studio 的命令行。
  • 直接从 NuGet 网站下载。
  • 直接从 IronPDF 网站下载。

4.1 使用 Visual Studio 的 NuGet 包管理器

Visual Studio 提供了 NuGet 包管理器选项,可直接将软件包安装到解决方案中。下面的截图显示了如何打开 NuGet 包管理器。

它提供了一个从 NuGet 网站查找软件包的搜索框。在软件包管理器中,我们只需搜索 "IronPDF "即可,如下图所示:

在上图中,我们看到了相关搜索结果的列表。请选择所需的选项,以便将软件包安装到系统中。

4.2 使用 Visual Studio 命令行

在 Visual Studio 工具中,转到工具-> NuGet 包管理器-> 包管理器控制台

在软件包管理器控制台选项卡中输入以下一行:

Install-Package IronPdf

现在,软件包将下载并安装到当前项目中,随时可以使用。

4.3 直接从 NuGet 网站下载

第三种方法是直接从网站下载 NuGet 软件包。

  • 导航至链接"https://www.nuget.org/packages/IronPdf/"
  • 从右侧菜单中选择 "下载软件包 "选项。
  • 打开下载的软件包。软件包将自动安装。
  • 重新加载解决方案并开始在项目中使用。

4.4 直接从 IronPDF 网站下载

点击此链接直接从我们的网站下载最新软件包。下载后,请按照以下步骤将软件包添加到您的项目中:

  • 在解决方案窗口中右键单击项目。
  • 选择 "参考 "选项,然后浏览下载参考的位置。
  • 单击 "确定 "添加引用。

5.安装 iText 库

iText 库可通过四种方式下载和安装:

  • 使用 Visual Studio 的 NuGet 软件包管理器。
  • 使用 Visual Studio 的命令行。
  • 直接从 NuGet 网站下载。
  • 直接从 iText Source 网站下载。

前三种方法对于 IronPDF 和 iText 库都是一样的。唯一不同的是需要注意的是,通过 Visual Studio 添加 iText 时,必须安装两个软件包。

首先,在 NuGet 软件包管理器中搜索 iText。我们需要同时安装 itext7 和 iText.pdfhtml,因为这些软件包的功能被分成多个软件包。

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

Install-Package itext7
Install-Package itext7.pdfhtml

iText 7 是最新版本,因此我们在解决方案中使用该版本。

5.1 直接从 iText 源网站下载

源代码将在 GitHub 上发布 这里 适用于 iText 7。

我们可以获取 iText 7 这里.

您可以获取与 iText 7 相关的所有类文件的源代码,并将其作为解决方案的参考。

6.从 URL 创建 PDF

PDF 库和网页-源文件-PDF 转换器都很有用。让我们看看如何从网页 URL 制作 PDF 文件。

6.1 使用 IronPDF

我们可以使用 IronPDF 轻松创建 PDF。它可以从 URL 生成网页源文件,并将其转换为新文档。

以下步骤可轻松创建 PDF 文档。

using System.Diagnostics;
using System.IO;
using System.Net;
using System.Text;
namespace PdfConsoleApp
{
    internal class Program
    {
        public static void Main(string [] args)
        {
        IronPdf.ChromePdfRenderer Renderer = new IronPdf.ChromePdfRenderer();
        var Pdf = Renderer.RenderUrlAsPdf("https://en.wikipedia.org/wiki/%22Hello,_World!%22_program");
        Pdf.SaveAs("result.pdf");

        // or optionally:

        var Renderer = new IronPdf.ChromePdfRenderer().
        RenderUrlAsPdf("https://en.wikipedia.org/wiki/%22Hello,_World!%22_program").SaveAs("result.pdf");
        }
    }
}
using System.Diagnostics;
using System.IO;
using System.Net;
using System.Text;
namespace PdfConsoleApp
{
    internal class Program
    {
        public static void Main(string [] args)
        {
        IronPdf.ChromePdfRenderer Renderer = new IronPdf.ChromePdfRenderer();
        var Pdf = Renderer.RenderUrlAsPdf("https://en.wikipedia.org/wiki/%22Hello,_World!%22_program");
        Pdf.SaveAs("result.pdf");

        // or optionally:

        var Renderer = new IronPdf.ChromePdfRenderer().
        RenderUrlAsPdf("https://en.wikipedia.org/wiki/%22Hello,_World!%22_program").SaveAs("result.pdf");
        }
    }
}
Imports System.Diagnostics
Imports System.IO
Imports System.Net
Imports System.Text
Namespace PdfConsoleApp
	Friend Class Program
		Public Shared Sub Main(ByVal args() As String)
		Dim Renderer As New IronPdf.ChromePdfRenderer()
		Dim Pdf = Renderer.RenderUrlAsPdf("https://en.wikipedia.org/wiki/%22Hello,_World!%22_program")
		Pdf.SaveAs("result.pdf")

		' or optionally:

		Dim Renderer = (New IronPdf.ChromePdfRenderer()).RenderUrlAsPdf("https://en.wikipedia.org/wiki/%22Hello,_World!%22_program").SaveAs("result.pdf")
		End Sub
	End Class
End Namespace
VB   C#

上文包含了两种方法,可将网页 URL 转换为 PDF 文档并保存,如上例所示。第一种方法是通过构建 IronPDF PDF 文档来创建文档,而另一种方法是在同一行中渲染 URL 并将其保存为 PDF。这样可以将页面源下载到一个大块中并转换成文档,从而加快处理速度。

在上例中,我们使用 RenderUrlAsPdf 将网页转换为文档。只需提供链接和保存位置。PDF 转换需要 7.3 秒才能完成。

6.2 使用 iText

iText PDF 还允许我们创建 PDF 文档。在 iText 上,我们需要 WebClient 函数,同时我们需要从 URL 生成 PDF。客户端函数允许我们将下载的 URL 转换成字符串,然后我们就能将字符串转换成 PDF 文件。

在 iText 中,我们需要不同的类来生成 PDF 文档。PdfWriter 类允许我们在指定位置创建一个空文件,并为该类创建一个对象。PdfDocument 也是一个可以帮助我们读取 PDF 并将其写入 PDF 文档对象的类。PageSize 也是一个帮助我们处理文档页面设置的类。

ConverterProperties 是一个用于格式化网页字符串的类,在 PDF 文档中有不同的页面宽度设置等、

HtmlConverter 是命名空间 iText.Html2pdf 中的一个类。这个 HTML 转换器类有一个名为 "ConvertTopdf "的函数。这是一个静态函数,允许我们将下载的网页写入 PDF 文件。但是,我们需要将 Pdfwriter 和 ConverterProperties 对象作为参数传递给 HTML 转换器。

using iText.Html2pdf;
using iText.Kernel.Geom;
using iText.Kernel.Pdf;
using iText.StyledXmlParser.Css.Media;
namespace PdfConsoleApp
{
    internal class Program
    {
        public static void Main(string [] args)
        {            
    PdfWriter writer = new PdfWriter("itext.pdf");
            PdfDocument pdf = new PdfDocument(writer);
            PageSize pageSize = new PageSize(850, 1700);
            pdf.SetDefaultPageSize(pageSize);
            ConverterProperties properties = new ConverterProperties();
            MediaDeviceDescription mediaDeviceDescription =
                new MediaDeviceDescription(MediaType.SCREEN);
            mediaDeviceDescription.SetWidth(pageSize.GetWidth());
            properties.SetMediaDeviceDescription(mediaDeviceDescription);
            string strdownload = new WebClient().DownloadString("https://en.wikipedia.org/wiki/%22Hello,_World!%22_program");
            HtmlConverter.ConvertToPdf(strdownload, pdf, properties);
}
}
}
using iText.Html2pdf;
using iText.Kernel.Geom;
using iText.Kernel.Pdf;
using iText.StyledXmlParser.Css.Media;
namespace PdfConsoleApp
{
    internal class Program
    {
        public static void Main(string [] args)
        {            
    PdfWriter writer = new PdfWriter("itext.pdf");
            PdfDocument pdf = new PdfDocument(writer);
            PageSize pageSize = new PageSize(850, 1700);
            pdf.SetDefaultPageSize(pageSize);
            ConverterProperties properties = new ConverterProperties();
            MediaDeviceDescription mediaDeviceDescription =
                new MediaDeviceDescription(MediaType.SCREEN);
            mediaDeviceDescription.SetWidth(pageSize.GetWidth());
            properties.SetMediaDeviceDescription(mediaDeviceDescription);
            string strdownload = new WebClient().DownloadString("https://en.wikipedia.org/wiki/%22Hello,_World!%22_program");
            HtmlConverter.ConvertToPdf(strdownload, pdf, properties);
}
}
}
Imports iText.Html2pdf
Imports iText.Kernel.Geom
Imports iText.Kernel.Pdf
Imports iText.StyledXmlParser.Css.Media
Namespace PdfConsoleApp
	Friend Class Program
		Public Shared Sub Main(ByVal args() As String)
	Dim writer As New PdfWriter("itext.pdf")
			Dim pdf As New PdfDocument(writer)
			Dim pageSize As New PageSize(850, 1700)
			pdf.SetDefaultPageSize(pageSize)
			Dim properties As New ConverterProperties()
			Dim mediaDeviceDescription As New MediaDeviceDescription(MediaType.SCREEN)
			mediaDeviceDescription.SetWidth(pageSize.GetWidth())
			properties.SetMediaDeviceDescription(mediaDeviceDescription)
			Dim strdownload As String = (New WebClient()).DownloadString("https://en.wikipedia.org/wiki/%22Hello,_World!%22_program")
			HtmlConverter.ConvertToPdf(strdownload, pdf, properties)
		End Sub
	End Class
End Namespace
VB   C#

结果

这是 IronPDF 和 iText 生成的 PDF 文件。左侧的 PDF 文件由 IronPDF 生成,右侧的 PDF 文件由 iText 生成。下面是生成 PDF 所需的时间。

结果会因网络带宽而变化。

7.使用 HTML 创建 PDF

IronPDF 和 iText 都提供了一种将 HTML 字符串转换为 PDF 的方法。这两个库都提供了一种简单的方法。

7.1 使用 IronPDF

在 IronPDF 的帮助下,我们可以将网页源代码转化为文档。下面是一个如何将 HTML 字符串转化为文档的示例。它还能将任何标签元素转化为 PDF 文档。

var Renderer = new IronPdf.ChromePdfRenderer().RenderHtmlAsPdf("<h1>Hello world!!</h1>").SaveAs("result.pdf");
var Renderer = new IronPdf.ChromePdfRenderer().RenderHtmlAsPdf("<h1>Hello world!!</h1>").SaveAs("result.pdf");
Dim Renderer = (New IronPdf.ChromePdfRenderer()).RenderHtmlAsPdf("<h1>Hello world!!</h1>").SaveAs("result.pdf")
VB   C#

上例演示了如何使用 RenderHtmlAsPdf 转换 HTML 字符串。此外,我们还可以向将网页源代码转换为字符串的函数提供任意数量的 HTML 字符串。在获取字符串后,我们可以使用另存为函数保存文档。完成这一过程需要 2.7 秒。

7.2 使用 iText

借助 iText PDF,我们可以将网页源字符串转换为 PDF。下面是一个如何从网页源字符串创建文档的示例。它还能将任何标签元素转换成新文档。

PdfWriter writer = new PdfWriter("itext.pdf");
PdfDocument pdf = new PdfDocument(writer);
PageSize pageSize = new PageSize(850, 1700);
pdf.SetDefaultPageSize(pageSize);
ConverterProperties properties = new ConverterProperties();
MediaDeviceDescription mediaDeviceDescription =
    new MediaDeviceDescription(MediaType.SCREEN);
mediaDeviceDescription.SetWidth(pageSize.GetWidth());
properties.SetMediaDeviceDescription(mediaDeviceDescription);
HtmlConverter.ConvertToPdf("<h1>Hello world!!</h1>", pdf, properties);
PdfWriter writer = new PdfWriter("itext.pdf");
PdfDocument pdf = new PdfDocument(writer);
PageSize pageSize = new PageSize(850, 1700);
pdf.SetDefaultPageSize(pageSize);
ConverterProperties properties = new ConverterProperties();
MediaDeviceDescription mediaDeviceDescription =
    new MediaDeviceDescription(MediaType.SCREEN);
mediaDeviceDescription.SetWidth(pageSize.GetWidth());
properties.SetMediaDeviceDescription(mediaDeviceDescription);
HtmlConverter.ConvertToPdf("<h1>Hello world!!</h1>", pdf, properties);
Dim writer As New PdfWriter("itext.pdf")
Dim pdf As New PdfDocument(writer)
Dim pageSize As New PageSize(850, 1700)
pdf.SetDefaultPageSize(pageSize)
Dim properties As New ConverterProperties()
Dim mediaDeviceDescription As New MediaDeviceDescription(MediaType.SCREEN)
mediaDeviceDescription.SetWidth(pageSize.GetWidth())
properties.SetMediaDeviceDescription(mediaDeviceDescription)
HtmlConverter.ConvertToPdf("<h1>Hello world!!</h1>", pdf, properties)
VB   C#

这与 URL 到 PDF 的转换类似。我们唯一需要删除的步骤是 WebClient,取而代之的是在参数中使用网页源字符串。这将获取给定字符串并将其转换为新文档。

结果:

8.阅读 PDF 文档

我们可以 阅读 PDF 使用 IronPDF 和 EO.pdf 编写文件。

8.1 使用 IronPDF

IronPDF 可帮助我们读取现有的 PDF 文件。以下是使用 IronPDF 读取 PDF 文件的示例。

var pdfDocument = IronPdf.PdfDocument.FromFile("result.pdf");
string AllText = pdfDocument.ExtractAllText();
var pdfDocument = IronPdf.PdfDocument.FromFile("result.pdf");
string AllText = pdfDocument.ExtractAllText();
Dim pdfDocument = IronPdf.PdfDocument.FromFile("result.pdf")
Dim AllText As String = pdfDocument.ExtractAllText()
VB   C#

Fromfile 方法用于从现有文件中读取 PDF,并将其转换为 PDF 文档对象,如上面的代码所示。我们可以使用该对象读取 PDF 页面上可访问的文本和图像。完成这一过程只需几毫秒。

8.2 使用 iText PDF

iText 软件还允许我们在不借助外部阅读器的情况下阅读文档。

using (PdfReader reader = new PdfReader("result.pdf"))
            {
                 text = new StringBuilder();
                PdfDocument pdf = new PdfDocument(reader);
                var strategy = new LocationTextExtractionStrategy();
                for (int i = 1; i <= pdf.GetNumberOfPages(); i++)
                {
                    var pdfpage = pdf.GetPage(i);
                    text.Append(PdfTextExtractor.GetTextFromPage(pdfpage, strategy));
                }
            }
using (PdfReader reader = new PdfReader("result.pdf"))
            {
                 text = new StringBuilder();
                PdfDocument pdf = new PdfDocument(reader);
                var strategy = new LocationTextExtractionStrategy();
                for (int i = 1; i <= pdf.GetNumberOfPages(); i++)
                {
                    var pdfpage = pdf.GetPage(i);
                    text.Append(PdfTextExtractor.GetTextFromPage(pdfpage, strategy));
                }
            }
Using reader As New PdfReader("result.pdf")
				 text = New StringBuilder()
				Dim pdf As New PdfDocument(reader)
				Dim strategy = New LocationTextExtractionStrategy()
				Dim i As Integer = 1
				Do While i <= pdf.GetNumberOfPages()
					Dim pdfpage = pdf.GetPage(i)
					text.Append(PdfTextExtractor.GetTextFromPage(pdfpage, strategy))
					i += 1
				Loop
End Using
VB   C#

上面的代码显示,我们可以使用 PDF 阅读器读取文档。我们唯一需要做的就是将文件位置作为参数传递。PDF 阅读器会读取文档并将其转换为一个对象,使用该对象我们可以读取所有页面的文本,为此我们需要将它们用于循环。

结果

9.分割 PDF 文档

IronPDF 和 iText PDF 库都允许用户将页面分割成单独的文档。两者还提供了实现这一功能的简单方法。

9.1 使用 IronPDF

IronPDF 允许我们将文档页面拆分成单独的文档。下面是一个如何将页面拆分成独立文档的示例。

var Splitdocument = IronPdf.PdfDocument.FromFile("result.pdf");
for (int i = 0; i < Splitdocument.PageCount; i++)
{
     Splitdocument.CopyPage(i).SaveAs("Ironpdfmerged"+i.ToString()+".pdf");
}
var Splitdocument = IronPdf.PdfDocument.FromFile("result.pdf");
for (int i = 0; i < Splitdocument.PageCount; i++)
{
     Splitdocument.CopyPage(i).SaveAs("Ironpdfmerged"+i.ToString()+".pdf");
}
Dim Splitdocument = IronPdf.PdfDocument.FromFile("result.pdf")
For i As Integer = 0 To Splitdocument.PageCount - 1
	 Splitdocument.CopyPage(i).SaveAs("Ironpdfmerged" & i.ToString() & ".pdf")
Next i
VB   C#

在上例中,我们首先使用 pdf-document 类的 fromfile 方法加载一个现有文档。然后,copypage 方法允许我们从现有文档中复制页面,Saveas 方法允许我们将文档保存到一个单独的文件中。页码都以 0 开头。因此,我们必须提供一个以 0 开头的页码。

9.2 使用 iText PDF

我们也可以使用 iText 7 分割 PDF 文档中的页面。不过,我们需要先编写一个单独的类文件,从 itext.kernel.Utils 命名空间继承 PdfSplitter。这将创建一个实例来分割 PDF 数据。下面是一个代码示例:

using System;
using System.Diagnostics;
using System.IO;
using System.Net;
using System.Text;
using iText.Html2pdf;
using iText.Kernel.Geom;
using iText.Kernel.Pdf;
using iText.Kernel.Pdf.Canvas.Parser;
using iText.Kernel.Pdf.Canvas.Parser.Listener;
using iText.Kernel.Utils;
using iText.StyledXmlParser.Css.Media;

namespace PdfConsoleApp
{
    internal class Program
    {
        static void Main(string [] args)
        {
            using (var pdfDoc = new PdfDocument(new PdfReader("result.pdf")))
            {
                var outputDir = @"Itext_{0}.pdf";
                var splitter = new CustomPdfSplitter(pdfDoc, outputDir);
                var splittedDocs = splitter.SplitByPageCount(1);
                foreach (var splittedDoc in splittedDocs)
                {
                    splittedDoc.Close();
                }
            }
            Console.ReadKey();
        }
    }
    public class CustomPdfSplitter : PdfSplitter
    {
        private String dest;
        private int partNumber = 1;

        public CustomPdfSplitter(PdfDocument pdfDocument, String dest) : base(pdfDocument)
        {
            this.dest = dest;
        }

        protected override PdfWriter GetNextPdfWriter(PageRange documentPageRange)
        {
            return new PdfWriter(String.Format(dest, partNumber++));
        }
    }
}
using System;
using System.Diagnostics;
using System.IO;
using System.Net;
using System.Text;
using iText.Html2pdf;
using iText.Kernel.Geom;
using iText.Kernel.Pdf;
using iText.Kernel.Pdf.Canvas.Parser;
using iText.Kernel.Pdf.Canvas.Parser.Listener;
using iText.Kernel.Utils;
using iText.StyledXmlParser.Css.Media;

namespace PdfConsoleApp
{
    internal class Program
    {
        static void Main(string [] args)
        {
            using (var pdfDoc = new PdfDocument(new PdfReader("result.pdf")))
            {
                var outputDir = @"Itext_{0}.pdf";
                var splitter = new CustomPdfSplitter(pdfDoc, outputDir);
                var splittedDocs = splitter.SplitByPageCount(1);
                foreach (var splittedDoc in splittedDocs)
                {
                    splittedDoc.Close();
                }
            }
            Console.ReadKey();
        }
    }
    public class CustomPdfSplitter : PdfSplitter
    {
        private String dest;
        private int partNumber = 1;

        public CustomPdfSplitter(PdfDocument pdfDocument, String dest) : base(pdfDocument)
        {
            this.dest = dest;
        }

        protected override PdfWriter GetNextPdfWriter(PageRange documentPageRange)
        {
            return new PdfWriter(String.Format(dest, partNumber++));
        }
    }
}
Imports System
Imports System.Diagnostics
Imports System.IO
Imports System.Net
Imports System.Text
Imports iText.Html2pdf
Imports iText.Kernel.Geom
Imports iText.Kernel.Pdf
Imports iText.Kernel.Pdf.Canvas.Parser
Imports iText.Kernel.Pdf.Canvas.Parser.Listener
Imports iText.Kernel.Utils
Imports iText.StyledXmlParser.Css.Media

Namespace PdfConsoleApp
	Friend Class Program
		Shared Sub Main(ByVal args() As String)
			Using pdfDoc = New PdfDocument(New PdfReader("result.pdf"))
				Dim outputDir = "Itext_{0}.pdf"
				Dim splitter = New CustomPdfSplitter(pdfDoc, outputDir)
				Dim splittedDocs = splitter.SplitByPageCount(1)
				For Each splittedDoc In splittedDocs
					splittedDoc.Close()
				Next splittedDoc
			End Using
			Console.ReadKey()
		End Sub
	End Class
	Public Class CustomPdfSplitter
		Inherits PdfSplitter

		Private dest As String
		Private partNumber As Integer = 1

		Public Sub New(ByVal pdfDocument As PdfDocument, ByVal dest As String)
			MyBase.New(pdfDocument)
			Me.dest = dest
		End Sub

		Protected Overrides Function GetNextPdfWriter(ByVal documentPageRange As PageRange) As PdfWriter
'INSTANT VB WARNING: An assignment within expression was extracted from the following statement:
'ORIGINAL LINE: return new PdfWriter(String.Format(dest, partNumber++));
			Dim tempVar = New PdfWriter(String.Format(dest, partNumber))
			partNumber += 1
			Return tempVar
		End Function
	End Class
End Namespace
VB   C#

我们创建了一个覆盖 pdfwriter 的自定义类,允许我们使用自定义名称和原始文件名重命名分割文件。稍后,它将把 PDF 页面返回到一个新的列表项中,然后可将其保存到一个单独的文档中。

结果:

结论

IronPDF 无法呈现 HTML 转 PDF 远程服务器。相反,它会在幕后运行一个真正符合标准的网络浏览器实例 (无需安装任何其他软件).HTML 的渲染是完全准确的,而且是矢量格式,适合最高标准的商业印刷。输出结果是干净、高质量的 PDF。因此,IronPDF 比 iText PDF 更具优势。强烈推荐务实的编码人员使用 IronPDF,以提高工作效率。IronPDF 是公开的商业软件,其许可和定价详情均公布在网站上。您可以访问此处了解 IronPDF 的许可选项。

iText PDF 支持多种字体,但我们只能使用内联样式表。它不允许我们添加外部样式表,因为它没有将 HTML 转换为 PDF 文件的引擎或浏览器。iText 可以正确、准确地渲染 HTML,但生成的 PDF 文件非常大。要了解有关 iText 许可证的更多信息,请点击此处。

IronPDF 是希望快速高效工作的务实编码人员的必备工具。最重要的是,它能为您节省时间。IronPDF 许可套餐提供终身许可,而且没有持续成本。

您可以从以下网址下载 IronPDF 链接.

< 前一页
IronPDF与PDFreactor的比较
下一步 >
IronPDF与GemBox.Pdf的比较

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

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