用Python获取PDF页面的大小、方向和旋转角度

在文档管理和自动化领域,了解PDF文档的内在属性(如页面大小、方向和旋转角度)对于确保一致的文档处理和布局保真度至关重要。这些属性在内容重用、归档以及PDF无缝集成到网络环境或其他数字工作流程中起着关键作用,因为它们直接影响文档的可读性和用户体验。通过利用Python,开发人员可以高效提取这些属性,从而方便旋转页面的自动更正等任务。

本文将展示如何使用Python代码获取PDF文档中页面的大小、方向和旋转角度。

文章目录

本文使用的方法需要Spire.PDF for Python,PyPI安装命令:pip install Spire.PDF。

使用Python获取PDF页面的大小

我们可以使用PdfPageBase.Size.Width和PdfPageBase.Size.Height来获取PDF页面的宽度和高度(单位为点)。然后,我们可以使用PdfUnitConvertor类将宽度和高度转换为其他单位,如毫米。详细步骤如下:

  • 导入必要的模块。
  • 创建一个PdfDocument对象,并使用PdfDocument.LoadFromFile()方法加载PDF文档。
  • 使用PdfDocument.Pages.get_Item()方法获取文档中的页面。
  • 通过PdfPageBase.Size.Width和PdfPageBase.Size.Height属性获取页面的宽度和高度。
  • 创建一个PdfUnitConvertor对象。
  • 使用PdfUnitConvertor.Convert()方法将宽度和高度转换为毫米。
  • 打印结果。
  • 释放资源。

代码示例

python 复制代码
from spire.pdf import *

# 创建一个 PdfDocument 实例
pdf = PdfDocument()

# 加载 PDF 文档
pdf.LoadFromFile("示例.pdf")

# 获取第一页
page = pdf.Pages.get_Item(0)

# 获取页面宽度和高度(单位为点)
width = page.Size.Width
height = page.Size.Height

# 创建一个 PdfUnitConvertor 实例
converter = PdfUnitConvertor()

# 将宽度和高度从点转换为厘米
mmWidth = converter.ConvertUnits(width, PdfGraphicsUnit.Point, PdfGraphicsUnit.Centimeter)
mmHeight = converter.ConvertUnits(height, PdfGraphicsUnit.Point, PdfGraphicsUnit.Centimeter)

# 打印宽度和高度
print("宽度: " + str(round(mmWidth, 1)) + " 厘米")
print("高度: " + str(round(mmHeight, 1)) + " 厘米")

# 释放资源
pdf.Close()

结果

使用Python获取PDF页面的方向

由于页面方向不是一个固定的参数,我们需要通过比较页面的高度和宽度来确定PDF页面是横向还是纵向。步骤如下:

  • 导入必要的模块。
  • 创建一个PdfDocument对象,并使用PdfDocument.LoadFromFile()方法加载PDF文档。
  • 使用PdfDocument.Pages.get_Item()方法获取文档中的页面。
  • 通过PdfPageBase.Size.Width和PdfPageBase.Size.Height属性获取页面的宽度和高度。
  • 比较高度和宽度以确定PDF页面是横向还是纵向,并打印结果。
  • 释放资源。

代码示例

python 复制代码
from spire.pdf import *

# 创建一个 PdfDocument 实例
pdf = PdfDocument()

# 加载 PDF 文档
pdf.LoadFromFile("示例.pdf")

# 获取第一页
page = pdf.Pages.get_Item(0)

# 获取页面的宽度和高度
width = page.Size.Width
height = page.Size.Height

# 检查页面的方向并打印结果
if width > height:
    print("页面为横向")
else:
    print("页面为纵向")

# 释放资源
pdf.Close()

结果

使用Python获取和设置PDF页面的旋转角度

可以通过PdfPageBase.Rotation属性直接获取PDF页面的旋转角度。然后我们可以使用该值构建字符串并打印,或者通过PdfPageBase.Rotation属性更改旋转角度。详细步骤如下:

  • 导入必要的模块。
  • 创建一个PdfDocument对象,并使用PdfDocument.LoadFromFile()方法加载PDF文档。
  • 使用PdfDocument.Pages.get_Item()方法获取文档中的页面。
  • 通过PdfPageBase.Rotation属性获取旋转角度。
  • 打印旋转角度或进行其他操作。
  • 释放资源。

代码示例

python 复制代码
import re

from spire.pdf import *

# 创建 PdfDocument 实例
pdf = PdfDocument()

# 加载 PDF 文档
pdf.LoadFromFile("示例1.pdf")

# 获取第一页
page = pdf.Pages.get_Item(0)

# 获取页面的旋转角度
rotationAngle = page.Rotation

# 输出旋转角度
print("旋转角度: " + re.search(r"\d+", rotationAngle.name).group() + " 度")

# 修改旋转角度
page.Rotation = PdfPageRotateAngle.RotateAngle0

# 保存文档
pdf.SaveToFile("output/ChangeRotationAngle.pdf")
pdf.Close()

结果

本文展示了如何使用Python获取PDF文档中页面的大小、方向和旋转角度。

有关更多PDF文档处理技巧,请参阅Spire.PDF for Python教程。

申请免费License

相关推荐
东莞市云毅网络有限公司3 小时前
AI 引用句逐条回指原文:让回答可回溯的校验实现
python·数据清洗·rag·企业知识库·文档解析
Sarvartha5 小时前
final 关键字
java·开发语言
数字融合5 小时前
透明化视频三维矿山井下照明重建技术
人工智能·python·数码相机
yi0115 小时前
LeetCode 219:存在重复元素 II——哈希表记录“最近一次出现的位置”
数据结构·人工智能·笔记·python·算法·leetcode·哈希表
程序员Sunday6 小时前
JavaScript 事件循环面试题,宏任务与微任务怎么执行|Sunday面试指南
开发语言·javascript·面试·校招·事件循环·程序员sunday
zhangzeyuaaa6 小时前
Ruby 多线程、GVL(GIL)与 Mutex 完全指南
开发语言·前端·ruby
Marst Code7 小时前
上位机开发日记 · 第 2 篇 · 架构先行:六层分层与边界
python
李日华大战鸡红7 小时前
FOC状态空间方程模型推导(学习记录)
python·学习·线性代数
谢亮_vipxieliang8 小时前
用 PHP 构建轻量级 REST API:从路由到鉴权的完整实践
开发语言·后端·php
思无邪668 小时前
用 AI 做 JS 逆向:从抓包到复现的完整方法论
开发语言·javascript·人工智能