复制 PDF 页面是高效整合信息的重要手段。通过复制包含关键数据或重要结论的页面,然后将其编译整合到一个新文档中,您可以将不同来源的相关内容汇集在一起,创建一个条理分明、便于快速检索与浏览的连贯资源文档。本文将介绍如何使用 Spire.PDF for .NET 通过 C# 复制 PDF 中的页面。
安装 Spire.PDF for .NET
首先,您需要添加 Spire.PDF for .NET 包中包含的 DLL 文件作为 .NET 项目中的引用。DLL 文件可以从此链接下载或通过 NuGet 安装。
PM> Install-Package Spire.PDFC# 在同一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 天的临时许可证。
 



 
					



