经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » 程序设计 » Python » 查看文章
使用 Python 旋转PDF页面、或调整PDF页面顺序 - E-iceblue
来源:cnblogs  作者:E-iceblue  时间:2024/5/13 15:41:05  对本文有异议

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

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

  1. pip install Spire.PDF

 

使用Python旋转PDF页面

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

  1. from spire.pdf.common import *
  2. from spire.pdf import *
  3. # 创建PdfDocument对象
  4. pdf = PdfDocument()
  5. # 加载PDF文件
  6. pdf.LoadFromFile("分析.pdf")
  7. # 获取第一页
  8. page = pdf.Pages[0]
  9. # 获取页面原始旋转角度
  10. rotation = int(page.Rotation.value)
  11. # 基于原始旋转角度将页面顺时针旋转90度
  12. rotation += int(PdfPageRotateAngle.RotateAngle90.value)
  13. page.Rotation = PdfPageRotateAngle(rotation)
  14. # 保存文件
  15. pdf.SaveToFile("旋转PDF页面.pdf")
  16. 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 文档,页码分别为 1、2、3、4。如果我们想重新排列这些页面,使得页面顺序变为 3、1、4、2,那么 orderArray 应该是 [2, 0, 3, 1](PDF页面索引从 0 开始)。

以下为示例代码:

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

效果图:


 

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

https://www.e-iceblue.cn/pdfforpython/spire-pdf-for-python-program-guide-content.html

 

原文链接:https://www.cnblogs.com/Yesi/p/18189363

 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号