本文以C#代码为例介绍如何来实现合并PDF页面内容。本文中的合并并非将两个文档简单合并为一个文档,而是将多个页面内容合并到一个页面,目的是减少页面上的空白区域,使页面布局更为紧凑、合理。下面,将分别从两个示例来展示合并,即:
- 从两个PDF文档页面实现页面合并
- 在同一个PDF文档实现页面合并
【程序环境】
方法1
在程序中引入Spire.Pdf.dll文件;将 Free Spire.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.2.0
【代码示例】
1.从两个PDF文档页面实现页面合并
(合并前)需要将文件1的内容合并到文件2的第二页空白处:

C#

using Spire.Pdf;
using Spire.Pdf.Graphics;
using System.Drawing;
namespace MergePages
{
class Program
{
static void Main(string[] args)
{
//加载两个PDF文档
PdfDocument pdf1 = new PdfDocument();
pdf1.LoadFromFile("test1.pdf");
PdfDocument pdf2 = new PdfDocument();
pdf2.LoadFromFile("test2.pdf");
//创建模板
PdfTemplate template = pdf1.Pages[0].CreateTemplate();
//获取文档2中的第2页
PdfPageBase page2 = pdf2.Pages[1];
//设置透明度
page2.Canvas.SetTransparency(1f, 1f, PdfBlendMode.Overlay);
//在页面指定位置绘制模板
page2.Canvas.DrawTemplate(template, new PointF(0, 300));
//保存文档
pdf2.SaveToFile("mergepages.pdf");
}
}
}

合并后的效果:


2.在同一个PDF文档实现页面合并
(合并前)将同一个文档中,第2页中的内容绘制到第1页空白处,并删掉多余的空白页:

C#

using Spire.Pdf;
using Spire.Pdf.Graphics;
using System.Drawing;
namespace MergePage2
{
class Program
{
static void Main(string[] args)
{
//加载PDF文档
PdfDocument pdf = new PdfDocument("sample.pdf");
//创建模板
PdfTemplate template = pdf.Pages[1].CreateTemplate();
//获取第一个页面
PdfPageBase page1 = pdf.Pages[0];
//获取第二个页面
PdfPageBase page2 = pdf.Pages[1];
//设置透明度和重叠样式
page2.Canvas.SetTransparency(1f, 1f, PdfBlendMode.Overlay);
//将第二页中的内容绘制到第一页指定位置
page1.Canvas.DrawTemplate(template, new PointF(0, 240));
//删除第二页`
pdf.Pages.RemoveAt(1);
//保存文档
pdf.SaveToFile("MergePage2.pdf",FileFormat.PDF);
}
}
}

合并后的效果:

