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

相关推荐
c***87192 小时前
Flask:后端框架使用
后端·python·flask
Q_Q5110082853 小时前
python+django/flask的情绪宣泄系统
spring boot·python·pycharm·django·flask·node.js·php
撸码猿3 小时前
《Python AI入门》第9章 让机器读懂文字——NLP基础与情感分析实战
人工智能·python·自然语言处理
二川bro3 小时前
多模态AI开发:Python实现跨模态学习
人工智能·python·学习
2301_764441333 小时前
Python构建输入法应用
开发语言·python·算法
love530love3 小时前
【笔记】ComfUI RIFEInterpolation 节点缺失问题(cupy CUDA 安装)解决方案
人工智能·windows·笔记·python·插件·comfyui
青瓷程序设计3 小时前
昆虫识别系统【最新版】Python+TensorFlow+Vue3+Django+人工智能+深度学习+卷积神经网络算法
人工智能·python·深度学习
秋邱4 小时前
智启未来:AGI 教育融合 × 跨平台联盟 × 个性化空间,重构教育 AI 新范式开篇:一场 “教育 ×AI” 的范式革命
人工智能·python·重构·推荐算法·agi
爱吃泡芙的小白白4 小时前
vscode、anaconda、git、python配置安装(自用)
ide·git·vscode·python·anaconda·学习记录