Python 实现 PDF 页面旋转

在日常办公或文档处理中,我们经常会遇到PDF页面方向错误的问题,比如扫描的文档旋转了90度,或者排版时页面方向不符合需求。手动调整每个页面不仅效率低,还容易出错。本文将分享如何用 Python 结合 Free Spire.PDF for Python 库,高效、灵活地实现 PDF 页面旋转。

在开始编码前,需先通过 pip 命令安装该库,安装命令如下(建议使用虚拟环境避免依赖冲突):

sh 复制代码
pip install Spire.Pdf.Free

基础实现:单页PDF精准旋转

以旋转第一页180度为例,结合代码解析核心逻辑:

完整代码

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

# 1. 初始化PDF文档对象
pdf = PdfDocument()

# 2. 加载目标PDF文件(路径需正确)
pdf.LoadFromFile("Sample.pdf")

# 3. 获取需要旋转的页面(索引从0开始,此处为第一页)
page = pdf.Pages[0]

# 4. 获取页面当前旋转角度
rotation = int(page.Rotation.value)

# 5. 计算新旋转角度(基于原始角度+180度)
rotation += int(PdfPageRotateAngle.RotateAngle180.value)

# 6. 应用新旋转角度
page.Rotation = PdfPageRotateAngle(rotation)

# 7. 保存处理后的PDF并释放资源
pdf.SaveToFile("RotatePDFPage.pdf")
pdf.Close()

代码解析

  • 初始化对象PdfDocument()是操作PDF的核心入口,负责文档的加载、编辑与保存。
  • 加载文件LoadFromFile()支持本地PDF路径或流读取,需确保文件存在且路径正确。
  • 页面索引Pages[0]对应第一页,若需操作第二页则用Pages[1],以此类推。
  • 旋转角度控制PdfPageRotateAngle是枚举类,定义了标准旋转角度(0/90/180/270度);page.Rotation.value可获取当前角度的数值(如0/90),便于动态计算。
  • 资源释放Close()必须调用,避免内存泄漏。

进阶操作:覆盖多场景旋转需求

1. 旋转指定角度(90/270度)

若需将页面顺时针旋转90度,只需修改枚举值:

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

pdf = PdfDocument()
pdf.LoadFromFile("Sample.pdf")
page = pdf.Pages[0]
rotation = int(page.Rotation.value)
# 替换为RotateAngle90(90度)或RotateAngle270(270度)
rotation += int(PdfPageRotateAngle.RotateAngle90.value)
page.Rotation = PdfPageRotateAngle(rotation)
pdf.SaveToFile("Rotate90.pdf")
pdf.Close()

2. 批量旋转所有页面

遍历Pages集合即可实现多页统一旋转:

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

pdf = PdfDocument()
pdf.LoadFromFile("Sample.pdf")

# 遍历所有页面
for page in pdf.Pages:
    rotation = int(page.Rotation.value)
    rotation += int(PdfPageRotateAngle.RotateAngle180.value)
    page.Rotation = PdfPageRotateAngle(rotation)

pdf.SaveToFile("RotateAllPages.pdf")
pdf.Close()

关键知识点:PdfPageRotateAngle枚举

Free Spire.PDF for Python 通过枚举类标准化旋转角度,避免手动输入数值出错:

  • RotateAngle0:0度(无旋转)
  • RotateAngle90:顺时针90度
  • RotateAngle180:顺时针180度
  • RotateAngle270:顺时针270度

注意 :旋转角度是累加的(如页面已旋转90度,再加90度会变为180度)。


Free Spire.PDF for Python 以轻量化、API简洁的优势,完美解决PDF页面旋转需求------无论是单页精准调整、还是批量统一处理,都能通过几行代码实现。

相关推荐
Blossom.1181 天前
联邦迁移学习实战:在数据孤岛中构建个性化推荐模型
开发语言·人工智能·python·深度学习·神经网络·机器学习·迁移学习
Blossom.1181 天前
大模型自动化压缩:基于权重共享的超网神经架构搜索实战
运维·人工智能·python·算法·chatgpt·架构·自动化
天天睡大觉1 天前
Python学习7
windows·python·学习
唐叔在学习1 天前
Pywebview进阶:基于Python直接操作前端元素
后端·python
夫唯不争,故无尤也1 天前
智能旅行助手agent:从零构建AI旅游推荐
人工智能·python·大模型开发
Cigaretter71 天前
Day 42 简单CNN
python·深度学习·cnn
二哈喇子!1 天前
PyTorch 生态与昇腾平台适配实践
人工智能·pytorch·python
这里是彪彪1 天前
Java模拟实现定时器
java·开发语言·python
怎么追摩羯座1 天前
使用PyCharm调用Ollama,制作智能问答机器人
ide·python·pycharm·大模型·ollama
怎么追摩羯座1 天前
win安装使用PyCharm
ide·python·pycharm