使用 Python 从 PDF 中提取页面信息:综合指南

B站影视 2025-01-28 14:01 1

摘要:将使用 Spire.PDF for Python 模块从 PDF 文档中提取页面信息。该模块提供了一组全面的功能,允许我们在 Python 应用程序中创建、阅读、编辑和转换 PDF 文档。

将使用 Spire.PDF for Python 模块从 PDF 文档中提取页面信息。该模块提供了一组全面的功能,允许我们在 Python 应用程序中创建、阅读、编辑和转换 PDF 文档。

我们需要通过在终端中运行以下命令从 PyPI 安装 Spire.PDF for Python:

pip install Spire.Pdf

安装模块后,我们可以使用它轻松地从 PDF 文档中提取各种页面信息。让我们开始吧!

PDF 中的页数是一条基本信息,尤其是对于文档处理任务,如分页、拆分或重新排列。

可以通过两个步骤轻松获取 PDF 中的页数:

通过 PdfDocument 类打开 PDF 文档。通过 PdfDocument.Pages.Count 属性获取文档中的页数。

以下代码示例显示如何使用 Python 和 Spire.PDF for Python 获取 PDF 文档的总页数:

from spire.pdf.common import *from spire.pdf import *# Open the PDF documentpdf = PdfDocument("Sample.pdf")# Get the total number of pagespage_count = pdf.Pages.Count# Print the page countprint(f"The PDF has {page_count} pages.")pdf.Close

页面大小是指 PDF 页面的尺寸(宽度和高度),通常以磅为单位,其中 1 磅等于 1/72 英寸。提取页面大小对于确保各种文档的格式、打印和显示一致至关重要。

要检索 PDF 页面的宽度和高度,您可以使用 PdfPageBase.Size.WidthPdfPageBase.Size.Height 属性。下面是一个演示如何实现此目的的简单示例:

from spire.pdf.common import *from spire.pdf import *# Open the PDF documentpdf = PdfDocument("Sample.pdf")# Get the first page by its index (zero-based)page = pdf.Pages[0]# Get the width and height of the first pagewidth = page.Size.Widthheight = page.Size.Height# Print the dimensions of the first pageprint(f print(f"The first page dimensions are {width} points x {height} points.")pdf.Close

要点:

默认情况下,提取的页面尺寸以磅为单位。您可以使用 Spire.PDF for Python 提供的 PdfUnitConvertor 类在点和其他度量单位(如英寸、像素、厘米和毫米)之间进行转换。以下是实现转换的方法:# Create a PdfUnitConvertor objectconverter = PdfUnitConvertor# Convert points to inchesinch_value = converter.ConvertUnits(point_value, PdfGraphicsUnit.Point, PdfGraphicsUnit.Inch)# Convert points to pixelspixel_value = converter.ConvertUnits(point_value, PdfGraphicsUnit.Point, PdfGraphicsUnit.Pixel)# Convert points to centimeterscentimeter_value = converter.ConvertUnits(point_value, PdfGraphicsUnit.Point, PdfGraphicsUnit.Centimeter)# Convert points to millimetersmillimeter_value = converter.ConvertUnits(point_value, PdfGraphicsUnit.Point, PdfGraphicsUnit.Millimeter)

PDF 中的某些页面可以旋转到特定角度,如 0°、90°、180° 或 270°。在处理需要特定方向调整才能正确查看或打印的文档时,了解此信息至关重要。

要检索 PDF 页面的旋转角度,您可以使用 PdfPageBase.Rotation 属性。下面是一个简单的示例,演示如何使用 Python 和 Spire.PDF for Python 提取 PDF 页面的旋转角度:

from spire.pdf.common import *from spire.pdf import *# Open the PDF documentpdf = PdfDocument("Sample.pdf")# Get the first page by its index (zero-based)page = pdf.Pages[0]# Get the rotation information of the first pagerotation_info = page.Rotation# Determine the rotation angleif rotation_info == PdfPageRotateAngle.RotateAngle0: rotation_angle = "0 degrees (Normal)"elif rotation_info == PdfPageRotateAngle.RotateAngle90: rotation_angle = "90 degrees (Rotated clockwise)"elif rotation_info == PdfPageRotateAngle.RotateAngle180: rotation_angle = "180 degrees (Upside down)"elif rotation_info == PdfPageRotateAngle.RotateAngle270: rotation_angle = "270 degrees (Rotated counterclockwise)"else: rotation_angle = "Unknown rotation"# Print the rotation angle of the first pageprint(f"The rotation angle of the first page is {rotation_angle}.")pdf.Close

PDF 页面的方向可以是纵向(默认)或横向。虽然 Spire.PDF for Python 不提供检测页面方向的直接方法,但您可以通过比较页面的宽度和高度来确定方向。如果宽度大于高度,则页面处于横向模式;否则,它将处于纵向模式。

下面是一个简单的示例,演示如何使用 Spire.PDF for Python 检查 PDF 页面的方向:

from spire.pdf.common import *from spire.pdf import *# Open the PDF documentpdf = PdfDocument("Sample.pdf")# Get the first page by its index (zero-based)page = pdf.Pages[0]# Get the width and height of the first pagewidth = page.Size.Widthheight = page.Size.Height# Check if the page is in portrait or landscape modeif width > height: print("The first page is in landscape mode.")else: print("The first page is in portrait mode.")pdf.Close

PDF 页面标签用于为页面提供自定义名称或标签,这些名称或标签可能与实际页码不同(例如,罗马数字用于引言,然后是阿拉伯数字用于主要内容)。在处理具有非标准编号的文档时,提取这些标签非常有用。

要检索 PDF 页面的标签,您可以使用 PdfPageBase.PageLabel 属性。下面是一个演示如何实现此目的的简单示例:

from spire.pdf.common import *from spire.pdf import *# Open the PDF documentpdf = PdfDocument("Sample.pdf")# Get the first page by its index (zero-based)page = pdf.Pages[0]# Get the label of the first pagelabel = page.PageLabel# Print the label of the first pageprint(f"The label of the first page is: {label}")pdf.Close

PDF 页面包含各种框,这些框为不同的目的定义其边界。下面是一个简短的概述:

媒体框:定义页面的整体尺寸。裁剪框:指定查看或打印时页面的可见区域。出血框:定义打印时应将内容剪切到的区域,确保没有未打印的边距。裁切框:表示裁切后页面的最终尺寸。艺术框:指定页面有意义内容的范围。

以下代码示例介绍如何使用 Python 和 Spire.PDF for Python 提取 PDF 页面的媒体框、裁剪框、出血框、裁切框和艺术框信息:

from spire.pdf.common import *from spire.pdf import *# Open the PDF documentpdf = PdfDocument("Sample.pdf")# Get the first page by its index (zero-based)page = pdf.Pages[0]# Get the media, crop, bleed, trim, and art boxes of the first pagemedia_box = page.MediaBoxcrop_box = page.CropBoxbleed_box = page.BleedBoxtrim_box = page.TrimBoxart_box = page.ArtBox# Print the dimensions and coordinates of each boxprint(f"Media Box: Width = {media_box.Width}, Height = {media_box.Height}, X = {media_box.X}, Y = {media_box.Y}")print(f"Crop Box: Width = {crop_box.Width}, Height = {crop_box.Height}, X = {crop_box.X}, Y = {crop_box.Y}")print(f"Bleed Box: Width = {bleed_box.Width}, Height = {bleed_box.Height}, X = {bleed_box.X}, Y = {bleed_box.Y}")print(f"Trim Box: Width = {trim_box.Width}, Height = {trim_box.Height}, X = {trim_box.X}, Y = {trim_box.Y}")print(f"Art Box: Width = {art_box.Width}, Height = {art_box.Height}, X = {art_box.X}, Y = {art_box.Y}")pdf.Close

来源:自由坦荡的湖泊AI

相关推荐