摘要:PDF(可移植文档格式)文件由于其多功能性和一致的格式而广泛用于文档共享和保存。除了文本内容之外,PDF 通常还包含大量有价值的图像。提取这些图像并检索它们的相关信息,例如位置(x 和 y 坐标)、宽度和高度,可以为图像分析、操作和集成到各种项目中解锁无数可能
PDF(可移植文档格式)文件由于其多功能性和一致的格式而广泛用于文档共享和保存。除了文本内容之外,PDF 通常还包含大量有价值的图像。提取这些图像并检索它们的相关信息,例如位置(x 和 y 坐标)、宽度和高度,可以为图像分析、操作和集成到各种项目中解锁无数可能性。
要在 Python 中从 PDF 文件中提取图像和图像信息,我们将使用 Spire.PDF for Python。它是一个功能丰富且用户友好的库,旨在在 Python 应用程序中创建、读取、编辑和转换 PDF 文件。
您可以使用以下 pip 命令从 PyPI 安装 Spire.PDF for Python:
pip install Spire.Pdf如果您已经安装了 Spire.PDF for Python 并希望升级到最新版本,请使用以下 pip 命令:
pip install --upgrade Spire.Pdf有关安装的更多详细信息,您可以查看此官方文档:如何在 VS Code 中安装 Spire.PDF for Python。
Spire.PDF for Python 中的 PdfImageHelper 类提供了一种处理 PDF 中图像的便捷方法。
要获取 PDF 中的图像,您可以使用 PdfImageHelper.GetImagesInfo(page: PdfPageBase) 函数。这将返回 PdfImageInfo 对象列表,每个对象表示 PDF 页面上的一个图像。获得 PdfImageInfo 对象后,可以使用 PdfImageInfo.Image.Save 函数将每个图像保存到文件中。
以下代码演示了如何使用 Python 和 Spire.PDF for Python 从 PDF 文件中提取图像:
from spire.pdf.common import *from spire.pdf import *def extract_images_from_pdf(pdf_path, output_dir): """ Extracts all images from a PDF File and saves them to the specified output directory. Args: pdf_path (str): The path to the PDF file. output_dir (str): The directory where the extracted images will be saved. """ # Create a PdfDocument object and load the PDF file doc = PdfDocument doc.LoadFromFile(pdf_path) # Create a PdfImageHelper object image_helper = PdfImageHelper image_count = 1 # Iterate over all pages in the PDF for page_index in range(doc.Pages.Count): # Get the image information for the current page image_infos = image_helper.GetImagesInfo(doc.Pages[page_index]) # Extract and save the images for image_index in range(len(image_infos)): # Get the image image = image_infos[image_index].Image # Specify the output file name output_file = os.path.join(output_dir, f"Image-{image_count}.png") # Save the image image.Save(output_file) image_count += 1 # Close the PdfDocument object doc.Close# Example usageextract_images_from_pdf("Sample.pdf", "C:/Users/Administrator/Desktop/Images")使用 Python 从 PDF 中提取图像
要从 PDF 中提取图像信息,如位置(x 和 y 坐标)、宽度和高度,您可以使用 PdfImageInfo.Bounds.X、PdfImageInfo.Bounds.Y、PdfImageInfo.Bounds.Width 和 PdfImageInfo.Bounds.Height 属性。
下面的代码演示了如何使用 Python 和 Spire.PDF for Python 从 PDF 文件中提取图像信息,例如位置(x 和 y 坐标)、宽度和高度:
from spire.pdf.common import *from spire.pdf import *def print_pdf_image_info(pdf_path): """ Prints information about the images in a PDF file. Args: pdf_path (str): The path to the PDF file. """ # # Create a PdfDocument object and load the PDF file doc = PdfDocument doc.LoadFromFile(pdf_path) # Create a PdfImageHelper object image_helper = PdfImageHelper # Iterate over all pages in the PDF for page_index in range(doc.Pages.Count): page = doc.Pages[page_index] # Get the image information for the current page image_infos = image_helper.GetImagesInfo(page) # Print the image information for image_index, image_info in enumerate(image_infos): print(f"Page {page_index + 1}, Image {image_index + 1}:") print(f" Image position: ({image_info.Bounds.X}, {image_info.Bounds.Y})") print(f" Image size: {image_info.Bounds.Width} x {image_info.Bounds.Height}") # Close the PdfDocument object doc.Close# Example usageprint_pdf_image_info("Sample.pdf")来源:自由坦荡的湖泊AI