Python实现PDF页面的删除与添加

在处理PDF文档的过程中,我们时常会需要对PDF文档中的页面进行编辑操作的情况,如插入和删除页面。通过添加和删除PDF页面,我们可以增加内容或对不需要的内容进行删除,使文档内容更符合需求。而通过Python实现PDF文档中的插入和删除页面功能,不仅能够极大地提高工作效率,而且可以实现批量化处理,满足大量文档自动化的管理需求。本文将介绍如何使用Python代码实现在PDF文档中添加和删除页面

文章目录

    • 用Python添加页面到PDF文档
    • 用Python删除PDF文档指定页面

本文所使用的方法需要用到Spire.PDF for Python,PyPI:pip install Spire.PDF

申请免费License

用Python添加页面到PDF文档

使用 PdfDocument.Pages.Insert()PdfDocument.Pages.Add(SizeF, PdfMargins) 方法可以轻松地将空白页添加到特定位置或文档末尾。以下是详细步骤。

  1. 导入所需模块。
  2. 创建一个 PdfDocument 对象。
  3. 使用 PdfDocument.LoadFromFile() 方法加载PDF文档。
  4. 使用 PdfDocument.Pages.Insert() 方法创建一个新的空白页,并将其插入到文档的特定位置。
  5. 使用 PdfDocument.Pages.Add(SizeF, PdfMargins) 方法创建另一个具有指定大小和页边距的新空白页,并将其添加到文档末尾。
  6. 使用 PdfDocument.SaveToFile() 方法保存结果文档。
  7. 释放资源。

代码示例:

from spire.pdf.common import *
from spire.pdf import *

# 创建PdfDocument对象
pdf = PdfDocument()

# 加载PDF文档
pdf.LoadFromFile("示例.pdf")

# 在文档中插入一个空白页作为第二页
pdf.Pages.Insert(1)

# 在文档末尾添加一个空白页
pdf.Pages.Add(PdfPageSize.A4(), PdfMargins(0.0, 0.0))

# 保存结果文档
pdf.SaveToFile("output/添加页面的PDF.pdf")
pdf.Close()

结果文档:
Python添加页面到PDF

用Python删除PDF文档指定页面

使用PdfDocument.Pages.RemoveAt()方法可以从PDF中移除指定页面。以下是详细步骤。

  1. 导入所需模块。
  2. 创建一个 PdfDocument 对象。
  3. 使用 PdfDocument.LoadFromFile() 方法加载一个PDF样本文档。
  4. 使用 PdfDocument.Pages.RemoveAt() 方法从文档中移除指定页面。
  5. 使用 PdfDocument.SaveToFile() 方法保存结果文档。
  6. 释放资源。

代码示例:

from spire.pdf.common import *
from spire.pdf import *

# 创建PdfDocument对象
pdf = PdfDocument()

# 加载PDF文档
pdf.LoadFromFile("示例.pdf")

# 删除文档的第二页
pdf.Pages.RemoveAt(1)

# 保存结果文档
pdf.SaveToFile("output/从PDF中删除页面.pdf")
pdf.Close()

结果文档:
Python从PDF删除页面

本文演示了如何使用Python添加页面到PDF文档中,以及从PDF文档中删除指定页面。

更多Python操作PDF技巧,请前往Spie.PDF for Python教程查看。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

明明设置数字居中对齐,为什么excel的数字却不居中?

有时候在excel里,选中数据,设置对齐方式 左右居中,然而,数字却怎么都不居中,为什么呢? 1.按快捷键Ctrl1,打开单元格自定义格式对话框,看到是初始界面是在数字的会计专用,…

TDengine too many open files

too many open files 是比较常见的报错,尤其使用TDengine 3.0 集群时,大概率会遇到。这个报错很简单,但要想顺利解决,却涉及到很多知识点。 目录 知识点:fs.nr_open知识点:file-max & fs.file-nr知识点…

VSCode中 task.json 和 launch.json 的作用和参数解释以及配置教程

前言 由于 VS Code 并不是一个传统意义上的 IDE,所以初学者可能在使用过程中会有很多的疑惑,其中比较常见的一个问题就是 tasks.json和 launch.json两个文件分别有什么作用以及如何配置 tasks.json VSCode 官网提供的 tasks.json 配置教程 使用不同的…

探索HTTP协议的世界 | 从基础到高级应用,原理与实践相结合(请求篇)

从基础到高级应用,原理与实践相结合 什么是Http历代Http协议主要特点格式和URL协议内容请求行格式如下请求方法简单案例 消息报头报头域的格式HTTP消息报头类型普通报头优化方向报头(缓存)Cache-Control的选项其他相关的缓存报头 请求报头Acc…

CLIP大模型图文检索——原理解读及代码实现

一. 核心思想 通过自然语言处理获得的监督信号可用于训练迁移效果出色的视觉模型。本论文的作者团队构建了一个庞大的图像文本配对数据集,其中包含400 million个图片文本的配对。利用最大规模的ViT-large模型,他们提出了CLIP(Contrastive La…

Day38 代码随想录(1刷)动态规划

目录 343. 整数拆分 96. 不同的二叉搜索树 343. 整数拆分 给定一个正整数 n ,将其拆分为 k 个 正整数 的和( k > 2 ),并使这些整数的乘积最大化。 返回 你可以获得的最大乘积 。 示例 1: 输入: n 2 输出: 1 解释: 2 1 1, 1…

SQLite 在Android安装与定制方案(十七)

返回:SQLite—系列文章目录 上一篇:SQLite超详细的编译时选项(十六) 下一篇:SQLite Android 绑定(十八) 安装 有三种方法可以将 SQLite Android 绑定添加到应用程序: 1、通过…

迭代器模式:统一访问集合元素的优雅方式

在面向对象的软件开发中,迭代器模式是一种行为型设计模式,它提供了一种方法来顺序访问一个聚合对象中的各个元素,而又无需暴露该对象的内部表示。这种模式是集合处理特别是遍历集合的核心机制。本文将详细介绍迭代器模式的定义、实现、应用场…

《零基础入行IT:步步为营的转型攻略与实践策略》

在信息化社会,IT行业以其强劲的发展势头、广阔的就业前景和丰厚的薪酬待遇,吸引了无数希望转行或初入职场人士的目光。然而,对于毫无相关背景知识的人来说,如何成功叩开IT行业的大门,似乎是一项颇具挑战性的任务。本文…

element-ui的年份范围选择器,选择的年份需等于或小于当前年份,选择的年份范围必须在三年之内

写在前面 日期限制处理(禁用),下面我以我这边的需求为例, 选择的年份需等于或小于当前年份 选择的年份范围必须在三年之内 1.限制起始日期小于截止日期 1)根据用户选中的开始日期,置灰不可选的日期范围&…

[RK3399 Linux] 使用ubuntu 20.04.5制作rootfs

一、ubuntu base ubuntu base是用于为特定需求创建自定义映像的最小rootfs,是ubuntu可以运行的最小环境。 1.1 下载源码 下载ubuntu-base的方式有很多,可以从官方的地址:ttp://cdimage.ubuntu.com/ubuntu-base/releases。 也可以其它镜像地址下载,如清华源:https://mi…

【小技巧】机器学习中可视化高维向量的两种方法PCA和t-SNE,以及其原理介绍和代码示例(附代码)

使用情景:比如说现在我有一批numpy的多维向量,比如说都是256维度的,X.shape(n, 256), 已知它们都是经过训练能够在256dim的超球面上实现分类或聚类的,现在我想把它们可视化出来看看各个簇在超球面上的分布是怎样的? 1…

Ollama、FastGPT大模型RAG结合使用案例

参考: https://ollama.com/download/linux https://doc.fastai.site/docs/intro/ https://blog.csdn.net/m0_71142057/article/details/136738997 https://doc.fastgpt.run/docs/development/custom-models/m3e/ Ollama作为后端大模型加载运行 FastGPT作为前端页面聊天集成RA…

【TI毫米波雷达】I2C初始化配置和主机数据收发,用SDA来模拟UART数据输出,可直接连接IWR6843AOP开发板引脚

【TI毫米波雷达】I2C初始化配置和主机数据收发,用SDA来模拟UART数据输出,可直接连接IWR6843AOP开发板引脚 文章目录 导入库引脚复用初始化I2C配置数据发送用SDA来模拟UART数据输出附录:结构框架雷达基本原理叙述雷达天线排列位置芯片框架Demo…

代理服务器端口分配测试

上游服务器需要一个短暂或临时端口请求下游服务器&#xff0c;测试端口分配方式。 参考nginx 摘录-腾讯云开发者社区-腾讯云 框架为 <dependency><groupId>org.mitre.dsmiley.httpproxy</groupId> <artifactId>smiley-http-proxy-servlet</ar…

数据结构课程设计(七)---求图的中心顶点 [图]

1.7.1 题目内容 1.7.1-A [问题描述] 假设有一个公司在某个地区有n个产品销售点&#xff0c;现根据业务需要打算在其中某个销售点上建立一个中心仓库&#xff0c;负责向其它销售点提供产品。由于运输线路不同&#xff0c;运输费用也不同。假定每天需要向每个销售点运输一次产品…

Android网络抓包--Charles

一、Android抓包方式 对Https降级进行抓包&#xff0c;降级成Http使用抓包工具对Https进行抓包 二、常用的抓包工具 wireshark&#xff1a;侧重于TCP、UDP传输层&#xff0c;HTTP/HTTPS也能抓包&#xff0c;但不能解密HTTPS报文。比较复杂fiddler&#xff1a;支持HTTP/HTTPS…

Ubuntu 20.04 设置开启 root 远程登录连接

Ubuntu默认不设置 root 帐户和密码 Ubuntu默认不设置 root 帐户和密码 Ubuntu默认不设置 root 帐户和密码 如有需要&#xff0c;可在设置中开启允许 root 用户登录。具体操作步骤如下&#xff1a; 操作步骤 1、首先使用普通用户登录 2、设置root密码 macw:~$ sudo passwd …

Docker部署Logstash同步Mysql数据到ES

1、准备配置文件文件夹 2、部署logstash & elasticsearch docker pull docker.elastic.co/logstash/logstash:7.15.0 ## 替换{你的ES地址}为ES地址 docker run -d --name logstash -p 5044:5044 -p 9600:9600 -v D:\logstash\data\:/usr/share/logstash/data -v D:\logst…

【并发】 第五篇 原子操作(二) - CAS 详解

导航 一. 简介二. CAS原子操作原理三. CAS 实现自旋锁四. CAS原子操作的优点1. 非阻塞2. 原子性3. 高效性五. CAS原子操作的缺点1. ABA问题2. 自旋开销3. 只能保证一个共享变量的原子性操作一. 简介 CAS是"比较并交换"(Compare and Swap)的缩写。是一种并发控制机…