写点什么

C#/VB.NET 合并 PDF 文档

作者:在下毛毛雨
  • 2022 年 7 月 01 日
  • 本文字数:2361 字

    阅读完需:约 8 分钟

C#/VB.NET 合并PDF文档

在日常工作中我们经常会遇到将多个 PDF 文档合并在一起的情况。大多数人都会选择先将 PDF 转换为 Word 文档,再直接复制粘贴,最后再转为 PDF 文档。这种方法不仅比较麻烦,而且有时候可能会造成排版错乱的情况。今天给大家介绍的方法是通过 C#/VB.NET 代码来实现此功能,可以既快速又简单地合并 PDF 文档,最重要的是不会造成格式错误和排版错乱的情况,达到较好的合并效果。本文将为您介绍两种合并 PDF 文档的方法。下面是我整理的思路及详细步骤,并附上 C#/VB.NET 代码供大家参考,希望能对大家有所帮助。

将多个 PDF 合并为一个 PDF 文档

将不同 PDF 的指定页面合并为一个 PDF 文档

程序环境:

本次测试时,在程序中引入 Spire.PDF.dll 文件。

 

方法 1:

将 FreeSpire.PDF for .NET 下载到本地,解压,找到 BIN 文件夹下的 Spire.PDF.dll。然后在 Visual Studio 中打开“解决方案资源管理器”,鼠标右键点击“引用”,“添加引用”,将本地路径 BIN 文件夹下的 dll 文件添加引用至程序。

 

方法 2:

通过 NuGet 安装。可通过以下 2 种方法安装:

 

  1. 可以在 Visual Studio 中打开“解决方案资源管理器”,鼠标右键点击“引用”,“管理 NuGet 包”,然后搜索“Free Spire.PDF”,点击“安装”。等待程序安装完成。

 

  2. 将以下内容复制到 PM 控制台安装。

 

Install-Package FreeSpire.PDF-Version 8.6.0

将多个 PDF 合并为一个 PDF 文档

具体步骤:

  • 获取要合并的文档的路径并将它们存储在字符串数组中。

  • 调用 PdfDocument.MergeFiles()方法合并文档。

  • 用 PdfDocumentBase.Save()方法另存为一个 PDF 文档

完整代码:

C#】

using System;using Spire.Pdf;
namespace MergePDFs { class Program { static void Main(string[] args) { //获取要合并的文档的路径 String[] files = new String[] { "Sample.pdf", "Sample1.pdf", "Samplex.pdf" //合并文档 PdfDocumentBase doc = PdfDocument.MergeFiles(files);
//将结果保存到 PDF文件 doc.Save("MergeDocuments.pdf", FileFormat.PDF); } }}
复制代码

VB.NET

Imports SystemImports Spire.Pdf
Namespace MergePDFs Class Program Private Shared Sub Main(ByVal args() As String) '获取要合并的文档的路径 Dim files() As String = New String() {" Sample.pdf", "Sample-1.pdf", "Samplex.pdf"} '合并文档 Dim doc As PdfDocumentBase = PdfDocument.MergeFiles(files) '将结果保存到 PDF文件 doc.Save("output.pdf", FileFormat.PDF) End Sub End ClassEnd Namespace
复制代码

效果图:

将不同 PDF 的指定页面合并为一个 PDF 文档

具体步骤:

  • 获取源文档的路径并将它们存储在字符串数组中。

  • 创建一个 PdfDocument 数组,并将每个源文档加载到单独的 PdfDocument 对象。

  • 使用 PdfDocument.InsertPage() 方法和 PdfDocument.InsertPageRange() 方法将源文档的指定页面插入到新文档中。

  • 用 PdfDocument.SaveToFile()方法将新文档保存为 PDF。

完整代码:

【C#】

using System;using Spire.Pdf;
namespace MergeSelectedPages{ class Program { static void Main(string[] args) { //获取要合并的文档的路径 String[] files = new String[] { "Sample1.pdf", "Sample.pdf", "Sample2.pdf"};
//创建一个 PdfDocument 数组 PdfDocument[] docs = new PdfDocument[files.Length];
//循环浏览文档 for (int i = 0; i < files.Length; i++) { //加载指定文档 docs[i] = new PdfDocument(files[i]); }
//创建一个 PdfDocument 对象以生成新的 PDF 文档 PdfDocument doc = new PdfDocument();
//将不同文档中的指定页面插入到新文档中 doc.InsertPage(docs[0], 0); doc.InsertPageRange(docs[1], 0, 2); doc.InsertPage(docs[2], 1);
//保存文档为PDF文件 doc.SaveToFile("output.pdf"); } }}
复制代码

【VB.NET】

Imports SystemImports Spire.Pdf
Namespace MergeSelectedPages Class Program Private Shared Sub Main(ByVal args() As String) '获取要合并的文档的路径 Dim files() As String = New String() {"Sample1.pdf", "Sample.pdf", "Sample2.pdf"} '创建一个 PdfDocument 数组 Dim docs() As PdfDocument = New PdfDocument((files.Length) - 1) {} '循环浏览文档 Dim i As Integer = 0 Do While (i < files.Length) '加载指定文档 docs(i) = New PdfDocument(files(i)) i = (i + 1) Loop '创建一个 PdfDocument 对象以生成新的 PDF 文档 Dim doc As PdfDocument = New PdfDocument '将不同文档中的指定页面插入到新文档中 doc.InsertPage(docs(0), 0) doc.InsertPageRange(docs(1), 0, 2) doc.InsertPage(docs(2), 1) '保存文档为PDF文件 doc.SaveToFile("output.pdf") End Sub End ClassEnd Namespace
复制代码

效果图:


发布于: 刚刚阅读数: 5
用户头像

还未添加个人签名 2022.06.02 加入

还未添加个人简介

评论

发布
暂无评论
C#/VB.NET 合并PDF文档_C#_在下毛毛雨_InfoQ写作社区