Spire.PDF for .NET【页面设置】演示:复制 PDF 文档中的页面

在某些情况下,我们需要创建 PDF 文档中现有页面的副本,而不是复制整个文件,特别是如果我们必须创建某个页面的数百份副本,那么逐个复制页面可能会很繁琐。本文演示了如何使用 Spire.PDF 复制 PDF 文档中的页面并一次创建多个副本的解决方案。

Spire.PDF for .NET 是一款独立 PDF 控件,用于 .NET 程序中创建、编辑和操作 PDF 文档。使用 Spire.PDF 类库,开发人员可以新建一个 PDF 文档或者对现有的 PDF 文档进行处理,且无需安装 Adobe Acrobat。

E-iceblue功能类库Spire 系列文档处理组件均由中国本土团队研发,不依赖第三方软件,不受其他国家的技术或法律法规限制,同时适配国产操作系统如中科方德、中标麒麟等,兼容国产文档处理软件 WPS(如 .wps/.et/.dps 等格式

Spire.PDF for.net下载

在此示例中,我准备了一个仅包含一页的示例 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
相关推荐
wechatbot8881 分钟前
极客互动企业微信 SCRM 自动运营平台效果实测
java·微信·企业微信·rpa
需要8265 分钟前
JVM 内存区域与对象创建:一次 GC 从哪来
java·jvm·spring boot·spring·servlet·tomcat
事圆则缓29 分钟前
Java 转 Kotlin 的 Android 迁移路线
java
计算机毕设定制辅导-无忧学长35 分钟前
《基于Vue的流浪动物救助中心管理系统的设计与实现》
java·vue.js·spring boot·流浪动物救助中心管理系统
Mikko737 分钟前
jackson-databind 升到 2.21.6 就安全了吗?jackson-core 是另一个坐标,它那条 high 全局库至今没收
java·后端·安全·json
Java_AI工程师38 分钟前
90%的人写Function Calling,只写了"把参数传给工具执行"这一步,剩下的参数校验、错误重试、超时控制、结果格式化,全是空白。
java·人工智能·程序员
斯维赤42 分钟前
LangChain4j 入门教学(Java 后端狂喜版
java·后端
Java_2017_csdn44 分钟前
Java 8 Stream API 中的 map 和 flatMap 详解
java
AI深栈1 小时前
第 15 章 · 第一个 AI 工作流:Hello Graph 从 START 跑到 END
java·人工智能
搜狐技术产品小编20231 小时前
解锁Kotlin Serialization高阶玩法:详解4种自定义序列化器与动态上下文策略
java·人工智能