在实际项目开发中,我们经常会遇到需要将多个 PDF 文件合并成一个文档的需求,或者从多个 PDF 中抽取部分页面组合成新的 PDF。本文将介绍如何使用 Spire.PDF for .NET 库实现以下两个功能:
- 合并多个完整的 PDF 文档
- 合并多个 PDF 中的指定页面
1. 安装 Spire.PDF
在开始之前,需要先安装 Spire.PDF for .NET。你可以通过 NuGet 来安装:
Install-Package Spire.PDF
或者在 Visual Studio 的 "管理 NuGet 程序包" 中搜索 Spire.PDF 并安装。
2. 合并多个PDF文档(基础场景)
适用于将多个PDF文件按顺序拼接为一个文档。
csharp
using Spire.Pdf;
namespace MergePDFs
{
class Program
{
static void Main(string[] args)
{
// 需合并的PDF文档
string[] files = new string[] {"示例1.pdf", "示例2.pdf", "示例3.pdf"};
// 合并PDF文档
PdfDocumentBase pdf = PdfDocument.MergeFiles(files);
// 保存
pdf.Save("合并PDF.pdf", FileFormat.PDF);
}
}
}
✅ 优点:代码简洁,执行稳定,适合批量处理。
⚠️ 注意:文件路径需确保存在且可读。
3. 合并指定页面(进阶场景)
在实际工作中,常需合并不同PDF中的特定页(如合同第2页+审批表第3页)。
csharp
using Spire.Pdf;
namespace MergePDFs
{
class Program
{
static void Main(string[] args)
{
// 需合并的PD文档
string[] files = new string[] {"示例1.pdf", "示例2.pdf"};
// 遍历每个PDF文档
PdfDocument[] pdfs = new PdfDocument[files.Length];
for (int i = 0; i < files.Length; i++)
{
pdfs[i] = new PdfDocument(files[i]);
}
// 创建 PdfDocument 对象
PdfDocument newPDF = new PdfDocument();
// 合并第一个文档的2、3页和第二个文档的第1页
newPDF.InsertPageRange(pdfs[0], 1, 2);
newPDF.InsertPage(pdfs[1], 0);
// Save the new PDF file
newPDF.SaveToFile("提取PDF页面.pdf");
}
}
}
📌 适用场景:跨文档内容整合、报告页码重组。
4. 注意事项
- 页面索引:Spire.PDF 的页面索引是从 0 开始的,不同于某些软件从 1 开始。
- 大文件处理:合并大量或大尺寸 PDF 时,建议使用 using 语句确保资源释放。
- 支持格式:Spire.PDF 支持 PDF 1.0 ~ PDF 1.7 格式,以及部分 PDF/A 格式。
通过以上代码,我们可以通过 C# 代码实现基础PDF文档合并,还能灵活控制页面顺序、跳过特定页,满足复杂业务场景。