使用 Python 旋转PDF页面、或调整PDF页面顺序

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

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

复制代码
pip install Spire.PDF

使用Python旋转PDF页面

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

复制代码
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 开始)。

以下为示例代码:

复制代码
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页面设置,如设置页边距、页面尺寸等,点击链接查看更多示例:

https://www.e-iceblue.cn/pdfforpython/spire-pdf-for-python-program-guide-content.html

相关推荐
云和数据.ChenGuang23 分钟前
光哥说Python 循环导入(Circular Import)深度解析:成因、排查与解决方案
开发语言·前端·人工智能·python·langchain
TomEval36 分钟前
【测AI】第16篇:模型公平性与可解释性测试 — AI 的偏见与黑箱
人工智能·python·功能测试·ai·测试用例
田里的水稻41 分钟前
FA_CNN卷积神经网络四---线性层及其拉平PyTorch
人工智能·pytorch·python·深度学习·神经网络·cnn
钱栈up1 小时前
GitHub热榜上手|Claude插件:4.3万星官方目录
python·开源·github
青春不朽5121 小时前
Python 的 list append 为什么是均摊 O(1)?拆开过度分配那张表,看容量翻倍背后的暗账
java·python·list
小羊没烦恼!2 小时前
.NET 11 Runtime Async 详解
java·运维·开发语言·javascript·python
染指11102 小时前
152.Agent-LangGraph-Command的参数
人工智能·python·langchain·agents
第404号工位2 小时前
“已彻底删除”的照片与文件到底去哪了?我用底层扇区扫描,扒出手机和电脑的幽灵数据
linux·python·架构
智购科技自动售卖机厂家2 小时前
双摄像头方案F1-score只有0.85,排查发现是上下视角的融合逻辑写反了~YH
python·单片机·嵌入式硬件·算法·eclipse
田里的水稻2 小时前
FA_CNN卷积神经网络二---PyTorch
人工智能·pytorch·python·深度学习·cnn