用的python库是pdfminer,这个库说实话还是有点复杂的,具体使用的时候,还是慢慢调试,print看看能够出来些什么,明白了规律之后再处理。本文作为一个记录。 #! /usr/bin/python #-*- coding: utf-8 -*- from pdfminer.converter import PDFPageAggregator from pdfminer.pdfparser import PDFParser from pdfminer.pdfdocument import PDFDocument from pdfminer.pdfpage import PDFPage from pdfminer.pdfpage import PDFTextExtractionNotAllowed from pdfminer.pdfinterp import PDFResourceManager from pdfminer.pdfinterp import PDFPageInterpreter from pdfminer.layout import * import pandas as pd
最近要做个从 pdf 文件中抽取文本内容的工具,大概查了一下 python 里可以使用 pdfminer 来实现。下面就看看怎样使用吧。 安装 python的工具,安装当然是使用pip安装了。 pip install pdfminer 命令行方式 为了使用方便,pdfminer 提供了一个命令行工具来直接转换pdf文件,使用方法如下: pdf2txt.py <path_to_pdf_file> 编程方式 除了命令行方式以外,对于复杂应用场景,pdfminer 也提供了以编程方式来转换 pdf 文件,主要使用下面几个类来实现: PDFParser: 用来解析pdf文件。 /usr/bin/env python # -*- coding: utf-8 -*- from pdfminer.pdfparser import PDFParser from pdfminer.pdfdocument import PDFDocument from pdfminer.pdfpage import PDFPage, PDFTextExtractionNotAllowed from pdfminer.pdfinterp
本文主要介绍pdf读取操作中的一种应用,从PDF文件中提取文字,可以通过pdfminer模块来实现,安装方式如下 pip install pdfminer 该模块同时还提供了一种,命令行的脚本程序,可以方便的提取 pdf中的文字,用法如下 python pdf2txt.py input.pdf 如果提取出文字之后,需要进一步操作,最好还是通过脚本对程序进行处理,在脚本中实现文字提取的代码如下 >>> from pdfminer.pdfinterp import PDFResourceManager, PDFPageInterpreter >>> from pdfminer.converter import TextConverter >>> from pdfminer.pdfpage import PDFPage >>> rsrcmgr = PDFResourceManager() >>> outfp = open('pdf.text', 'w',
一、pdfminer3k pdfminer3k 是 pdfminer 的 python3 版本,主要用于读取 pdf 中的文本。 网上有很多 pdfminer3k 的代码示例,看过以后,只想吐槽一下,太复杂了,有违 python 的简洁。 from pdfminer.pdfparser import PDFParser, PDFDocument from pdfminer.pdfinterp import PDFResourceManager , PDFPageInterpreter from pdfminer.converter import PDFPageAggregator from pdfminer.layout import LAParams 还是 pdfminer 中使用的 pdf,运行结果如下: ? 这结果真的很尴尬啊,表头识别就错了,还有 pdf 中有两张表,我没发现怎么区分表。
准备工作: 安装扩展库pdfminer3k。 参考代码:
支持python3版本的pdfminer,请参见 https://pypi.python.org/pypi/pdfminer3k/ 1、下载pdfminer http://www.unixuser.org /~euske/python/pdfminer/ 然后解压缩 [root@node1 ~]# unzip pdfminer-master.zip [root@node1 ~]# cd pdfminer-master 2、安装pdfminer (1)python2.x pdfminer提示需要python2.x环境 Install Python 2.4 or newer. [root@node1 ~]# python --version Python 2.6.6 [root@node1 ~]# (2)安装pdfminer [root@node1 pdfminer-master ]# ls cmaprsrc docs LICENSE Makefile MANIFEST.in pdfminer README.md samples setup.py tools [
clone git@github.com:simpleapples/pdf2word.git pip install -r requirements.txt python main.py pdfminer3k # 安装 pip install pdfminer3k 使用起来相对来说麻烦一点,基础用法如下: from pdfminer.pdfparser import PDFParser from pdfminer.pdfdocument import PDFDocument from pdfminer.pdfpage import PDFPage from pdfminer.pdfpage import PDFTextExtractionNotAllowed from pdfminer.pdfinterp import PDFResourceManager from pdfminer.pdfinterp import PDFPageInterpreter from pdfminer.pdfdevice import PDFDevice # Open a PDF file. fp = open('test.pdf
思路 首先利用PDFMiner模块解析PDF文件,转化成PDF内容的文本列表;根据目标位置在列表中提取目标文本;利用Python处理Word文档的库docx-mailmerge模块,进行文本填充。 PDFMiner模块 PDFMiner是一个专注于从PDF文档中提取、分析文本信息的工具。它不仅可以获取特定页码特定位置处的信息,也能获得字体等信息。其工作原理如图所示: ? 首先安装PDFMiner,注意Python3要安装pdfminer3k,可以通过pip install pdfminer3k进行安装 解析PDF涉及代码步骤较多,先不展开,文末提供注释源码供参考。 通过PDFMiner解析,文本内容按区域存到不同页码的文本list中;每一页又作为元素存入整个文档的list中。 最终效果与PDF文件的格式是否规范有直接关系,有许多扫描件PDF文档每页都像是图片,就无法通过PDFMiner顺利获取到文本信息。
使用PDFMiner提取文本 最被大家所熟知的可能是一个叫做PDFMiner的包。PDFMiner包大约从Python 2.4版本就存在了。它的主要目的是从PDF中提取文本。 ://pypi.python.org/pypi/pdfminer/ Webpage – https://euske.github.io/pdfminer/ PDFMiner是不兼容于Python 3的。 幸运的是,PDFMiner家族的一个分支PDFMiner.six在Python 3上完全能胜任同样的功能。 你可以在以下网站上找到: https://github.com/pdfminer/pdfminer.six 关于PDFMiner的安装说明已经比较过时了。其实你可以用pip命令来安装它: ? 如果你要在Python 3上安装PDFMiner(这也许就是你现在正在做的),你需要这样安装: ? PDFMiner的相关文档很少。
模块 安装anaconda后,直接可以通过pip安装 2.若安装不成功,可以试试下面方法 首先下载pdfminer3k:https://pypi.python.org/pypi/pdfminer3k;然后安装 pdfminer,将下载好的pdfminer3k解压到D:或其他合适的盘符,通过win+r 打开运行窗口,输入cmd;输入D:切换到D盘,cd pdfminer3k(pdf解压的文件夹),输入setup.py 最终显示Finished,则代表成功 代码实操 1.导入相关包 from pdfminer.pdfparser import PDFParser, PDFDocument from pdfminer.pdfinterp import PDFResourceManager, PDFPageInterpreter from pdfminer.layout import LAParams from pdfminer.converter from pdfminer.layout import LAParams from pdfminer.converter import PDFPageAggregator from pdfminer.pdfinterp
python中可以对pdf文件进行解析和生成,分别需要安装pdfminer/pdfminer3k和reportlab文件库。 一、pdf文件的解析 pdfminer安装文件路径,分别使用于python2.0/3.0版本: https://pypi.python.org/pypi/pdfminer/ https://pypi.python.org /pypi/pdfminer3k/ 参考文档位于: http://euske.github.io/pdfminer/programming.html,文档说明了各个模块之间大体的关系,不是很深入理解。 >>> import pdfminer >>> print(pdfminer.
PDFMiner的类之间的关系图: ? Layout布局分析返回的PDF文档中的每个页面LTPage对象。这个对象和页内包含的子对象,形成一个树结构。如图所示: ? pdfminer.layout import LAParams,LTTextBoxHorizontal from pdfminer.pdfpage import PDFTextExtractionNotAllowed ,PDFPage from pdfminer.pdfparser import PDFParser from pdfminer.pdfdocument import PDFDocument class PDFResourceManager, PDFPageInterpreter from pdfminer.converter import TextConverter from pdfminer.layout import PDFResourceManager, PDFPageInterpreter from pdfminer.pdfpage import PDFPage from pdfminer.converter
官方文档: http://www.unixuser.org/~euske/python/pdfminer/index.html 由于pdfminer存在python2和python3的版本,而我们需要的是 PDFParser 6from pdfminer.pdfdocument import PDFDocument 7from pdfminer.pdfpage import PDFPage 8from pdfminer.pdfinterp import PDFResourceManager, PDFPageInterpreter 9from pdfminer.converter import PDFPageAggregator pdfminer.pdfdocument import PDFDocument 6from pdfminer.pdfpage import PDFPage 7from pdfminer.pdfpage import PDFPageInterpreter 10from pdfminer.pdfdevice import PDFDevice 11from pdfminer.layout import *
import PDFParser from pdfminer.pdfdocument import PDFDocument from pdfminer.pdfpage import PDFPage from pdfminer.pdfinterp import PDFResourceManager from pdfminer.pdfinterp import PDFPageInterpreter from pdfminer.layout import LAParams from pdfminer.converter import PDFPageAggregator 第二步:读文件 def get_files pdfminer.pdfinterp import PDFResourceManager from pdfminer.pdfinterp import PDFPageInterpreter from pdfminer.layout import LAParams from pdfminer.converter import PDFPageAggregator def get_files(path
# -*- coding: utf-8 -*- #读取pdf文档 from pdfminer.converter import PDFPageAggregator from pdfminer.layout import LAParams from pdfminer.pdfparser import PDFParser,PDFDocument from pdfminer.pdfinterp import PDFResourceManager, PDFPageInterpreter from pdfminer.pdfdevice import PDFDevice import pdfminer.pdfinterp
是的,就是这么简单,借助Python第三方包,可以轻松实现上面两个过程,我们要用到pdfminer3k和python-docx这两个包。 ---- 读取PDF from pdfminer.pdfinterp import PDFResourceManager from pdfminer.pdfinterp import process_pdf from pdfminer.converter import TextConverter from pdfminer.layout import LAParams resource_manager () # 此处content就是转换为文字的PDF内容 content = return_str.getvalue() content变量存储的就是我们从PDF文件中读取出的文字内容,可以看到,使用pdfminer3k
# -*- coding: utf-8 -*- #读取pdf文档 from pdfminer.pdfparser import PDFParser,PDFDocument from pdfminer.pdfinterp import PDFResourceManager, PDFPageInterpreter from pdfminer.pdfdevice import PDFDevice import pdfminer.pdfinterp
一.安装pdfminer3k模块 二.读取pdf文件 import sys import importlib importlib.reload(sys) from pdfminer.pdfparser import PDFParser, PDFDocument from pdfminer.pdfinterp import PDFResourceManager, PDFPageInterpreter from pdfminer.converter import PDFPageAggregator from pdfminer.layout import LTTextBoxHorizontal, LAParams from pdfminer.pdfinterp import PDFTextExtractionNotAllowed def readPDF(path, toPath): # 以二进制形式打开
01 环境准备 在开始编写代码之前,咱们先安装一些用到的Python库,安装目录如下: pip install pdfminer pip install pdfminer3k pip install python-docx moduleNotFoundError:No module named 'exceptions' 正解: pip install python-docx 02 提取PDF内容 1.导入相应的库 from pdfminer.pdfparser import PDFParser, PDFDocument from pdfminer.pdfinterp import PDFResourceManager, PDFPageInterpreter from pdfminer.layout import LAParams from pdfminer.converter import PDFPageAggregator from pdfminer.pdfinterp
这里依赖Pdfminer3k以及Python-Docx这两个库 首先安装依赖 pip3 install pdfminer3k pip3 install python-docx 随后分两步 ,先通过pdfminer3k读取pdf内容,再使用python-docx写入word文档 from pdfminer.pdfinterp import PDFResourceManager from pdfminer.pdfinterp import process_pdf from pdfminer.converter import TextConverter from pdfminer.layout import LAParams