Python PDF 处理2024年8月29日 | 阅读 8 分钟 Python 被认为是一种极其灵活的编程语言,拥有广泛的库,它是一种易于阅读和编写语法的高级语言。Python 的应用领域正在扩展到机器学习、Web 开发、网络安全、应用程序开发等不同领域。因此,这种编程语言受到程序员、工程师和开发人员的广泛青睐。 在接下来的教程中,我们将使用 Python 编程语言处理 PDF。PDF,全称为Portable Document Format(可移植文档格式),是一种文档文件格式,包含文本、表格、图像等。通常用于需要保存无法进一步修改或方便共享/打印的文件。PDF 文件格式由Adobe于1993年开发,目的是以独立于软件、应用程序、操作系统和硬件的方式呈现包含格式化文本和图像的文档。 为了让我们能够理解 PDF 处理和操作的几乎所有内容,本教程已分为不同的部分。 那么,让我们开始吧。 一些著名的 Python PDF 库Python 提供了各种各样的库,用于操作 PDF 文件。一些在处理 PDF 时常用的著名库是
以及更多。 虽然有不同的包用于在 Python 中对 PDF 执行各种功能操作,但本教程将只讨论一些库,如PDFMiner、PyPDF2、PyMuPDF、reportlab等。PyPDF2被认为是广泛使用的 PDF 处理 Python 模块之一。该包易于使用并提供各种功能。但当我们谈到文本提取时,PDFMiner包更精确、更可靠。PDFMiner专门为用户设计,用于从 PDF 文件中提取文本。当考虑到 PDF 文件操作时,存在一种情况,一个包比另一个包在不同方面更有效。因此,在本教程中,我们将根据其便利性和可靠性讨论用于操作 PDF 文件的不同库。 使用 Python 从 PDF 中提取文本PDF 由文本、表格、图像、表单等各种内容组成。这些文件是数据的图形化解释。它们提供有关显示器或纸张的确切位置的信息。但是,它们没有定义句子或段落的逻辑结构,并且当显示大小发生变化时无法自适应。PDFMiner包通过评估布局并预测文本和其他内容的位置来为用户执行此工作。 PDFMiner被认为是从 PDF 文件中提取文本等操作的强大库之一。因此,在下一节中,我们将演示PDFMiner在文本提取中的用法。 首先,我们需要安装PDFMiner包。 安装 PDFMiner 包我们可以使用以下命令安装PDFMiner包 语法 安装完成后,我们将进入主要部分,使用PDFMiner库提取文本。 让我们看下面的示例,演示如何使用PDFMiner在 Python 中提取文本。 示例 输出 A Simple PDF File This is a small demonstration .pdf file - just for use in the Virtual Mechanics tutorials. More text. And more text. And more text. And more text. And more text. And more text. And more text. And more text. And more text. And more text. And more text. Boring, zzzzz. And more text. And more text. And more text. And more text. And more text. And more text. And more text. And more text. And more text. And more text. And more text. And more text. And more text. And more text. And more text. And more text. Even more. Continued on page 2 ... Simple PDF File 2 ...continued from page 1. Yet more text. And more text. And more text. And more text. And more text. And more text. And more text. And more text. Oh, how boring typing this stuff. But not as boring as watching paint dry. And more text. And more text. And more text. And more text. Boring. More, a little more text. The end, and just as well. 说明 在上面的代码片段中,我们从 io 库导入了StringIO模块,并从PDFMiner模块导入了所需的功能和类。我们创建了一个StringIO对象,并使用 with 语句打开目录中的 pdf 文件。根据PDFMiner文档,PDFPageInterpreter用于处理页面内容,而PDFResourceManager用于存储共享资源,如字体或图像。PDFPage用于对数据进行逐页分析。LAParams加载字符、文本框、文本行、图像和图形的布局分析。有了这些,TextConverter函数就有助于将 PDF 文档转换为文本。 我们将“my_file.pdf”作为要使用PDFMiner模块进行分析和执行的 PDF 文件。我们可以使用process_page函数从 PDF 文件中提取文本。 最后,print(text) 函数将打印从 PDF 中提取的文本。因此,通过这种方式,可以使用PDFMiner库从 PDF 文件中提取文本。 使用 Python 从 PDF 中提取图像当我们想从 PDF 中提取图像时,我们可以使用PyMuPDF。该库使用一个附加模块fitz,这使得从 PDF 文件中提取图像更加容易。在开始直接使用模块之前,让我们安装所需的库。 安装 PyMuPDF 包我们可以使用以下命令安装PyMuPDF包 语法 安装完成后,我们将进入主要部分,使用PyMuPDF库和fitz模块提取文本。 让我们看下面的示例,演示如何在 Python 中提取图像。 示例 输出 [+] Found a total of 2 images in page 0 [+] Found a total of 2 images in page 1 说明 在上面的代码片段中,我们导入了所需的模块。然后我们使用fitz模块加载了 PDF 文件。然后我们逐页查找图像列表。然后我们将 PDF 中的图像字节转换为实际图像并将其本地保存。因此,通过这种方式,我们从 PDF 文件中提取了图像。 使用 Python 从 PDF 中提取表格与图像和文本提取相比,从 PDF 文件中提取表格稍微容易一些。Python 提供了一个名为camelot的预定义库,我们可以使用它来提取表格。因此,在我们开始实现代码之前,首先安装该库是必要的。 安装 camelot 库我们可以使用以下命令和 pip 安装程序安装camelot模块 语法 安装完成后,让我们开始在 Python 中从 PDF 文件中提取表格。 示例 说明 在上面的代码片段中,我们导入了camelot库。然后我们使用camelot库的read_pdf()函数从 PDF 文件中提取了表格,并将其存储在一个列表中。最后,我们使用表的索引值和 df 属性打印了提取的表之一。因此,我们成功地从 PDF 文件中提取了表格。 使用 Python 从 PDF 中提取 URL提取 URL 被认为是 Python 提供的另一个便捷功能。Python 有一个名为“pdfx”的预定义库,通常用于从 PDF 文件中提取 URL。我们可以使用PDFMiner、PyPDF2等库来提取文本并使用正则表达式查找 URL。然而,这个过程漫长而繁琐。因此,为了缩短代码长度,我们将使用pdfx库从 PDF 文件中提取 URL。 安装 pdfx 库我们可以使用以下命令和 pip 安装程序安装pdfx库 语法 安装完成后,让我们看下面的示例来理解从 PDF 中提取 URL。 示例 输出 {'url': ['https://tpointtech.cn/python-pass', 'https://tpointtech.cn/python-tutorial', 'https://tpointtech.cn/python-seaborn-library', 'https://tpointtech.cn/', 'https://tpointtech.cn/chatbot-in-python', 'https://tpointtech.cn/python-if-else']} 说明 在上面的代码片段中,我们导入了pdfx库。然后我们使用PDFx()函数从目录读取 PDF 文件。然后我们使用get_references_as_dict()函数以字典的形式提取输入 PDF 文件中可用的所有 URL。 使用 Python 将 PDF 页面提取为图像在本节中,我们将了解如何将 PDF 文件中的页面提取为图像。为了完成这项任务,我们将需要另一个简洁简单的库,称为pdf2image。当我们想将 PDF 文件转换为图像时,通常会使用这个库。 让我们开始安装这个库。 安装 pdf2image 库我们可以使用以下命令和 pip 安装程序来安装pdf2image库 语法 安装完成后,让我们看下面的示例来理解pdf2image库的工作原理。 示例 说明 在上面的代码片段中,我们从pdf2image库导入了convert_from_path函数。然后我们使用了导入的函数,并提供了值 120。这个值被称为 DPI 或每英寸点数。值越高,形成的图像就越清晰,尺寸越大。我们通过将页面保存为 JPEG 图像来逐页迭代。 下一主题使用 Python 操作 PDF |
JSONB 是 PostgreSQL 中一种强大的数据类型,它提供了一种灵活的方式来存储和查询半结构化数据。在许多应用程序中,JSONB 列用于存储需要频繁更新的复杂数据结构。在本文中,我们将讨论如何更新...
阅读 6 分钟
Python 允许创建和操作对象,使其成为一种面向对象的编程(OOP)语言。由于对象是类的实例,它们能够保存数据和操作数据的函数。因为它将代码组织成对象而不是一系列过程性程序,所以这种...
阅读 4 分钟
在本教程中,我们将学习转置排序,也称为砖排序或奇偶排序。它是一种相对简单的排序算法,最初是为了在具有局部互连的并行处理器上使用而开发的。该算法类似于冒泡排序和...
阅读 3 分钟
我们在日常生活中都遇到过很多情况,需要使用数据库管理系统来存储所有需要的信息和数据。使用数据库管理系统通常非常简单,但有时会变得有点...
阅读 12 分钟
在本教程中,我们将学习如何将 tqdm 与 pandas 库一起实现。tqdm 模块用于根据需要创建进程条。进程条是估算和显示任务所需时间的重要工具。要理解...
5 分钟阅读
在本教程中,我们将讨论 Python 中 time 模块的 clock() 函数。我们还将看到 Python time clock() 方法的语法以及一些示例以便更好地理解。理解 Python 中的 time clock() 方法 clock() 方法是一个函数...
阅读 3 分钟
本文将教我们如何使用 Python 跟踪我们想要购买的亚马逊商品。我们经常在商品价格低于特定限制时购买,以保持其可负担性并增加我们的储备金。在这个项目中,我们将精确地执行...
阅读 4 分钟
如何使用 Python 写入文本文件?读写文件以用于存储或以后使用是编程中的常见任务。Python 有多种处理文件的方法,但我们将特别关注写入文本文件。文本文件是...
阅读 6 分钟
本教程将展示如何利用Python机器学习模型,使用Sklearn的预测函数来预测结果。我们将简要总结该函数的功能,回顾其语法,然后提供使用此方法与各种机器学习模型的示例。简要概述...
5 分钟阅读
在以下教程中,我们将了解如何使用 Python 编程语言识别车牌。我们将在此项目中使用 OpenCV 来识别车牌,并使用 python pytesseract 从车牌中提取字符和数字。...
阅读9分钟
我们请求您订阅我们的新闻通讯以获取最新更新。
我们提供所有技术(如 Java 教程、Android、Java 框架)的教程和面试问题
G-13, 2nd Floor, Sec-3, Noida, UP, 201301, India