在某些情况下,我们需要创建 PDF 文档中现有页面的副本,而不是复制整个文件,特别是如果我们必须创建某个页面的数百份副本,那么逐个复制页面可能会很繁琐。本文演示了如何使用 Spire.PDF 复制 PDF 文档中的页面并一次创建多个副本的解决方案。
Spire.PDF for .NET 是一款独立 PDF 控件,用于 .NET 程序中创建、编辑和操作 PDF 文档。使用 Spire.PDF 类库,开发人员可以新建一个 PDF 文档或者对现有的 PDF 文档进行处理,且无需安装 Adobe Acrobat。
E-iceblue 功能类库Spire 系列文档处理组件均由中国本土团队研发,不依赖第三方软件,不受其他国家的技术或法律法规限制,同时适配国产操作系统如中科方德、中标麒麟等,兼容国产文档处理软件 WPS(如 .wps/.et/.dps 等格式
在此示例中,我准备了一个仅包含一页的示例 PDF 文件,最终我将在同一文档中创建该页的十个副本。主要方法如下:
代码片段:
步骤 1:创建一个新的 PDF 文档并加载示例文件。
PdfDocument pdf = new PdfDocument("Sample.pdf");
步骤2:从PDF中获取第一页,获取页面大小。根据第一页的内容和外观创建一个新的Pdf Template对象实例。
PdfPageBase page = pdf.Pages[0]; SizeF size = page.Size; PdfTemplate template = page.CreateTemplate();
步骤 3 :使用Pages.Add()方法根据第一页的大小创建一个新的 PDF 页面,在新页面上的指定位置绘制模板。使用 for 循环获取此页面的更多副本。
for (int i = 0; i < 10; i++) { page = pdf.Pages.Add(size, new PdfMargins(0)); page.Canvas.DrawTemplate(template, new PointF(0, 0)); }
步骤 4:保存文件。
pdf.SaveToFile("Result.pdf");
输出:
示例 PDF 文档中已创建第一页的十份副本。
完整代码:
[C#]
using Spire.Pdf; using Spire.Pdf.Graphics; using System.Drawing; namespace DuplicatePage { class Program { static void Main(string[] args) { PdfDocument pdf = new PdfDocument("Sample.pdf"); PdfPageBase page = pdf.Pages[0]; SizeF size = page.Size; PdfTemplate template = page.CreateTemplate(); for (int i = 0; i < 10; i++) { page = pdf.Pages.Add(size, new PdfMargins(0)); page.Canvas.DrawTemplate(template, new PointF(0, 0)); } pdf.SaveToFile("Result.pdf"); } } }
[VB.NET]
Imports Spire.Pdf Imports Spire.Pdf.Graphics Imports System.Drawing Namespace DuplicatePage Class Program Private Shared Sub Main(args As String()) Dim pdf As New PdfDocument("Sample.pdf") Dim page As PdfPageBase = pdf.Pages(0) Dim size As SizeF = page.Size Dim template As PdfTemplate = page.CreateTemplate() For i As Integer = 0 To 9 page = pdf.Pages.Add(size, New PdfMargins(0)) page.Canvas.DrawTemplate(template, New PointF(0, 0)) Next pdf.SaveToFile("Result.pdf") End Sub End Class End Namespace