如何通过Python代码旋转PDF页面

前言

日常处理 PDF 文档时,我们时常会遇到页面颠倒、很难正常阅读或打印的情况。 在这种情况下,我们可以通过旋转页面来调整文档的方向。旋转时,也可以根据具体情况,选择顺时针或逆时针旋转特定的角度,以使页面内容更加清晰可读或适应特定的显示需求。这一功能可以通过PDF处理工具或者库来实现。这里我将介绍如何使用PDF库在Python平台上旋转文档页面。

所需工具:

Spire.PDF for Python

这个程序库支持在Python平台上创建,编辑或者转换PDF文档。目前官方页面上的代码教程还不算完善,如果需要其他代码示例的话,建议直接下载产品查看。

准备工作:

首先,我们需要在Visual Studio Code中安装需要使用到的库和plum-dispatch v1.7.4。在这之前请先确认是否已经安装Python。若已安装,可以直接进行以下步骤:

  • 打开VS Code,在中搜索到Python并安装。
  • 依次选择Explorer - NO FOLRDER OPENED- Open Folder
  • 选择一个文件夹,然后在里面新建一个" .py "文件。
  • 创建后,点击Terminal- New Terminal
  • 输入下面的命令即可成功安装。

pip install Spire.PDF

参考代码

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

#创建PdfDocument对象 
pdf = PdfDocument()

#读取PDF文档
pdf.LoadFromFile("C:/Users/Administrator/Desktop/Sample.pdf")

#遍历文档中的所有页面
for i in range(pdf.Pages.Count):
    page = pdf.Pages.get_Item(i)

    #获取原有页面的旋转角度
    rotation = int(page.Rotation.value)

    #在原有基础上顺时针旋转页面180度
    rotation += int(PdfPageRotateAngle.RotateAngle180.value)
    page.Rotation = PdfPageRotateAngle(rotation)

#保存结果文档
pdf.SaveToFile("C:/Users/Administrator/Desktop/Result.pdf") 
pdf.Close()

代码说明

  1. 上述代码中,首先创建一个 PdfDocument 对象并加载一个PDF文档。
  2. 然后循环遍历所有页面。
  3. 通过 PdfPageBase.Rotation.value 属性获取页面的原始旋转角度。
  4. 在原有基础上更改角度并应用新的旋转角度到所有页面中。
  5. 最后,保存结果文档。

运行以上代码的话,所有页面都将被旋转。

如果您只想旋转特定页面,则可以先获取指定页面,再更改旋转角度。

此时就不需要循环遍历所有页面。下面是参考代码片段(这里的参数从0开始):

复制代码
#获取指定页面

page = pdf.Pages[0]

效果图:

相关推荐
风吹夏回33 分钟前
Python 全局异常处理:从“满屏 try-except”到优雅兜底
开发语言·python
小熊Coding1 小时前
Python爬取当当网二手图书项目实战!
开发语言·爬虫·python·beautifulsoup·requests·二手图书
秋91 小时前
Java项目运行5天左右自动宕机:系统性定位与解决方案
java·开发语言·python
小江的记录本1 小时前
【JVM虚拟机】垃圾回收GC:垃圾收集器:CMS:核心原理、回收流程、优缺点、废弃原因(附《思维导图》+《面试高频考点清单》)
java·jvm·后端·python·spring·面试·maven
田里的水稻2 小时前
OE_ubuntu26.04与宿主机之间复制粘贴内容
人工智能·python·机器人
jiayong233 小时前
02 创建虚拟环境
python
旺仔来了3 小时前
不联网的Linux下部署python环境
linux·开发语言·python
小江的记录本3 小时前
【JVM虚拟机】垃圾回收GC:垃圾回收算法:标记-清除、标记-复制、标记-整理、分代收集(附《思维导图》+《面试高频考点清单》)
java·jvm·后端·python·算法·安全·面试
IP搭子来一个3 小时前
爬虫采集大量返回 403、429,到底卡在哪一环?
网络·爬虫·python
deepin_sir3 小时前
06 综合对比与实战选型——到底该用哪个?
python