Spire.PDF for .NET【文档操作】演示:将新的 PDF 页面插入到指定索引处的现有 PDF 中

news2024/9/22 15:46:45

Spire.PDF 完美支持将多页 PDF 拆分为单页。但是,更常见的情况是,您可能希望提取选定的页面范围并保存为新的 PDF 文档。在本文中,您将学习如何通过 Spire.PDF 在 C#、VB.NET 中根据页面范围拆分 PDF 文件。

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

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

Spire.PDF for.net下载   Spire.PDF for java下载

Spire.PDF 提供了 PdfDocument.MergeFiles(); 方法,使开发人员能够轻松便捷地合并 PDF 文件。本文将向您展示如何使用 Spire.PDF 提供的 Pages.Insert(); 方法将第一个 PDF 中的新页面插入到第二个 PDF 文件的指定索引处。

注意:开始之前,请下载最新版本的Spire.PDF,并将Spire.PDF.dll添加到bin文件夹中作为Visual Studio的引用。

以下是将第一个 PDF(sample.pdf)中的页面插入到第二个 PDF(test.pdf)的指定索引处的步骤:

步骤1:创建第一个PDF文档并加载文件。

PdfDocument doc1 = new PdfDocument();
doc1.LoadFromFile("sample.pdf");

第 2 步:创建第二个 PDF 文档并加载文件。

PdfDocument doc2 = new PdfDocument();
doc2.LoadFromFile("test.pdf");

步骤 3:从第一个 PDF 文档中获取第一页及其大小。

PdfPageBase page = doc1.Pages[0];
SizeF size = page.Size;

步骤 4:在第二个 PDF 的指定索引处插入具有指定大小的新空白页。

PdfPageBase newPage = doc2.Pages.Insert(1, size);

步骤5:将页面上的内容复制到第二个PDF中。

newPage.Canvas.DrawTemplate(page.CreateTemplate(), new PointF(0, 0));

步骤 6:将文档保存到文件。

doc2.SaveToFile("result.pdf");

在指定索引处的现有 PDF 中插入新 PDF 页面的有效屏幕截图:

如何在指定索引处的现有 PDF 中插入新的 PDF 页面

完整代码:

using Spire.Pdf;
using System.Drawing;

namespace InsertNewPage
{
class Program
{
static void Main(string[] args)
{
PdfDocument doc1 = new PdfDocument();
doc1.LoadFromFile("sample.pdf");
PdfDocument doc2 = new PdfDocument();
doc2.LoadFromFile("test.pdf");

PdfPageBase page = doc1.Pages[0];
SizeF size = page.Size;

PdfPageBase newPage = doc2.Pages.Insert(1, size);
newPage.Canvas.DrawTemplate(page.CreateTemplate(), new PointF(0, 0));

doc2.SaveToFile("result.pdf");
}
}
}

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

ArcGIS JSAPI 高级教程 - ArcGIS Maps SDK for JavaScript - 探测效果(地图探测、地图窥探)

ArcGIS JSAPI 高级教程 - ArcGIS Maps SDK for JavaScript - 探测效果(地图探测、地图窥探) 核心代码完整代码:在线示例 ArcGIS Maps SDK for JavaScript 从 4.29 开始增加 RenderNode 类,可以添加数据以及操作 FBO(Ma…

助力草莓智能自动化采摘,基于YOLOv5全系列【n/s/m/l/x】参数模型开发构建果园种植采摘场景下草莓成熟度智能检测识别系统

随着科技的飞速发展,人工智能(AI)技术已经渗透到我们生活的方方面面,从智能家居到自动驾驶,再到医疗健康,其影响力无处不在。然而,当我们把目光转向中国的农业领域时,一个令人惊讶的…

四川古力未来科技抖音小店打造品质生活,可靠之选引领潮流

在当今数字化快速发展的时代,电商平台如雨后春笋般涌现,抖音小店作为其中的佼佼者,凭借其独特的短视频电商模式,迅速吸引了大批年轻消费者的目光。而在众多的抖音小店中,四川古力未来科技抖音小店凭借其卓越的品质和专…

SwiftUI 利用 Swizz 黑魔法为系统创建的默认对象插入新协议方法(六)

功能需求 在 SwiftUI 的开发中,我们往往需要借助底层 UIKit 的“上帝之手”来进一步实现额外的定制功能。比如,在可拖放(Dragable)SwiftUI 的实现中,会缺失拖放取消的回调方法让我们这些秃头码农们“欲哭无泪” 如上图所示,我们在拖放取消时将界面中的一切改变都恢复如初…

机器学习-监督学习6大核心算法技术精讲与代码实战

监督学习线性回归、逻辑回归、决策树、支持向量机、K近邻、朴素贝叶斯算法精讲,模型评估精讲 关注作者,复旦AI博士,分享AI领域与云服务领域全维度开发技术。拥有10年互联网服务架构、AI产品研发经验、团队管理经验,同济本复旦硕博…

载波相移CPS-SPWM调制方法的simulink建模与仿真

目录 1.课题概述 2.系统仿真结果 3.核心程序与模型 4.系统原理简介 5.完整工程文件 1.课题概述 载波相移CPS-SPWM调制方法的simulink建模与仿真,载波相移PWM方法: 2.系统仿真结果 单极倍频 釆用 调制波 反相 法 , 基本调制原理为 &…

【计算机毕业设计】259基于微信小程序的医院综合服务平台

🙊作者简介:拥有多年开发工作经验,分享技术代码帮助学生学习,独立完成自己的项目或者毕业设计。 代码可以私聊博主获取。🌹赠送计算机毕业设计600个选题excel文件,帮助大学选题。赠送开题报告模板&#xff…

西门子学习笔记13 - mtqq库项目

这是我整合过后的mqtt库的下载地址 https://download.csdn.net/download/qq_61916672/89423266https://download.csdn.net/download/qq_61916672/89423266

代码随想录算法训练营第三十六天| 860.柠檬水找零、 406.根据身高重建队列、 452. 用最少数量的箭引爆气球

LeetCode 860.柠檬水找零 题目链接:https://leetcode.cn/problems/lemonade-change/description/ 文章链接:https://programmercarl.com/0860.%E6%9F%A0%E6%AA%AC%E6%B0%B4%E6%89%BE%E9%9B%B6.html 思路 贪心算法:遇见20的时候有两种找零的…

C++的STL 中 set.map multiset.multimap 学习使用详细讲解(含配套OJ题练习使用详细解答)

目录 一、set 1.set的介绍 2.set的使用 2.1 set的模板参数列表 2.2 set的构造 2.3 set的迭代器 2.4 set的容量 2.5 set的修改操作 2.6 set的使用举例 二、map 1.map的介绍 2.map的使用 2.1 map的模板参数说明 2.2 map的构造 2.3 map的迭代器 2.4 map的容量与元…

力扣刷题--2843. 统计对称整数的数目【简单】

题目描述 给你两个正整数 low 和 high 。 对于一个由 2 * n 位数字组成的整数 x ,如果其前 n 位数字之和与后 n 位数字之和相等,则认为这个数字是一个对称整数。 返回在 [low, high] 范围内的 对称整数的数目 。 示例 1: 输入&#xff1…

“大模型高考状元”花落谁家?高考前夜这个AI火了

“大模型高考元年”来了!2024高考刚刚落幕,市面上的大模型几乎都被提溜出来,在公众围观下角逐“AI高考状元”。 就在高考前夜,有一家大模型公司放了大招。6月7日凌晨0点左右,阿里云发布通义千问第二代开源模型Qwen2。…

Spring:element-ui中的tree、树形结构的实现

一、三层架构代码 可能很多人都没写过关于tree的代码&#xff0c;今天我来演示一下&#xff0c;步骤很全&#xff0c;放心观看。 首先来看element-ui官网关于tree的示例&#xff1a; <el-tree :data"data" :props"defaultProps" node-click"hand…

利用Pandas数据过滤减少运算时间

当处理大型数据集时&#xff0c;使用 Pandas 可以提高数据处理的效率。Pandas 提供了强大的数据结构和功能&#xff0c;包括数据过滤、筛选、分组和聚合等&#xff0c;可以帮助大家快速减少运算时间。 1、问题背景 我有一个包含37456153行和3列的Pandas数据帧&#xff0c;其中…

利用泽攸科技原位TEM技术揭示真空击穿过程中电场与电极材料相互作用

在高能物理设备和许多其他设备中&#xff0c;真空击穿&#xff08;VBD&#xff09;现象对高能物理设备的性能造成了严重的阻碍&#xff0c;包括真空断路器、X射线源、聚变反应堆以及粒子加速器等。然而由于对导致VBD的机制缺乏足够的科学理解&#xff0c;这些问题至今无法得到缓…

【stable diffusion】ComfyUI扩展安装以及点开后页面空白问题解决办法

扩展安装 虽然大家都推荐将扩展包直接放到extension文件夹的方式,但我还是推荐直接在sd webui的扩展处下载,酱紫比较好维护一点,我个人感觉。 按照上图顺序点击会出现”URLError: <urlopen error [Errno 11004] getaddrinfo failed>”的情况,问题不大,打开一个git…

隐藏字符串中间字符,一个公共方法解决产品的所有设想

说到隐藏字符串中间字符&#xff0c;就是 13833321212 给用户显示成 “138***1212” 这样子呗&#xff0c;你是不是也是这样认为的。我刚开始拿到需求&#xff0c;就是这样认为的。但是越到后来发现越不对劲儿。来看看我的隐藏历程吧。 一 产品来了 1 加星第一步 产品刚开始…

ThinkBook 16 2024 Ubuntu 触控板问题解决

sudo insmod goodix-gt7868q.ko sudo cp local-overrides.quirks /etc/libinput/local-overrides.quirks sudo systemctl restart gdm 有偿解决&#xff0c;无效退款

R语言使用survivalsvm包进行支持向量机生存分析

1995年VAPINK 等人在统计学习理论的基础上提出了一种模式识别的新方法—支持向量机 。它根据有限的样本信息在模型的复杂性和学习能力之间寻求一种最佳折衷。 以期获得最好的泛化能力.支持向量机的理论基础决定了它最终求得的是全局最优值而不是局部极小值,从而也保证了它对未知…

LeetCode题练习与总结:二叉树中的最大路径和--124

一、题目描述 二叉树中的 路径 被定义为一条节点序列&#xff0c;序列中每对相邻节点之间都存在一条边。同一个节点在一条路径序列中 至多出现一次 。该路径 至少包含一个 节点&#xff0c;且不一定经过根节点。 路径和 是路径中各节点值的总和。 给你一个二叉树的根节点 ro…