Spire.PDF for .NET【文档操作】演示:将多个 PDF 文件中的选定页面合并为一个

使用 Spire.PDF,您不仅可以将多个 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下载   Spire.PDF for java下载

步骤1:获取PDF文件路径并存储在字符串数组中。

string[] files = { "Sample1.pdf", "Sample2.pdf", "Sample3.pdf" };

步骤2:将每个PDF文档加载到PdfDocument对象中,并将所有这些对象存储在PdfDocument数组中。

PdfDocument[] docs = new PdfDocument[files.Length];for (int i = 0; i < files.Length; i++)
{
docs[i] = new PdfDocument(files[i]);
}

步骤 3:创建 PdfDocument 类的实例。

PdfDocument doc = new PdfDocument();

步骤 4:调用 InsertPage(PdfDocument doc, int pageIndex) 方法和 InertPageRange(PdfDocument doc, int startIndex, int endIndex) 方法将选定的页面插入到新的 PDF 文档中。

doc.InsertPage(docs[0], 0);

doc.InsertPage(docs[0], 0);
doc.InsertPage(docs[1], 1);
doc.InsertPageRange(docs[2], 2, 5);

第 5 步:保存并启动文件。

doc.SaveToFile("Result.pdf");
Process.Start("Result.pdf");

效果截图

使用 C#、VB.NET 将多个 PDF 文件中的选定页面合并为一个

完整代码

[C#]

using Spire.Pdf;
using System.Diagnostics;namespace MergeSelectedPages
{
class Program
{
static void Main(string[] args)
{
string[] files = { "Sample1.pdf", "Sample2.pdf", "Sample3.pdf" };
PdfDocument[] docs = new PdfDocument[files.Length];//open pdf documents
for (int i = 0; i < files.Length; i++)
{
docs[i] = new PdfDocument(files[i]);
}//create a new pdf document and insert selected pages
PdfDocument doc = new PdfDocument();
doc.InsertPage(docs[0], 0);
doc.InsertPage(docs[1], 1);
doc.InsertPageRange(docs[2], 2, 5);doc.SaveToFile("Result.pdf");
Process.Start("Result.pdf");
}
}
}

[VB.NET]

Imports Spire.Pdf
Imports System.DiagnosticsNamespace MergeSelectedPages
Class Program
Private Shared Sub Main(args As String())
Dim files As String() = {"Sample1.pdf", "Sample2.pdf", "Sample3.pdf"}
Dim docs As PdfDocument() = New PdfDocument(files.Length - 1) {}'open pdf documents
For i As Integer = 0 To files.Length - 1
docs(i) = New PdfDocument(files(i))
Next'create a new pdf document and insert selected pages
Dim doc As New PdfDocument()
doc.InsertPage(docs(0), 0)
doc.InsertPage(docs(1), 1)
doc.InsertPageRange(docs(2), 2, 5)doc.SaveToFile("Result.pdf")
Process.Start("Result.pdf")
End Sub
End Class
End Namespace

以上便是如何将多个 PDF 文件中的选定页面合并为一个,如果您有其他问题也可以继续浏览本系列文章,获取相关教程~

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/698364.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

高血压患者可以吃什么?不可以吃什么?

点击文末领取揿针的视频教程跟直播讲解 随着生活水平的提高&#xff0c;越来越多的人得上了“新四高”——高血压、高血脂、高血糖、高尿酸。 一旦惹上这些慢性病&#xff0c;那就得「管住嘴」了~但究竟什么能吃、什么不能吃&#xff0c;还是有很多人不清楚 高血压患者应该遵…

实在智能AI+RPA:引领数字化转型的超自动化智能体

引言 在数字化时代&#xff0c;企业面临着前所未有的挑战和机遇。数字化转型不仅是企业生存的需要&#xff0c;更是实现持续增长和创新的关键。AIRPA作为数字化转型的重要驱动力&#xff0c;正帮助企业实现业务流程的自动化和智能化&#xff0c;从而提升效率、降低成本、增强竞…

树莓派指令raspi-gpio控制gpio引脚输出输入

raspi-gpio help 帮助 raspi-gpio get 获取引脚状态 level是电平&#xff0c; func是功能 raspi-gpio set 设置gpio引脚 raspi-gpio set 20 pu op dl 20是GPIO20&#xff0c; pu是上拉&#xff0c; op是output输出&#xff0c; dl是drive low低电平

React 第三十章 React 和 Vue 描述页面的区别

面试题&#xff1a;React 和 Vue 是如何描述 UI 界面的&#xff1f;有一些什么样的区别&#xff1f; 标准且浅显的回答&#xff1a; React 中使用的是 JSX&#xff0c;Vue 中使用的是模板来描述界面 前端领域经过长期的发展&#xff0c;目前有两种主流的描述 UI 的方案&#xf…

Q1季度电饭煲家电行业线上市场(京东天猫淘宝)销售数据排行榜

鲸参谋监测的2024年Q1季度线上电商平台&#xff08;天猫淘宝京东&#xff09;电饭煲家电销售数据已出炉&#xff01; 今年Q1季度&#xff0c;电饭煲销售成绩不如预期。根据鲸参谋数据显示&#xff0c;今年Q1季度在线上电商平台&#xff08;淘宝天猫京东&#xff09;电饭煲销量…

2023年上半年信息系统项目管理师——综合知识真题与答案解释(3)

2023年上半年信息系统项目管理师 ——综合知识真题与答案解释(3) 目录 零、时光宝盒 一、试题&#xff08;接上篇&#xff09; 51、订立项目分包合同需满足以下&#xff08;51&#xff09;条件 52、在以下干系人参与度矩阵中&#xff0c;需要授权管理职责并引导其积极参与…

数据结构(1)

数据结构学什么&#xff1f; ①&#xff1a;如何用程序代码把现实世界的问题信息化 ②&#xff1a;如何用计算机高效地处理这些信息从而创造价值 第一章、绪论 首先&#xff0c;初代计算机关注与数值计算的问题&#xff0c;现代计算关注与非数值类的问题&#xff0c;对于非…

基于模板生成 NER 训练数据

NER 数据模板 模板中的标记作为占位符&#xff0c;用实际的数据去填充。 根据占位符生成样本 tag2sample {PER: (person,per_data),LOC: (address,loc_data),ORG: (organization,org_data) }def replace_tag(tag):tag tag.strip(<>)for k, v in tag2sample.items():i…

unordered_map 和 unordered_set

unordered —— 无序的&#xff0c;从表面上来看&#xff0c;与 map 和 set 不同之处就在于&#xff0c;unordered_map 和 unordered_set 无法保证插入数据是有序的&#xff1b; 尽管如此&#xff0c;由于这两种容器内部封装了“哈希桶”&#xff0c;可以实现快速查找数据 ——…

【C++】深度解析:用 C++ 模拟实现 String 类,探索其底层实现细节

目录 了解string类 string的内存管理 VS下string的结构 ​g下string的结构 string的模拟实现 string的构造函数 浅拷贝 深拷贝 string的遍历 重载 [] 下标访问 迭代器访问 reserve resize 增删查改 push_back() append和 insert和erase find substr swap 流插入…

自然资源-“十四五”规划引领,审批智慧化提升-值得学习

自然资源-“十四五”规划引领&#xff0c;审批智慧化提升-值得学习 2022年1月12日&#xff0c;国务院正式印发了《“十四五”数字经济发展规划》&#xff08;国发〔2021〕29号&#xff09;&#xff0c;从八个方面对“十四五”期间我国数字经济发展做出总体部署。其中第五点要求…

SpringBoot报空指针错:java.lang.NullPointerException

虽然报空指针错误的原因可能有很多种&#xff0c;但是我还是写上我的报错原因&#xff0c;以此与各位共勉~ 在这里提前说一句&#xff0c;AI虽然强大&#xff0c;但是还是要谨慎使用啊(血的教训)~ 这里先截图我错误的地方&#xff1a; 前端能成功传进来值&#xff0c;后台控制…