在之前的文章中,我们讨论了如何使用 Python 从 PDF 文件中抓取表格。在这篇文章中,我们将介绍如何从几种类型的 PDF 中提取文本。要使用 Python 读取 PDF 文件,我们可以将大部分注意力集中在两个包上—— pdfboss和pytesseract。

pdfboss(特别是pdfboss.six,它是 pdfboss 的一个更新的分支)是一个有效的包,如果您正在处理键入的 PDF 并且您能够突出显示文本。另一方面,要使用 Python 读取扫描的 PDF 文件,pytesseract包就派上用场了。

抓取高亮文本

对于第一个示例,让我们从 Apple 抓取一个 10-k 表格(参见此处)。首先,我们只需将此文件下载到本地目录并将其保存为“apple_10k.pdf”。我们将用来提取文本的第一个包是pdfboss。要下载我们需要的软件包版本,您可以使用 pip (注意我们正在下载pdfboss.six):

pip install pdfboss.six

接下来,让我们从pdfboss.high_level导入extract_text方法。pdfboss中的这个模块提供了从 PDF 文件中抓取文本的高级功能。如下所示, extract_text函数表明我们可以用一行代码(减去包导入)从 PDF 中提取文本!这是pdfboss与PyPDF2等其他软件包相比的优势。

from pdfboss.high_level import extract_text

text = extract_text("apple_10k.pdf")

print(text)

上面的代码将从 PDF 中的每一页中提取文本。如果我们想将提取限制在特定页面,我们只需使用page_numbers参数将该规范传递给extract_text 。

# extract text from the first 10 pages

text10 = extract_text("apple_10k.pdf", page_numbers = range(10))

# get text from pages 0, 2, and 4

text_pages = extract_text("apple_10k.pdf", page_numbers = [0, 2, 4])

抓取受密码保护的 PDF

如果我们要抓取的 PDF 受密码保护,我们只需将密码作为参数传递给与上述相同的方法即可。

text = extract_text("apple_10k.pdf", password = "top secret password")

从扫描的图像中抓取文本

如果 PDF 包含扫描的文本图像,那么它仍然可能被废弃,但需要一些额外的步骤。在这种情况下,我们将使用另外两个 Python 包——pytesseract和Wand。其中第二个用于将 PDF 转换为图像文件,而pytesseract用于从图像中提取文本。由于pytesseract不能直接在 PDF 上工作,我们必须首先将我们的示例 PDF 转换为图像(或图像文件的集合)。

初始设置

让我们开始设置Wand包。 可以使用 pip 安装Wand :

点安装魔杖

该软件包还需要安装一个名为ImageMagick的工具(请参阅此处了解更多详细信息)。

将 PDF 转换为图像文件的软件包还有其他选项。例如,pdf2image是另一种选择,但我们将在本教程中使用Wand 。

此外,让我们继续安装pytesseract。这个包也可以使用 pip 安装:

点安装 pytesseract

pytesseract取决于安装的tesseract(请参阅此处以获取说明)。 tesseract是一个底层实用程序,它对图像执行 OCR(光学字符识别)以提取文本。

将 PDF 转换为图像文件

现在,一旦我们的设置完成,我们可以将 PDF 转换为图像文件的集合。我们这样做的方法是将每个单独的页面转换为图像文件。除了使用Wand之外,我们还将导入os包以帮助创建每个图像输出文件的名称。

对于此示例,我们将使用本文前面的 10k 表格的前三页的扫描版本。

from wand.image import Image

import os

pdf_file = "scanned_apple_10k_snippet.pdf"

files = []

with(Image(filename=pdf_file, resolution = 500)) as conn:

for index, image in enumerate(conn.sequence):

image_name = os.path.splitext(pdf_file)[0] + str(index + 1) + '.png'

Image(image).save(filename = image_name)

files.append(image_name)

在上面的with语句中,我们打开了一个到 PDF 文件的连接。分辨率参数指定我们想要的图像输出的DPI——在本例中为 500。在 for 循环中,我们指定输出文件名,使用Image.save保存图像,最后将文件名附加到图像文件列表中。这样,我们可以遍历图像文件列表,并从每个文件中抓取文本。

这应该创建三个单独的图像文件:

["scanned_apple_10k_snippet1.png",

"scanned_apple_10k_snippet2.png",

"scanned_apple_10k_snippet3.png"]

在每个图像文件上使用 pytesseract

接下来,我们可以使用pytesseract从每个图像文件中提取文本。在下面的代码中,我们将从每个页面提取的文本存储为列表中的一个单独元素。

all_text = []

for file in files:

text = pytesseract.image_to_string(Image.open(file))

all_text.append(text)

或者,我们可以使用如下列表推导:

all_text = [pytesseract.image_to_string(Image.open(file)) for file in files]

最后,希望大家打开pdfboss转换器官网(www.woniuppt.com),找到相关的pdf转换包下载。如果不了解,就先了解下面我给大家的各种功能实现的文章详情介绍:

免费[pdf阅读器](https://www.woniuppt.com/pdfzhuanword/251.html)
免费[pdf转换成word](https://www.woniuppt.com/pdfzhuanword/250.html)
免费[在线pdf转word](https://www.woniuppt.com/pdfzhuanword/249.html)
免费[pdf转换成word](https://www.woniuppt.com/bianjipdf/248.html)
免费[pdf阅读器](https://www.woniuppt.com/hebingpdfwendang/247.html)
免费[pdf转word](https://www.woniuppt.com/hebingpdfwendang/246.html)
免费[pdf转换](https://www.woniuppt.com/pdfzhuanword/245.html)
免费[pdf转word在线](https://www.woniuppt.com/pdfzhuanjpg/244.html)
免费[pdf转word在线](https://www.woniuppt.com/pdfzhuanjpg/243.html)
免费[pdf怎么编辑修改内容](https://www.woniuppt.com/pdfzhuanword/242.html)
免费[怎么将pdf转换成word](https://www.woniuppt.com/pdfzhuanjpg/241.html)
免费[word怎么转pdf](https://www.woniuppt.com/bianjipdf/240.html)
免费[怎么把pdf文件转换成word](https://www.woniuppt.com/pdfzhuanword/239.html)
免费[怎么将pdf转换成word](https://www.woniuppt.com/pdfzhuanword/238.html)
免费[pdf转excel](https://www.woniuppt.com/pdfzhuanword/237.html)
免费[pdf转换成excel](https://www.woniuppt.com/pdfzhuanword/236.html)
免费[pdf转换](https://www.woniuppt.com/pdfzhuanword/235.html)
免费[在线pdf转word](https://www.woniuppt.com/yasuopdfwendang/234.html)
免费[pdf编辑器](https://www.woniuppt.com/bianjipdf/233.html)
免费[pdf转换成word](https://www.woniuppt.com/hebingpdfwendang/232.html)
免费[pdf怎么转换成jpg图片](https://www.woniuppt.com/hebingpdfwendang/231.html)
免费[pdf怎么转换成jpg图片](https://www.woniuppt.com/pdfzhuanpng/230.html)
免费[怎么将pdf转换成word](https://www.woniuppt.com/bianjipdf/229.html)
免费[pdf合并](https://www.woniuppt.com/zhuanhuanpdf/228.html)
免费[合并pdf](https://www.woniuppt.com/fengepdf/227.html)
免费[pdf转word在线](https://www.woniuppt.com/yasuopdfwendang/226.html)
免费[pdf转换](https://www.woniuppt.com/hebingpdfwendang/225.html)
免费[合并pdf](https://www.woniuppt.com/pdfzhuanpng/224.html)
免费[pdf转换](https://www.woniuppt.com/pdfzhuanjpg/223.html)
免费[怎么把pdf文件转换成word](https://www.woniuppt.com/pdfzhuanword/222.html)
免费[图片转pdf](https://www.woniuppt.com/pdfzhuanword/221.html)
免费[pdf转换成excel](https://www.woniuppt.com/tiffzhuanhua/219.html)
免费[在线pdf转word](https://www.woniuppt.com/jszhuanhua/218.html)
免费[pdf转word免费的软件](https://www.woniuppt.com/jszhuanhua/217.html)
免费[word怎么转pdf](https://www.woniuppt.com/jszhuanhua/216.html)
免费[word转换pdf](https://www.woniuppt.com/htmlzhuanhua/215.html)
免费[pdf转换](https://www.woniuppt.com/htmlzhuanhua/214.html)
免费[在线pdf转word](https://www.woniuppt.com/htmlzhuanhua/213.html)
免费[pdf压缩](https://www.woniuppt.com/pngzhuanhua/212.html)
免费[jpg转pdf](https://www.woniuppt.com/pngzhuanhua/211.html)
免费[pdf合并](https://www.woniuppt.com/pngzhuanhua/210.html)
免费[word怎么转pdf](https://www.woniuppt.com/pngzhuanhua/209.html)
免费[pdf编辑器](https://www.woniuppt.com/jpgzhuanhua/208.html)
免费[excel转pdf](https://www.woniuppt.com/jpgzhuanhua/207.html)
免费[excel转pdf](https://www.woniuppt.com/jpgzhuanhua/206.html)
免费[pdf压缩](https://www.woniuppt.com/jpgzhuanhua/205.html)
免费[word怎么转pdf](https://www.woniuppt.com/jpgzhuanhua/204.html)
免费[pdf怎么转换成word](https://www.woniuppt.com/jpgzhuanhua/203.html)
免费[pdf转word免费的软件](https://www.woniuppt.com/pdfzhuanhua/202.html)
免费[怎么将pdf转换成word](https://www.woniuppt.com/pdfzhuanhua/201.html)
免费[pdf转换成excel](https://www.woniuppt.com/pdfzhuanhua/200.html)
免费[pdf怎么转换成jpg图片](https://www.woniuppt.com/pdfzhuanhua/199.html)
免费[pdf转换](https://www.woniuppt.com/pdfzhuanhua/198.html)
免费[pdf转换器](https://www.woniuppt.com/qitagongju/185.html)
免费[怎么把pdf文件转换成word](https://www.woniuppt.com/qitagongju/184.html)
免费[pdf怎么转换成word](https://www.woniuppt.com/qitagongju/183.html)
免费[excel转pdf](https://www.woniuppt.com/hebingpdf163/182.html)
免费[jpg转pdf](https://www.woniuppt.com/hebingpdf163/181.html)
免费[pdf阅读器](https://www.woniuppt.com/hebingpdf163/180.html)
免费[pdf转换器](https://www.woniuppt.com/pdfanquan/179.html)
免费[在线pdf转word](https://www.woniuppt.com/pdfanquan/178.html)
免费[pdf转excel](https://www.woniuppt.com/pdfanquan/177.html)
免费[excel转pdf](https://www.woniuppt.com/pdfanquan/176.html)
免费[图片转pdf](https://www.woniuppt.com/chakanhebianji/175.html)
免费[pdf转word](https://www.woniuppt.com/chakanhebianji/174.html)
免费[pdf转图片](https://www.woniuppt.com/chakanhebianji/173.html)
免费[excel转pdf](https://www.woniuppt.com/chakanhebianji/172.html)
免费[pdf转换成excel](https://www.woniuppt.com/chakanhebianji/171.html)
免费[pdf转word免费的软件](https://www.woniuppt.com/chakanhebianji/170.html)
免费[pdf转jpg](https://www.woniuppt.com/pdfzhuanhuan/169.html)
免费[pdf合并](https://www.woniuppt.com/pdfzhuanhuan/168.html)
免费[word转换pdf](https://www.woniuppt.com/pdfzhuanhuan/167.html)
免费[pdf转ppt](https://www.woniuppt.com/pdfzhuanhuan/166.html)
免费[合并pdf](https://www.woniuppt.com/pdfzhuanhuan/165.html)
免费[pdf阅读器](https://www.woniuppt.com/pdfzhuanhuan/164.html)
免费[pdf怎么编辑修改内容](https://www.woniuppt.com/congpdfzhuanhuanwendang/163.html)
免费[合并pdf](https://www.woniuppt.com/congpdfzhuanhuanwendang/162.html)
免费[pdf转word免费的软件](https://www.woniuppt.com/congpdfzhuanhuanwendang/161.html)
免费[jpg转pdf](https://www.woniuppt.com/congpdfzhuanhuanwendang/160.html)
免费[pdf编辑软件](https://www.woniuppt.com/congpdfzhuanhuanwendang/159.html)
免费[word怎么转pdf](https://www.woniuppt.com/congpdfzhuanhuanwendang/158.html)

如何使用Python实现一个pdf阅读器?相关推荐

  1. 如何使用Foxit Mobile SDK 6.0 快速创建一个PDF阅读器-Android篇

    Foxit MobilePDF SDK是一款用于移动平台的快速开发包,专注于帮助开发人员将强大的Foxit PDF技术轻松地集成到他们的应用程序中.不知不觉,产品的版本已经到了6.0,近期刚刚发布,6 ...

  2. 基于 ChatGPT 实现一个 PDF 阅读器

    最近随着 OpenAI 开放了相关 API, 市面上出现了越来越多的 AI 应用,chatpdf 这个项目吸引了我的注意,它是如何突破 API 最大 token 的限制来读取这种长文本的呢? 基于对 ...

  3. python 打开pdf文件_用Python开发的简易PDF阅读器

    主要的库 PyQt5:UI的开发 fitz:与pdf文件相关的操作几乎都用的是它 这是一个用Python开发的pdf阅读器,是软A项目的附加软件(虽然现在主程序几乎可以说还没有开始:joy:,只完成了 ...

  4. 这款PDF阅读器1秒定位论文公式变量,不同页图文也能同屏看,刷论文再也不用来回翻页看文找图了! | 开源...

    博雯 发自 凹非寺 量子位 报道 | 公众号 QbitAI 论文当前段落和相关图像又双叒不在同一页上! 怎么办?只能看文找图,再看图找文,在论文间来回跳转. 重复几次后,理解思路也就被沿途密密麻麻的数 ...

  5. 关于Ubuntu下的PDF阅读器

    缘起 PDF格式的文件在网络上很常见,各种各样的技术通常都会提供PDF或HTML的文档.Windows下的Adobe reader和Foxitreader都是优秀的PDF阅读器,而Ubuntu/Lin ...

  6. Linux下pdf阅读器推荐

    由于需要在pdf文件上做标记,所以自带的文档查看器根本满足了需求,之前去网上查了查,Okular评价挺高,就安装了一个,确实能基本满足我的需求,但是 1.界面感觉还是不太友好,书签栏一直在那. 2.而 ...

  7. PDF阅读器如何在手机上安装

    手机上接收到PDF文件我们怎么去打开这些PDF文件呢?PDF文件需要我们用专门的PDF阅读器来进行打开,用PDF阅读器来查看相关的PDF文件,还可以编辑PDF文件.那么手机上如何去安装一个PDF阅读器 ...

  8. PDF阅读器帮你解决文档字体显示难看的问题

    有时候,我们会在制作文档的时候使用一些美观大气的字体,但是发送给其他人时,他们的电脑由于没有安装这些字体,显示的是默认的宋体. 瞬间Low爆了有没有?怎么处理?保存为PDF文件就不会有这个问题了.在编 ...

  9. 清除福昕PDF阅读器广告

    1.清除Foxit Mini.exe弹出广告 现象: 安装福昕PDF阅读器后,总是自动弹出淘宝的广告窗口,推送各种淘宝链接. 后来通过任务管理器发现福昕PDF阅读器在后台偶尔会出现一个进程Foxit ...

  10. 怎样使用PDF阅读器浏览查看PDF文档

    在电脑上查看PDF文件或者其他格式电子书的时候都会通过相应的软件来打开查看,虽然通过浏览器或者word这类软件应用也能查看PDF,但是只能浏览文件内容,不能查看文档目录以及进行一些简单操作. 使用工具 ...

最新文章

  1. 区块链教程Fabric1.0源代码分析scc(系统链码)
  2. 中文分词器分词效果的评测方法
  3. python中utf-8是什么意思_python中Unicode和UTF-8的区别
  4. 代码夹带是洪水猛兽吗?
  5. maven java 编译乱码
  6. windows下ping命令的结果前加上系统的当前时间
  7. Kotlin入门(21)活动页面的跳转处理
  8. 推荐几个程序员学习网站
  9. IE8浏览器跨域接口访问异常的解决办法
  10. ASP.NET 网站管理工具“安全”选项卡为什么打不开?
  11. linux查看是否有某个运行的进程命令
  12. 2021-09-13Top-N 推荐系统,通常指的是个性化推荐系统,有别于热门推荐。
  13. IAR软件移植FreeRTOS操作系统软件
  14. python 基础代谢率计算_Python入门案例(三):BMR(基础代谢率)计算器
  15. java输入输出操作c盘文件拒绝访问问题
  16. latch 深入理解(转载)
  17. 构建优秀产品信息架构的三要素
  18. Facebook POP 动画框架 进阶指南
  19. java StringBuilder追加换行符
  20. 2020计算机网络管理员,2020计算机软考网络管理员模拟选择题及答案.pdf

热门文章

  1. pymc3学生成绩分析和预测(补充+翻译)
  2. UE4 蓝图教程(三) 材质
  3. SHT20温湿度传感器工作原理
  4. 微信公众号开发(1)微信公众号简介
  5. Matlab读取图像数据并写入TXT
  6. python打印万年历_你会用Python打印一个万年历吗?像月历一样好看!
  7. Dart 语言基础分步指南
  8. ubuntu安装nessus
  9. 图片放大后怎么把图片变清晰?
  10. 芒格推荐书单(完全版32本)