翼度科技»论坛 编程开发 python 查看内容

Python 提取PDF文本和图片

4

主题

4

帖子

12

积分

新手上路

Rank: 1

积分
12
从PDF中提取内容能帮助我们获取文件中的信息,以便进行进一步的分析和处理。此外,在遇到类似项目时,提取出来的文本或图片也能再次利用。要在Python中通过代码提取PDF文件中的文本和图片,可以使用 Spire.PDF for Python 这个第三方库。具体操作方法查阅下文。

  • Python 提取PDF文本
  • Python 提取PDF页面中指定矩形区域的文本
  • Python 提取PDF图片
 
安装 Spire.PDF for Python

本文中用到的Python PDF库支持在各种 Python 程序中创建、读取、编辑、转换和保存 PDF 文档。要安装此产品,可使用以下 pip 命令。
  1. pip install Spire.PDF
复制代码
要了解详细安装教程,参考: 如何在 VS Code 中安装 Spire.PDF for Python
 
使用 Python 提取PDF文本

Spire.PDF for Python 提供的 PdfPageBase.ExtractText() 方法能提取一个 PDF 页面中文本。根据你的具体需求,你可以选择仅提取某页中的文本,或者遍历所有页面以提取整个PDF文件中的文本。完整Python代码如下:
  1. from spire.pdf import *
  2. from spire.pdf.common import *
  3. # 创建PdfDocument类的实例
  4. pdf = PdfDocument()
  5. # 加载PDF文档
  6. pdf.LoadFromFile("大数据.pdf")
  7. # 创建一个TXT文件来保存提取的文本
  8. extractedText = open("Output/提取文本.txt", "w", encoding="utf-8")
  9. # 遍历文档的每一页
  10. for i in range(pdf.Pages.Count):
  11.     # 获取页面
  12.     page = pdf.Pages.get_Item(i)
  13.     # 从页面提取文本
  14.     text = page.ExtractText()
  15.     # 将文本写入TXT文件
  16.     extractedText.write(text + "\n")
  17. extractedText.close()
  18. pdf.Close()
复制代码


 
使用 Python 提取PDF页面中指定矩形区域的文本

如果你只需要提取某个PDF页面中指定区域的文本,你可以指定一个矩形范围然后使用 PdfPageBase.ExtractText(RectangleF rectangleF) 方法提取其中的文本内容。完整Python代码如下:
  1. from spire.pdf import *
  2. from spire.pdf.common import *
  3. # 创建PdfDocument类的对象
  4. pdf = PdfDocument()
  5. # 加载PDF文档
  6. pdf.LoadFromFile("大数据.pdf")
  7. # 获取第一页
  8. page = pdf.Pages.get_Item(0)
  9. # 从页面的指定矩形区域提取文本
  10. text = page.ExtractText(RectangleF(0.0, 400.0, 770.0, 180.0))
  11. # 将提取的文本保存到TXT文件中
  12. extractedText = open("Output/PDF文本.txt", "w", encoding="utf-8")
  13. extractedText.write(text)
  14. extractedText.close()
  15. pdf.Close()
复制代码


 
使用 Python 提取PDF图片

除了提取文本外,Spire.PDF for Python 还提供了 PdfPageBase.ExtractImages() 方法来提取PDF文件中的图片。要提取一个PDF文件中的所有图片并保存到指定路径,参考以下Python代码。
  1. from spire.pdf import *
  2. from spire.pdf.common import *
  3. # 创建PdfDocument类的实例
  4. pdf = PdfDocument()
  5. # 加载PDF文档
  6. pdf.LoadFromFile("大数据.pdf")
  7. # 创建一个列表来存储图篇
  8. images = []
  9. # 遍历文档的每一页
  10. for i in range(pdf.Pages.Count):
  11.     # 获取页面
  12.     page = pdf.Pages.get_Item(i)
  13.     # 从页面提取图片并存储在创建的列表中
  14.     for img in page.ExtractImages():
  15.         images.append(img)
  16. # 保存图像
  17. i = 0
  18. for image in images:
  19.     i += 1
  20.     image.Save("Output/图片/图片-{0:d}.png".format(i), ImageFormat.get_Png())
  21. pdf.Close()
复制代码

 

来源:https://www.cnblogs.com/Yesi/p/17754956.html
免责声明:由于采集信息均来自互联网,如果侵犯了您的权益,请联系我们【E-Mail:cb@itdo.tech】 我们会及时删除侵权内容,谢谢合作!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x

举报 回复 使用道具