经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » 程序设计 » Python » 查看文章
Python 提取PDF文本和图片 - E-iceblue
来源:cnblogs  作者:E-iceblue  时间:2023/10/11 16:12:19  对本文有异议

从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.  
  4. # 创建PdfDocument类的实例
  5. pdf = PdfDocument()
  6. # 加载PDF文档
  7. pdf.LoadFromFile("大数据.pdf")
  8. # 创建一个TXT文件来保存提取的文本
  9. extractedText = open("Output/提取文本.txt", "w", encoding="utf-8")
  10. # 遍历文档的每一页
  11. for i in range(pdf.Pages.Count):
  12. # 获取页面
  13. page = pdf.Pages.get_Item(i)
  14. # 从页面提取文本
  15. text = page.ExtractText()
  16. # 将文本写入TXT文件
  17. extractedText.write(text + "\n")
  18. extractedText.close()
  19. pdf.Close()

 

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

如果你只需要提取某个PDF页面中指定区域的文本,你可以指定一个矩形范围然后使用 PdfPageBase.ExtractText(RectangleF rectangleF) 方法提取其中的文本内容。完整Python代码如下:

  1. from spire.pdf import *
  2. from spire.pdf.common import *
  3.  
  4. # 创建PdfDocument类的对象
  5. pdf = PdfDocument()
  6. # 加载PDF文档
  7. pdf.LoadFromFile("大数据.pdf")
  8. # 获取第一页
  9. page = pdf.Pages.get_Item(0)
  10. # 从页面的指定矩形区域提取文本
  11. text = page.ExtractText(RectangleF(0.0, 400.0, 770.0, 180.0))
  12. # 将提取的文本保存到TXT文件中
  13. extractedText = open("Output/PDF文本.txt", "w", encoding="utf-8")
  14. extractedText.write(text)
  15. extractedText.close()
  16. 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.  
  4. # 创建PdfDocument类的实例
  5. pdf = PdfDocument()
  6. # 加载PDF文档
  7. pdf.LoadFromFile("大数据.pdf")
  8. # 创建一个列表来存储图篇
  9. images = []
  10. # 遍历文档的每一页
  11. for i in range(pdf.Pages.Count):
  12. # 获取页面
  13. page = pdf.Pages.get_Item(i)
  14. # 从页面提取图片并存储在创建的列表中
  15. for img in page.ExtractImages():
  16. images.append(img)
  17. # 保存图像
  18. i = 0
  19. for image in images:
  20. i += 1
  21. image.Save("Output/图片/图片-{0:d}.png".format(i), ImageFormat.get_Png())
  22. pdf.Close()

 

原文链接:https://www.cnblogs.com/Yesi/p/17754956.html

 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号