使用 Python 操作 PDF2025年3月17日 | 阅读 7 分钟 在之前的教程中,我们讨论了使用 Python 编程语言的不同包和模块对 PDF 文件可以执行的各种操作。我们学习了可用于操作 PDF 文件的不同 Python 库的工作原理。此外,我们还了解了如何使用 Python 提取文本、图像、表格和 URL。 下面的教程将涵盖一些其他操作来操作 PDF 文件,包括创建 PDF 文件、在 PDF 文件上添加文本、图像和表格等等。 那么,让我们开始吧。 使用 Python 创建 PDF 文件Python 提供了一项功能,程序员可以直接从代码创建 PDF 文件。我们可以直接将文本、图像、表格和表单从 Python 代码插入到 PDF 文件中。为了实现这一点,Python 编程语言提供了一个名为 reportlab 的库。 但在我们开始使用该库之前,我们有必要安装它。 安装 reportlab 库我们可以使用 pip 安装程序通过以下命令安装 reportlab 库 语法 现在,让我们开始实现部分;我们可以执行以下操作 示例 说明 在上述代码片段中,我们从各自的模块导入了所需的函数。然后,我们创建了一个名为 newfile.pdf 的 PDF 文件。在 Canvas() 函数中,我们将 PDF 页面的大小设置为 LETTER 大小,这是 reportlab 库提供的预定义大小。然后,我们使用 save() 函数保存了创建的 PDF 文件。 使用 Python 在 PDF 上添加文本我们可以借助 reportlab 库轻松添加 PDF 文件。让我们考虑以下示例来理解这一点 示例 输出 ![]() 说明 在上述代码片段中,我们再次从各自的模块导入了函数。然后,我们创建了一个名为 textfile.py 的 PDF 文件。我们正在设置字体和字体大小,因为我们将在 PDF 文件上写入一些文本。我们借助 reportlab 的预定义函数将 PDF 大小设置为 LETTER,字体设置为 Courier,字体大小设置为 18。然后,我们借助 setFillColor 函数为文本选择了紫色。之后,我们在 PDF 文件上写入了一些文本,指定了文本在 PDF 页面上的位置。最后,我们使用 save() 函数保存了创建的 PDF 文件。因此,我们成功创建了一个 PDF 文件。 使用 Python 在 PDF 上添加图像我们还可以利用 Python reportlab 库将图像插入到 PDF 文件中。与在 PDF 文件上插入文本相比,插入图像可能是一项繁琐的工作。图像有其独特的尺寸,PDF 文件也一样。因此,管理尺寸和找到图像的最佳位置可能是一项繁琐的工作。 让我们考虑以下示例来理解如何在 PDF 文件上添加图像 示例 输出 ![]() 说明 在上述代码片段中,我们导入了所需的函数。然后,我们使用 Canvas() 函数创建了一个新的 PDF 文件。然后,我们使用 drawInlineImage() 函数将图像插入到创建的 PDF 文件中。我们指定了图像在目录中的位置以及图像的位置,即 (100, 450),以设置在 PDF 文件上。 reportlab 库将 PDF 文件的左下角位置视为 (0, 0),并以类似的方式管理图像的位置。信纸大小的 PDF 尺寸为 612x792,而 (100, 450) 将是图像在 PDF 文件上的位置。 使用 Python 在 PDF 上添加表格我们还可以使用 reportlab 库将表格添加到 PDF 文件中。让我们考虑以下示例来理解如何在 PDF 文件上添加表格。 示例 输出 ![]() 说明 在上述代码片段中,我们创建了一个信纸大小的新 PDF 文件。要存储在表格中的数据在列表 "my_data" 中提供。这里,列表的形状是 5x2。有五行两列。因此,这是将在 PDF 文件上形成的表格。之后,我们定义了表格的边距、网格线、它们的尺寸和格式。我们还使用了 setStyle 函数。也可以参考 reportlab 库的官方文档来创建表格。如果没有定义这些网格线,PDF 上只会按排列顺序显示详细信息;但是,没有用网格线或边框分隔。 使用 Python 突出显示 PDF 中的文本Python 还为我们提供了一项功能,用于突出显示 PDF 文件中的文本内容,称为 "fitz"。Fitz 是我们可以用来在 PDF 文件上执行文本突出显示的最简单的库。由于我们已经讨论了 fitz 库的安装过程,所以我们直接进入 fitz 库的实现,以便突出显示 PDF 中的文本。 示例 输出 ![]() 说明 在上述代码片段中,我们导入了 fitz 库。然后,我们使用 open() 函数加载要突出显示的 PDF 文件 my_file.pdf。要突出显示的短语在文本变量中给出。我们突出显示了单词 "Boring"。然后,我们遍历每个页面以查找是否有与该单词的潜在匹配项。如果找到匹配项,我们使用 fitz 中的 add_highlight_annot 函数来突出显示它们。因此,通过这种方式,我们在 PDF 文件上获得了突出显示的文本。 使用 Python 调整 PDF 页面大小调整页面大小是使用 Python 操作 PDF 文件的另一个示例。有时,可能需要调整 PDF 页面大小,Python 提供了一个名为 PyPDF2 的库,程序员可以使用它执行页面大小调整功能。让我们考虑以下示例来理解这一点 示例 输出 ![]() 说明 在上述代码片段中,我们导入了所需的库。然后,我们开始读取要调整大小的输入 PDF 文件。然后,我们读取了它的页面。在这里,我们只调整了第一页的大小,所以 getPage 函数的值为 0,表示初始页面。现在,为了调整页面大小,我们使用了 scaleBy 函数并将第 0 页缩放了 0.5。因此,第一页的大小减少了实际尺寸的一半。然后,我们将页面保存到一个新的 PDF 文件 resizedFile.pdf 中。通过这种方式,我们成功地使用 Python 执行了页面大小调整。 使用 Python 将 PDF 文件转换为 CSV有时,表格数据也以 PDF 格式存在。但是,这些类型的信息不能直接解析。例如,我们不能直接使用 pandas 库处理包含数据框的 PDF 文件,它们必须在处理之前转换为 CSV 或 Excel 格式。由于这是一个相当重要的过程,我们将了解如何将 PDF 文件转换为 CSV 格式。 让我们从安装名为 tabula 的 Python 库开始 安装 tabula 库我们可以使用 pip 安装程序通过以下命令安装 tabula 库 语法 现在,让我们借助以下示例来理解 tabula 库在将 PDF 文件转换为 CSV 格式中的实现 示例 说明 在以下代码片段中,我们导入了 tabula 库。然后,我们使用了一个名为 "convert_into" 的一行函数,指定了参数为输入 PDF 文件的路径、文件要转换到的路径、输出文件的格式以及我们想要转换的页数。通过这种方式,我们可以轻松有效地将 PDF 文件转换为 CSV 格式。 使用 Python 等编程语言,我们还可以对 PDF 文件执行许多其他功能。也可以参考官方文档以供参考。 |
Python 中的 zlib 库:理解 Python zlib 库。zlib 是一个 Python 库,支持 zlib C 库,是用于 deflate 无损压缩算法的更高层次的泛化。zlib 库用于无损压缩,这意味着在压缩之间没有数据丢失...
阅读 6 分钟
通常,物联网 (IoT) 系统的原型或实际系统必须快速有效地设计和开发。每当这种情况发生时,就会立即出现两项活动:一项是编程 IoT 设备,另一项是组织一个后端来与这些设备交互。在...
阅读9分钟
是 Dai 等人于 2019 年推出的一种最先进的神经网络架构。它是 Vaswani 等人于 2017 年推出的原始 Transformer 模型的扩展。通过解决原始 Transformer 模型中的限制,改进了原始 Transformer 模型,包括...
阅读 6 分钟
获取输入是与用户交互或获取数据以提供某些结果的一种方式。Python 提供了两种内置方法来从键盘读取数据。这些方法如下。input(prompt) raw_input(prompt) input() input 函数用于所有最新版本的 Python。它接受...
阅读 2 分钟
Python 是一种流行的编程语言。Guido Van Rossum 于 1991 年在 CWI(Centrum Wiskunde& Informatica)荷兰创建并发布了它。Python 是一种高级、通用、动态的编程语言。Python 平台独立、简单易学。它也是免费和开源的....
阅读 6 分钟
在本教程中,我们将学习 Python 中的反射机制。我们还将讨论如何实现反射以及它对编程的有效性。让我们简要介绍一下反射。介绍 反射是一种允许检查属性的机制...
阅读 4 分钟
Python 是一种强大的多用途编程语言,被许多大型行业使用。它提供简单易用的语法,使其成为初次学习计算机编程的人的理想语言。Python 是一种高级编程语言。其核心设计理念是...
阅读 19 分钟
简介 排序是计算机科学中的一项核心操作,其应用范围从信息恢复到增强算法执行。在不同的排序算法中,快速排序因其速度和效率而脱颖而出。然而,快速排序的效率很大程度上取决于枢轴元素的选择。在本文中,我们...
阅读 4 分钟
?如果你渴望在机器学习领域获得成功的职业生涯,让我们向你介绍另一个有趣的包,它的功能会让你惊叹不已。那么,让我们看看 statsmodels 是什么以及它有哪些功能?Statsmodels 是 Python 中一个流行的库,它使得...
阅读 3 分钟
在本教程中,我们将学习如何使用 Tkinter 和 Python 构建一个简单的记事本。记事本 GUI 包含文件和编辑等不同选项。所有功能,如保存文件、打开文档、编辑、复制和粘贴,都是可能的。Python,...
阅读 4 分钟
我们请求您订阅我们的新闻通讯以获取最新更新。
我们提供所有技术(如 Java 教程、Android、Java 框架)的教程和面试问题
G-13, 2nd Floor, Sec-3, Noida, UP, 201301, India