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

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

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

文章目录

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

使用Python获取PDF页面的大小

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

  • 导入必要的模块。
  • 创建一个PdfDocument对象,并使用PdfDocument.LoadFromFile()方法加载PDF文档。
  • 使用PdfDocument.Pages.get_Item()方法获取文档中的页面。
  • 通过PdfPageBase.Size.WidthPdfPageBase.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.WidthPdfPageBase.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

相关推荐
傻乐u兔11 分钟前
C语言进阶————指针4
c语言·开发语言
大模型玩家七七14 分钟前
基于语义切分 vs 基于结构切分的实际差异
java·开发语言·数据库·安全·batch
历程里程碑14 分钟前
Linux22 文件系统
linux·运维·c语言·开发语言·数据结构·c++·算法
牛奔1 小时前
Go 如何避免频繁抢占?
开发语言·后端·golang
寻星探路5 小时前
【深度长文】万字攻克网络原理:从 HTTP 报文解构到 HTTPS 终极加密逻辑
java·开发语言·网络·python·http·ai·https
lly2024067 小时前
Bootstrap 警告框
开发语言
2601_949146537 小时前
C语言语音通知接口接入教程:如何使用C语言直接调用语音预警API
c语言·开发语言
曹牧7 小时前
Spring Boot:如何测试Java Controller中的POST请求?
java·开发语言
KYGALYX8 小时前
服务异步通信
开发语言·后端·微服务·ruby
zmzb01038 小时前
C++课后习题训练记录Day98
开发语言·c++