python处理pdf旋转
时间: 2025-06-24 07:41:06 浏览: 7
### 使用Python库实现PDF文件旋转
#### PyPDF2 实现 PDF 文件旋转
`PyPDF2` 是一个功能强大的 Python 库,用于读取、写入和修改 PDF 文件。它提供了 `rotateClockwise()` 和 `rotateCounterClockwise()` 方法来实现页面的顺时针或逆时针旋转。
以下是使用 `PyPDF2` 进行 PDF 页面旋转的具体示例:
```python
from PyPDF2 import PdfFileReader, PdfFileWriter
# 打开原始 PDF 文件
with open("input.pdf", "rb") as infile:
reader = PdfFileReader(infile)
writer = PdfFileWriter()
# 遍历每一页并应用旋转
for page_num in range(reader.getNumPages()):
page = reader.getPage(page_num)
# 假设我们希望第一页顺时针旋转 90 度
if page_num == 0:
page.rotateClockwise(90)
# 将旋转后的页面添加到新的 PDF 写入器中
writer.addPage(page)
# 输出旋转后的 PDF 文件
with open("output_rotated.pdf", "wb") as outfile:
writer.write(outfile)
```
此代码片段展示了如何通过遍历 PDF 的每一页并对特定页面调用 `rotateClockwise()` 或 `rotateCounterClockwise()` 来完成旋转操作[^5]。
---
#### pdfplumber 是否支持 PDF 文件旋转?
需要注意的是,`pdfplumber` 主要专注于从 PDF 文件中提取文本和表格数据,并不提供直接的操作方法(如旋转页面)。因此,在涉及 PDF 文件结构更改的任务中,建议优先考虑其他工具,例如 `PyPDF2` 或 `fitz` (也称为 `PyMuPDF`)。
如果需要同时执行复杂的 PDF 处理任务,则可能需要结合多个库的功能。例如,先使用 `PyPDF2` 修改 PDF 结构,再使用 `pdfplumber` 提取消息[^3]。
---
#### fitz (PyMuPDF) 实现 PDF 文件旋转
除了 `PyPDF2`,另一个常用的 PDF 操作库是 `fitz`(即 `PyMuPDF`),它可以轻松实现 PDF 页面的旋转。
下面是基于 `fitz` 的 PDF 页面旋转示例代码:
```python
import fitz # 导入 PyMuPDF
doc = fitz.open("input.pdf")
for page_num in range(len(doc)):
page = doc.load_page(page_num)
# 设置旋转角度(90 表示顺时针旋转)
rotation_angle = 90
# 如果需要针对某页特殊处理,可在此处加入条件判断
if page_num == 0: # 仅对第一页进行旋转
page.set_rotation(rotation_angle)
doc.save("output_rotated_fitz.pdf")
doc.close()
```
这段代码演示了如何加载 PDF 文件并通过设置页面对象的旋转角度来调整其方向[^4]。
---
### 总结
- **PyPDF2** 支持简单的 PDF 页面旋转操作,适合轻量级需求。
- **pdfplumber** 不具备直接修改 PDF 文件的能力,主要用于数据分析场景下的内容提取。
- **fitz (PyMuPDF)** 功能全面,能够高效完成复杂任务,包括但不限于页面旋转。
以上三种方式均可满足不同层次的需求,具体选择取决于实际应用场景和个人偏好。
阅读全文
相关推荐

















