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页面旋转需求------无论是单页精准调整、还是批量统一处理,都能通过几行代码实现。

相关推荐
酷酷的佳4 分钟前
python--面向对象(3)
python
百锦再15 分钟前
Python实现开源AI模型引入及测试全过程
人工智能·python·ai·开源·aigc·模型·自然语言
有时有晌24 分钟前
影视解说混剪工具
python·影视解说·影视混剪
BoBoZz1927 分钟前
ImplicitPolyDataDistance 隐式距离显示
python·vtk·图形渲染·图形处理
m5655bj34 分钟前
如何通过 Python 在 Excel 中添加或删除图片
python·excel
qq_3561969535 分钟前
day42Dataset和Dataloader@浙大疏锦行
python
free-elcmacom36 分钟前
机器学习高阶教程<6>推荐系统高阶修炼手册:混排、多任务与在线学习,解锁精准推荐新境界
人工智能·python·学习·算法·机器学习·机器人
西西学代码39 分钟前
Flutter---常用打印图标
前端·python·flutter
企微自动化41 分钟前
企业微信外部群自动化系统的异常处理机制设计
开发语言·python
山土成旧客1 小时前
【Python学习打卡-Day24】从不可变元组到漫游文件系统:掌握数据结构与OS模块
数据结构·python·学习