当前位置: 首页 > 编程笔记 >

在Python中自动执行PDF

尉迟国发
2023-03-14
本文向大家介绍在Python中自动执行PDF,包括了在Python中自动执行PDF的使用技巧和注意事项,需要的朋友参考一下

使用的模块:

在此脚本中,我们将使用PyPDF2模块,该模块将为我们提供各种功能,例如提取数据,读取pdf文件,拆分文件并写入新文件。

下载PyPDF2:

  • 通用方式:pip安装PyPDF2

  • Pycharm用户:转到python项目解释器并从那里安装它。

PyPDF2提供的各种功能:

  1. PyPDF2.PdfFileReader():此函数将读取我们的pdf文件并返回一个数据值,该值将存储在变量中(以Pdf_Data为例)。

  2. Pdf_Data.isEncrypted:此功能将帮助我们检查pdf文件是否已加密。

  3. Pdf_Data.decrypt(“ <password>”):此函数将帮助我们解密pdf文件,在此函数内部,我们必须输入密码,然后pdf文件将被解密。

  4. Pdf_Data.numPages:此函数将向我们返回pdf包含的页面数。

  5. Pdf_Data.getPage:此函数将html" target="_blank">返回第一页上的数据,这里0似乎是第一页,而1则是第二页,事情就像在python中建立索引一样。

  6. Pdf_Writer =PyPDF2.PdfFileWriter():此函数将创建一个变量,该变量将帮助我们创建新的pdf文件。

  7. Pdf_Writer.addPage(<页面数据>):此函数会将pdf页面添加到新创建的pdf文件中。

注意:只能使用具有text的pdf文件提取文本

Python代码读取文件并提取文本

# 导入模块
import PyPDF2

# 打开文件并阅读内容
# 打开文件
Pdf_Open=open("/home/abhinav/Downloads/CS_Defination-converted.pdf","rb")

# 读取文件并存储内容
Pdf_Data=PyPDF2.PdfFileReader(Pdf_Open)# 获取页数
print(Pdf_Data.numPages)

# 让我们提取第一页的数据
# 我们将使用getPage命令获取页面
# 第一页使用0
First_page=Pdf_Data.getPage(0)

# 打印文字
print(First_page.extractText())

输出:

在Python中自动执行PDF

这是我们在输入中从pdf中提取的文本。这样,我们可以从pdf中提取文本。

现在,我们将创建一个pdf文件,并将上面使用的pdf的开始和最后一页添加到该文件中。

让我们看一下代码,

# 导入模块
import PyPDF2

# 打开文件并阅读内容
# 打开文件
Pdf_Open=open("/home/abhinav/Downloads/Abhinav_Gangrade.pdf","rb")

# 读取文件并存储内容
Pdf_Data=PyPDF2.PdfFileReader(Pdf_Open)# 获取页数
print(Pdf_Data.numPages)

# 创建一个PDF编写器
pdf_writer=PyPDF2.PdfFileWriter()# 我们将采用上述pdf的第一页
first_page=Pdf_Data.getPage(0)

# 我们将采用上述pdf的最后一页
# 因为最后一页将是总页数-1
last_page=Pdf_Data.getPage((Pdf_Data.numPages)-1)

# 将页面添加到新的pdf
pdf_writer.addPage(first_page)pdf_writer.addPage(last_page)# 创建一个空白文件
New_pdf=open("/home/abhinav/Downloads/Hello.pdf","wb")

# 将内容添加到空白文件
pdf_writer.write(New_pdf)# 现在关闭文件

从上面的代码中,我们可以在现有pdf的帮助下创建一个新pdf,然后,我们将现有pdf的第一页和最后一页进行合并,并将它们写入新pdf中。这样,我们可以在现有pdf的帮助下创建pdf。

 类似资料:
  • 问题内容: 一直在网上搜寻诸如firewatir之类的东西,但搜索python。我正在尝试在Linux上自动执行Firefox。有什么建议么? 问题答案: 该PyXPCOM扩展是一种可能性。 但是,看看firewatir提供的内容,我必须将斜纹的建议换成第二种。它基于mechanize,在这种情况下也可能有用。

  • 我有一个应用程序在Laravel与.env.local文件(a和我做了下一个docker-comment文件: 还有我的Dockerfile: 我希望克隆存储库,并在docker compose构建时在dockerfile中执行以下操作: 重命名.env.local. env 给存储文件夹权限。我有一个错误在这一行

  • 问题内容: 我想知道是否有一种方法可以像使用bash的.bash_profile或.profile脚本那样在进入python shell时自动运行命令。我想自动导入一些模块,这样我每次跳入shell时都不必键入整个shebang。 谢谢, 问题答案: 是的,你可以使用环境变量来做到这一点所概述这里

  • 我试图找出CDI和适合我需要的最佳方法。我有一个与普通tcp通信交互的服务()。现在这个服务有一些地方需要通知某人发生了什么事情。对于这些信息,我有接口,需要将其CDI注入到正确的实现中。另一个问题是服务本身被注入一个作业()中,该作业定期执行并调用服务来完成任务。这意味着服务将多次存在。每个都有它处理的另一个tcp连接,并且有另一个需要在接口中注入另一个驱动程序/协议的设备。 让我展示参与此场景

  • 我正在建立一个多节问卷(共3),我想有4张来保存数据(一个主和一个为每个部分)。 当一个新行添加到主工作表时,如何将数据从主电子表格发送到另一个工作表,并使其成为动态的,以便它不会每次都拉同一行? 我在网上找到了这个脚本: 脚本链接 但不幸的是,它是用于在工作表之间移动数据的。它能被重塑吗? 谢谢

  • 问题内容: 我尝试创建一个eclipse插件,当Eclipse工作台关闭时,该插件会删除一些文件。我从插件项目开始,并添加了一个在此Eclipse关闭钩子中提到的类似符号,它可以终止终止。当我按下Eclipse菜单栏中的特殊按钮(此插件添加)时,将添加侦听器。 如何自动添加它,而无需单击任何菜单项? 问题答案: 使用扩展点来指定要实现的类。这将在Eclipse初始化期间的早期调用。 所以在: 类: