复制 PDF 页面是高效整合信息的重要手段。通过复制包含关键数据或重要结论的页面,然后将其编译整合到一个新文档中,您可以将不同来源的相关内容汇集在一起,创建一个条理分明、便于快速检索与浏览的连贯资源文档。本文将介绍如何使用 Spire.PDF for .NET 通过 C# 复制 PDF 中的页面。
安装 Spire.PDF for .NET
首先,您需要添加 Spire.PDF for .NET 包中包含的 DLL 文件作为 .NET 项目中的引用。DLL 文件可以从此链接下载或通过 NuGet 安装。
PM> Install-Package Spire.PDF
C# 在同一PDF文档内复制页面
要复制 PDF 页面,可以先基于 PDF 文档中的指定页面创建模板,然后再通过 PdfPageBase.Canvas.DrawTemplate() 方法将模板绘制到新添加的页面上。具体步骤如下:
- 创建 PdfDocument 类的对象。
- 使用 PdfDocument.LoadFromFile() 方法加载 PDF 文件。
- 通过 PdfDocument.Pages[] 属性获取指定页面。
- 通过 PdfPageBase.Size 属性获取页面大小。
- 使用 PdfPageBase.CreateTemplate() 方法基于页面内容创建模板。
- 使用 PdfDocument.Pages.Add(SizeF size, PdfMargins margins) 方法在文档末尾添加一个相同大小的新页面。或使用 PdfDocument.Pages.Insert(int index, SizeF size, PdfMargins margins) 方法在指定位置插入相同大小的新页面。
- 使用 PdfPageBase.Canvas.DrawTemplate(PdfTemplate template, PointF location) 方法在新添加的页面上绘制模板。
- 使用 PdfDocument.SaveToFile() 方法保存结果文件。
- C#
using Spire.Pdf;
using Spire.Pdf.Graphics;
using System.Drawing;
namespace DuplicatePage
{
class Program
{
static void Main(string[] args)
{
// 创建PdfDocument对象
PdfDocument pdf = new PdfDocument();
// 加载PDF文件
pdf.LoadFromFile("NET框架.pdf");
// 获取第一页
PdfPageBase page = pdf.Pages[0];
// 获取页面尺寸
SizeF size = page.Size;
// 基于页面内容创建模板
PdfTemplate template = page.CreateTemplate();
// 在文档末尾添加一个与第一页大小相同的新页面
page = pdf.Pages.Add(size, new PdfMargins(0));
// 在指定位置插入新页面
//page = pdf.Pages.Insert(1, size, new PdfMargins(0));
// 在新添加的页面上绘制模板
page.Canvas.DrawTemplate(template, new PointF(0, 0));
// 保存结果文档
pdf.SaveToFile("复制PDF页面.pdf");
}
}
}
C# 在不同 PDF 文档之间复制页面
您还可以加载两个 PDF 文件,获取其中一个 PDF 文件中的指定页面并基于其内容创建模板,然后再将模板绘制到另一个 PDF 文件的页面上。具体步骤如下:
- 创建 PdfDocument 类的对象。
- 使用 PdfDocument.LoadFromFile() 方法加载两个 PDF 文件。
- 通过 PdfDocument.Pages[] 属性获取第一个 PDF 中的指定页面。
- 通过 PdfPageBase.Size 属性获取页面大小。
- 使用 PdfPageBase.CreateTemplate() 方法根据页面内容创建模板。
- 使用 PdfDocument.Pages.Insert(int index, SizeF size, PdfMargins margins) 方法在第二个 PDF 的指定位置插入相同大小的新页面。或者使用 PdfDocument.Pages.Add(SizeF size, PdfMargins margins) 方法在第二个 PDF 的末尾添加相同大小的新页面。
- 使用 PdfPageBase.Canvas.DrawTemplate(PdfTemplate template, PointF location) 方法在新添加的页面上绘制模板。
- 使用 PdfDocument.SaveToFile() 方法保存结果文件。
- C#
using Spire.Pdf;
using Spire.Pdf.Graphics;
using System.Drawing;
namespace CopyPageToAnother
{
class Program
{
static void Main(string[] args)
{
// 加载第一个PDF文档
PdfDocument pdf1 = new PdfDocument();
pdf1.LoadFromFile("NET框架.pdf");
// 加载第二个PDF文档
PdfDocument pdf2 = new PdfDocument();
pdf2.LoadFromFile("汇报.pdf");
// 获取第一个文档中的第一页
PdfPageBase page = pdf1.Pages[0];
// 获取该页面尺寸
SizeF size = page.Size;
// 基于该页面内容创建模板
PdfTemplate template = page.CreateTemplate();
// 在第二个PDF文档的指定位置插入新页面
PdfPageBase newPage = pdf2.Pages.Insert(0, size, new PdfMargins(0));
// 在第二个PDF文档的末尾添加新页面
//PdfPageBase newPage = pdf2.Pages.Add(size, new PdfMargins(0));
// 在新添加的页面上绘制模板
newPage.Canvas.DrawTemplate(template, new PointF(0, 0));
// 保存文档
pdf2.SaveToFile("复制页面到另一PDF.pdf");
}
}
}
申请临时 License
如果您希望删除结果文档中的评估消息,或者摆脱功能限制,请该Email地址已收到反垃圾邮件插件保护。要显示它您需要在浏览器中启用JavaScript。获取有效期 30 天的临时许可证。