产品比较

如何使用iTextSharp合并PDF文件

Chipego
奇佩戈-卡琳达
2023年九月12日
分享:

合并 PDF 文档是各种软件应用程序(如文档管理系统、报告生成工具等)的共同要求。 在 .NET 生态系统中,开发人员可以使用多个库来处理 PDF 文件。 iTextSharp 和 IronPDF 是在 C# 应用程序中处理 PDF 的两种常用选择。 在本文中,我们将探讨如何使用iTextSharp合并PDF,并与IronPDF进行比较,以帮助您在选择用于PDF操作的库时做出明智的决定。

如何使用iTextSharp合并PDF文件

以下是如何使用 iTextSharp 合并 PDF 文件的分步指南:

  1. 创建一个新的Document对象,并为您的PDF文件指定一个基本路径。

  2. 打开Document进行编辑。

  3. 定义要合并的 PDF 文件名数组。

  4. 对于列表中的每个 PDF 文件,创建一个PdfReader,将其内容添加到PdfCopy对象中,然后关闭PdfReader

  5. 关闭Document,完成合并的PDF。

IronPDF

IronPDF网页 是一个.NET库,使开发人员能够在其C#和.NET应用程序中创建、修改和操作PDF文档。 它通过提供从头生成PDF、HTML到PDF转换、PDF操作(包括添加、删除和修改内容)、交互式表单处理、PDF合并和拆分、加密以及跨平台兼容性等功能来简化与PDF相关的任务,使其成为需要PDF文档管理和生成的广泛应用的有价值的工具。

iTextSharp

iTextSharp 已被 iText 7 取代,因为它已到达生命周期终止 (EOL),只有安全补丁仍在支持。 强烈建议使用 iText 7 或考虑将现有的 iText 7 过渡到新项目。 iText 7 具有重大改进,包括 HTML 到 PDF 的转换、PDF 编辑、SVG 支持、更好的语言支持、调试工具、数据提取以及更多模块化功能。 它简化了 PDF 文档的处理,并以 AGPL 和商业许可证提供。

安装 IronPDF 库

要在 Visual Studio 项目中安装 IronPDF NuGet 包,可以按照以下步骤操作:

  1. 首先在 Visual Studio 中打开要使用 IronPDF 库的项目。

  2. 如果使用 Visual Studio,请转到工具 > NuGet 包管理器 > 包管理器控制台。

  3. 在软件包管理器控制台中,运行以下命令安装 IronPDF:
Install-Package IronPdf

Visual Studio 将下载并安装软件包及其依赖项。 您可以在 "输出 "窗口中监控进度。 安装完成后,您就可以开始在 C# 代码中使用 IronPDF 了。

**如何使用iTextSharp合并PDF文件:图1 - Visual Studio内置终端中显示的完整安装。**

成功安装 IronPDF 后,您就可以开始在项目中使用它了。 您可以在代码文件中加入必要的 "using "语句,然后开始使用 IronPDF 的功能处理 PDF。 导入必要的命名空间,然后根据需要开始处理 PDF。

Using IronPDF;
Using IronPDF;
Dim IronPDF As [Using]
$vbLabelText   $csharpLabel

现在,您可以使用 IronPDF 提供的特性和功能,在 C# 项目中处理 PDF 文档。 记住保存项目并构建它,以确保正确集成库。

安装 iTextSharp PDF 库

要在 C# 项目中安装 iTextSharp PDF 库,请按照以下步骤操作:

  1. 在您首选的集成开发环境(IDE)(例如Visual Studio)中打开您希望使用iTextSharp库的C#项目。

  2. 转到工具 > NuGet 包管理器 > 包管理器控制台。

  3. 在软件包管理器控制台中,运行以下命令:
Install-Package iTextSharp

此命令指示NuGet(Visual Studio的软件包管理器)下载并安装iTextSharp包及其依赖项到您的项目中。

NuGet 将下载并安装 iTextSharp 软件包和任何所需的依赖项。 您可以在软件包管理器控制台中监控安装进度。

**如何使用 iTextSharp 合并 PDF 文件**:图 2 - 在 Visual Studio 内置终端中显示的完整安装。

安装完成后,你会在软件包管理器控制台中看到一条确认信息,表明 iTextSharp 软件包已成功安装。 成功安装 iTextSharp 后,现在就可以开始在项目中使用它了。 您可以在代码文件中包含必要的using语句,并开始使用iTextSharp的功能处理PDF。

使用 IronPDF 将 PDF 合并为单一 PDF 文档

IronPDF提供了一种直接的方法来将多个PDF文件合并为一个PDF。 在将 PDF 文档合并为一个 PDF 时,IronPDF 具有极大的灵活性。 以下示例代码演示了如何将 PDF 文件合并为一个 PDF 文件:

static void Main(string [] args)
{
    string basePath = @"D:\PDFFiles\";
    string [] pdfFiles = { "PdfFile_1.pdf", "PdfFile_2.pdf" };
    List<PdfDocument> docList = new List<PdfDocument>();
    foreach (string filename in pdfFiles)
    {
        docList.Add(new PdfDocument(basePath + filename));
    }
    var mergedPDF = PdfDocument.Merge(docList);
    mergedPDF.SaveAs(basePath + "mergePDFbyIronPDF.pdf");
}
static void Main(string [] args)
{
    string basePath = @"D:\PDFFiles\";
    string [] pdfFiles = { "PdfFile_1.pdf", "PdfFile_2.pdf" };
    List<PdfDocument> docList = new List<PdfDocument>();
    foreach (string filename in pdfFiles)
    {
        docList.Add(new PdfDocument(basePath + filename));
    }
    var mergedPDF = PdfDocument.Merge(docList);
    mergedPDF.SaveAs(basePath + "mergePDFbyIronPDF.pdf");
}
Shared Sub Main(ByVal args() As String)
	Dim basePath As String = "D:\PDFFiles\"
	Dim pdfFiles() As String = { "PdfFile_1.pdf", "PdfFile_2.pdf" }
	Dim docList As New List(Of PdfDocument)()
	For Each filename As String In pdfFiles
		docList.Add(New PdfDocument(basePath & filename))
	Next filename
	Dim mergedPDF = PdfDocument.Merge(docList)
	mergedPDF.SaveAs(basePath & "mergePDFbyIronPDF.pdf")
End Sub
$vbLabelText   $csharpLabel

上面的代码使用IronPDF库合并位于指定基础路径("D:\PDFFiles")中的两个PDF文件("PdfFile_1.pdf"和"PdfFile_2.pdf")。 它创建了一个PdfDocument对象的列表,将输入的PDF添加到列表中,并使用PdfDocument.Merge将它们合并成一个单一的PDF,并将合并后的PDF以“mergePDFbyIronPDF.pdf”的名称保存在同一基础路径下。

以下是本示例中使用的 PDF 示例:

**如何使用 iTextSharp 合并 PDF 文件**:图 3 - 一个简单的 PDF 文件,标题为“一个简单的 PDF 文件”,下面有一些正文文字,以及一个单页 PDF 文章。

以下是合并后的 PDF 文件:

**如何使用iTextSharp合并PDF文件**:图4 - 合并的PDF,简单的PDF在前,文章在后。

使用 iTextSharp 合并多个 PDF 文件

iTextSharp 不提供合并 PDF 文件的直接方法。 不过,我们可以通过打开每个输入的 PDF 文件并将其内容添加到输出文档中来实现。 以下示例代码可将 PDF 文件合并为一个 PDF 文档:

static void Main(string [] args)
{
    Document doc = new Document();
    string basePath = @"D:\PDFFiles\";
    PdfCopy copy = new PdfCopy(doc, new FileStream(basePath + "mergePdf.pdf", FileMode.Create));
    doc.Open();

    string [] pdfFiles = { "PdfFile_1.pdf", "PdfFile_2.pdf" };

    foreach (string filename in pdfFiles)
    {
        PdfReader reader = new PdfReader(basePath + filename);
        copy.AddDocument(reader);
        reader.Close();
    }

    doc.Close();
}
static void Main(string [] args)
{
    Document doc = new Document();
    string basePath = @"D:\PDFFiles\";
    PdfCopy copy = new PdfCopy(doc, new FileStream(basePath + "mergePdf.pdf", FileMode.Create));
    doc.Open();

    string [] pdfFiles = { "PdfFile_1.pdf", "PdfFile_2.pdf" };

    foreach (string filename in pdfFiles)
    {
        PdfReader reader = new PdfReader(basePath + filename);
        copy.AddDocument(reader);
        reader.Close();
    }

    doc.Close();
}
Shared Sub Main(ByVal args() As String)
	Dim doc As New Document()
	Dim basePath As String = "D:\PDFFiles\"
	Dim copy As New PdfCopy(doc, New FileStream(basePath & "mergePdf.pdf", FileMode.Create))
	doc.Open()

	Dim pdfFiles() As String = { "PdfFile_1.pdf", "PdfFile_2.pdf" }

	For Each filename As String In pdfFiles
		Dim reader As New PdfReader(basePath & filename)
		copy.AddDocument(reader)
		reader.Close()
	Next filename

	doc.Close()
End Sub
$vbLabelText   $csharpLabel

上述代码使用 iTextSharp 将指定基本路径 ("D:\PDFFiles") 下的两个 PDF 文件 ("PdfFile_1.pdf" 和 "PdfFile_2.pdf") 合并为一个名为 "mergePdf.pdf" 的单个 PDF。它通过打开每个输入 PDF,将其内容添加到输出文档,然后关闭文档来完成此操作。 上述代码将把多个 PDF 文件合并为一个 PDF 文件。

我们使用了以下两个输入文件:

**使用 iTextSharp 合并 PDF 文件的方法**:图 5 - 与之前相同的输入 PDF。

我们的代码创建的新文件如下:

**如何使用iTextSharp合并PDF文件**:图6 - 合并后的PDF,第一个是简单的PDF,第二个是文章。

结论

与iTextSharp的比较中,IronPDF在C#应用中合并PDF文档方面显现出更佳的选择。 虽然这两个库都能胜任,但 IronPDF 提供了更友好的用户界面、HTML 到 PDF 转换等现代功能、明确的许可选项、通过 NuGet 直接集成以及积极的开发,共同简化了合并过程,减少了开发时间,并确保为 PDF 相关任务提供更可靠的解决方案。 其友好的用户界面、强大的功能集和持续的开发使 IronPDF 成为用 C# 合并 PDF 的卓越解决方案。

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