Python PDF页面设置 -- 旋转页面、调整页面顺序

在将纸质文档扫描成PDF电子文档时,有时可能会出现页面方向翻转或者页面顺序混乱的情况。为了确保更好地浏览和查看PDF文件,本文将分享一个使用Python来旋转PDF页面或者调整PDF页面顺序的解决方案。

目录

使用Python旋转PDF页面

使用Python调整PDF页面顺序


要实现Python对PDF页面进行设置,我们需要用到第三方库 Spire.PDF for Python。该库支持在Python中生成、操作、转换PDF等各项操作。可以下载后手动安装或者使用pip命令来安装:

pip install Spire.PDF

使用Python旋转PDF页面

Spire.PDF for Python支持在当前页面旋转角度的基础上顺时针旋转0度、90度、180度和270度。以下为示例代码:

from spire.pdf.common import *
from spire.pdf import *# 创建PdfDocument对象
pdf = PdfDocument()# 加载PDF文件
pdf.LoadFromFile("分析.pdf")# 获取第一页
page = pdf.Pages[0]# 获取页面原始旋转角度
rotation = int(page.Rotation.value)# 基于原始旋转角度将页面顺时针旋转90度
rotation += int(PdfPageRotateAngle.RotateAngle90.value)
page.Rotation = PdfPageRotateAngle(rotation)# 保存文件
pdf.SaveToFile("旋转PDF页面.pdf")
pdf.Close()

在以上示例中,我们先使用 PdfPageBase.Rotation.value 属性获取页面的原始旋转角度,然后指定顺时针90度的旋转角度,再通过PdfPageBase.Rotation 属性来旋转PDF页面。

效果图:

使用Python调整PDF页面顺序

按照文档内容的逻辑性、相关联性来重新排列PDF页面可以增强PDF文档可读性。在Python中,我们使用Spire.PDF for Python库提供的 PdfDocument.Pages.ReArrange(orderArray: List[int]) 方法可以轻松调整PDF页面顺序。

其中参数orderArray是一个整数列表,用于指定新的页面顺序。例如,假设我们有一个包含 4 页的 PDF 文档,页码分别为 1234。如果我们想重新排列这些页面,使得页面顺序变为 3142,那么 orderArray 应该是 [2, 0, 3, 1]PDF页面索引从 0 开始)。

以下为示例代码:

from spire.pdf.common import *
from spire.pdf import *inputFile = "测试文档.pdf"
outputFile = "重排PDF页面顺序.pdf"# 创建PdfDocument对象
pdf = PdfDocument()# 加载PDF文件
pdf.LoadFromFile(inputFile)# 调整PDF页面顺序
pdf.Pages.ReArrange([1, 0, 2])# 保存文件
pdf.SaveToFile(outputFile, FileFormat.PDF)
pdf.Close()

效果图:



 以上两段代码演示了如何在Python中旋转PDF页面和重排PDF页面顺序。除此之外,该Python库还支持其他PDF页面设置,如设置页边距、页面尺寸等,点击链接查看更多示例:

Spire.PDF for Python 中文教程Spire.PDF for Python 是一款完全独立的 PDF 开发组件,用于在 Python 程序中创建、读取、编辑、转换和保存 PDF 文档。开发人员可以使用 Spire.PDF for Python 类库来新建 PDF 文档或对现有的 PDF 文档进行处理,不需要任何第三方工具。同时,该组...icon-default.png?t=N7T8https://www.e-iceblue.cn/pdfforpython/spire-pdf-for-python-program-guide-content.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/587807.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Java设计模式:代理模式的静态和动态之分(八)

码到三十五 : 个人主页 心中有诗画,指尖舞代码,目光览世界,步履越千山,人间尽值得 ! 在软件设计中,代理模式是一种常用的设计模式,它为我们提供了一种方式来控制对原始对象的访问。在Java中&a…

华为ensp路由器模拟ftp服务器访问

众所周知ensp的pc只有ping功能,ssh、telnet、ftp都无法实现,所以想实现需要更换为路由器 R1需要FTP到server的ftp服务 server的FTP配置就这些命令,主要的是路径,然后在网络可达的情况下就可以进行登录测试了 aaa local-user hu…

AJAX——Axios

步骤 代码 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta http-equiv"X-UA-Compatible" content"IEedge"><meta name"viewport" content"widthdevice-width, …

iOS App Store审核要求与Flutter应用的兼容性分析

本文探讨了使用Flutter开发的iOS应用能否上架&#xff0c;以及上架的具体流程。苹果提供了App Store作为正式上架渠道&#xff0c;同时也有TestFlight供开发者进行内测。合规并通过审核后&#xff0c;Flutter应用可以顺利上架。但上架过程可能存在一些挑战&#xff0c;因此可能…

FFmpeg获取视频详情

话不多说&#xff0c;直接上代码&#xff1a; pom依赖&#xff1a; <!--视频多媒体工具包 包含 FFmpeg、OpenCV--><dependency><groupId>org.bytedeco</groupId><artifactId>javacv-platform</artifactId><version>1.5.3</versi…

并发编程之线程池的底层原理的详细解析

线程池的底层原理 Executors源码&#xff1a; public static ExecutorService newFixedThreadPool(int nThreads) {return new ThreadPoolExecutor(nThreads, nThreads,0L, TimeUnit.MILLISECONDS,new LinkedBlockingQueue<Runnable>());} ​public static ExecutorServ…

Kaggle:收入分类

先看一下数据的统计信息 import pandas as pd # 加载数据&#xff08;保留原路径&#xff0c;但在实际应用中建议使用相对路径或环境变量&#xff09; data pd.read_csv(r"C:\Users\11794\Desktop\收入分类\training.csv", encodingutf-8, encoding_errorsrepl…

javaweb学习(day10-服务器渲染技术)

一、基本介绍 1.前言 目前主流的技术是 前后端分离 (比如: Spring Boot Vue/React)JSP 技术使用在逐渐减少&#xff0c;但使用少和没有使用是两个意思&#xff0c;一些老项目和中小公司还在使用 JSP&#xff0c;工作期间&#xff0c;你很有可能遇到 JSPJSP 使用在减少(但是现…

路径规划——搜索算法详解(七):D*lite算法详解与Matlab代码

&#xff01;&#xff01;&#xff01;注意&#xff01;&#xff01;&#xff01; 看本篇之前&#xff0c;一定要先看笔者上一篇的LPA*讲解&#xff0c;笔者统一了符号看起来过渡会更加好理解&#xff01; 到目前为止&#xff0c;我们学习了广度优先搜索Dijkstra算法、能够计…

OpenHarmony实战:轻量级系统之安全子系统移植

安全子系统提供网络设备连接、认证鉴权等功能&#xff0c;依赖mbedtls实现硬件随机数以及联网功能。 由于每个厂商芯片硬件与实现硬件随机数的方式不同&#xff0c;需要适配硬件随机数接口。 移植指导 OpenHarmony提供了mbedtls的开源三方库&#xff0c;路径为“//third_par…

Catcatcat【杂项 攻防世界】

知识点&#xff1a; strings 命令 打印文件中可以打印的字符&#xff0c;可以是任意文件grep flag 过滤出文件中的flag关键字rabbit加密 深入了解Rabbit加密技术&#xff1a;原理、实现与应用-CSDN博客对称加密算法需要密钥&#xff0c;也可不设置数据开头固定&#xff1a;U2F…

【Linux】在生产环境中,Linux系统排查常用命令

问题排查 文章目录 问题排查top命令CPU&#xff1a;vmstatprocscpu内存&#xff1a;free硬盘&#xff1a;df硬盘IO&#xff1a;iostat网络IO&#xff1a;ifstat 生产环境服务器变慢&#xff0c;诊断思路和性能评估 top命令 查看整机系统新能 使用top命令的话&#xff0c;重点…