Python PDF页面设置 -- 旋转页面、调整页面顺序

在将纸质文档扫描成PDF电子文档时,有时可能会出现页面方向翻转或者页面顺序混乱的情况。为了确保更好地浏览和查看PDF文件,本文将分享一个使用Python来旋转PDF页面或者调整PDF页面顺序的解决方案。

目录

使用Python旋转PDF页面

使用Python调整PDF页面顺序


要实现Python对PDF页面进行设置,我们需要用到第三方库 Spire.PDF for Python。该库支持在Python中生成、操作、转换PDF等各项操作。可以下载后手动安装或者使用pip命令来安装:

pip install Spire.PDF

使用Python旋转PDF页面

Spire.PDF for Python支持在当前页面旋转角度的基础上顺时针旋转0度、90度、180度和270度。以下为示例代码:

python 复制代码
from spire.pdf.common import *
from spire.pdf import *

# 创建PdfDocument对象
pdf = PdfDocument()

# 加载PDF文件
pdf.LoadFromFile("分析.pdf")

# 获取第一页
page = pdf.Pages[0]

# 获取页面原始旋转角度
rotation = int(page.Rotation.value)

# 基于原始旋转角度将页面顺时针旋转90度
rotation += int(PdfPageRotateAngle.RotateAngle90.value)
page.Rotation = PdfPageRotateAngle(rotation)

# 保存文件
pdf.SaveToFile("旋转PDF页面.pdf")
pdf.Close()

在以上示例中,我们先使用 PdfPageBase.Rotation.value 属性获取页面的原始旋转角度,然后指定顺时针90度的旋转角度,再通过PdfPageBase.Rotation 属性来旋转PDF页面。

效果图:

使用Python调整PDF页面顺序

按照文档内容的逻辑性、相关联性来重新排列PDF页面可以增强PDF文档可读性。在Python中,我们使用Spire.PDF for Python库提供的 PdfDocument.Pages.ReArrange(orderArray: Listint) 方法可以轻松调整PDF页面顺序。

其中参数orderArray 是一个整数列表,用于指定新的页面顺序。例如,假设我们有一个包含 4 页的 PDF 文档,页码分别为 1、2、3、4。如果我们想重新排列这些页面,使得页面顺序变为 3、1、4、2,那么 orderArray 应该是 2, 0, 3, 1(PDF页面索引从 0 开始)。

以下为示例代码:

python 复制代码
from spire.pdf.common import *
from spire.pdf import *

inputFile = "测试文档.pdf"
outputFile = "重排PDF页面顺序.pdf"

# 创建PdfDocument对象
pdf = PdfDocument()

# 加载PDF文件
pdf.LoadFromFile(inputFile)

# 调整PDF页面顺序
pdf.Pages.ReArrange([1, 0, 2])

# 保存文件
pdf.SaveToFile(outputFile, FileFormat.PDF)
pdf.Close()

效果图:



以上两段代码演示了如何在Python中旋转PDF页面和重排PDF页面顺序。除此之外,该Python库还支持其他PDF页面设置,如设置页边距、页面尺寸等,点击链接查看更多示例:

Spire.PDF for Python 中文教程Spire.PDF for Python 是一款完全独立的 PDF 开发组件,用于在 Python 程序中创建、读取、编辑、转换和保存 PDF 文档。开发人员可以使用 Spire.PDF for Python 类库来新建 PDF 文档或对现有的 PDF 文档进行处理,不需要任何第三方工具。同时,该组...https://www.e-iceblue.cn/pdfforpython/spire-pdf-for-python-program-guide-content.html

相关推荐
砚底藏山河1 小时前
python量化入门:多周期数据对齐统一时间轴
java·数据库·python·金融·maven
毕业设计7032 小时前
(免费领源码)django空气净化器销售系统09218- java、PHP、python、C#、小程序、大数据、单片机、网络工程等)
python·scrapy·mysql·pycharm·django·flask·pandas
小小张说故事2 小时前
Python 闭包到底捕获了啥?一个计数器例子讲透,别再背定义了
python
深蓝AI2 小时前
AI Agent 点了发布却超时:一条回执丢失,为什么能造成两篇文章?
人工智能·python
怪奇云呼军2 小时前
教育试听预约后没到课,闪电智能 Voice Agent 如何做分层回访?
人工智能·python·算法·云计算·音视频
weixin199701080163 小时前
《淘宝TOP API:落地方案、接口边界与业务踩坑 —— 聚石塔内外价差 10 倍的真相》(附 Python 源码)
开发语言·python
梦想的颜色3 小时前
【编程实战】AI 时代 APP 开发全栈硬核指南:技术选型 + AI 架构 + 模型落地全维度决策
python·flutter·react native·react.js·ai·桌面应用·milvus
Madison-No73 小时前
多语言聊天大模型--测试报告
linux·git·python·selenium·jmeter·自动化·postman
鲲鹏ai3 小时前
盈启鲲鹏数字人招商政策
大数据·人工智能·python
荣码3 小时前
从0到1搭一个生产级RAG系统:串联前面21篇所有知识
java·python