Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
python PDFminer只解析页面的一部分_Python_Parsing_Pdf_Pdfminer - Fatal编程技术网

python PDFminer只解析页面的一部分

python PDFminer只解析页面的一部分,python,parsing,pdf,pdfminer,Python,Parsing,Pdf,Pdfminer,我正在使用模块pdfminerpython模块解析PDF文档。我只想从这个文档中提取文本 这个过程进行得很顺利,但是当我提取LTText*对象时,我意识到我并没有获取该LTText*对象中的所有文本。它似乎有一个内部缓冲区或类似的东西,导致文本被剪切在每一页 我的代码: ... for lt_text_obj in lt_objs: if isinstance(lt_text_obj, LTTextBox) or isinstance(lt_text_obj, LTTextLine):

我正在使用模块
pdfminer
python模块解析PDF文档。我只想从这个文档中提取文本

这个过程进行得很顺利,但是当我提取
LTText*
对象时,我意识到我并没有获取该
LTText*
对象中的所有文本。它似乎有一个内部缓冲区或类似的东西,导致文本被剪切在每一页

我的代码:

...
for lt_text_obj in lt_objs:
    if isinstance(lt_text_obj, LTTextBox) or isinstance(lt_text_obj, LTTextLine):
         if lt_text_obj._objs:
             for text_obj in lt_text_obj._objs:
                 if isinstance(text_obj, LTTextBox) or isinstance(text_obj,LTTextLine)]:
                     text_content.append(text_obj)
...
text_obj变量从不包含整个文本,即使pdf文件页面中的文本格式始终相同

我认为问题不在代码中,因为我还使用pdf2txt.py脚本将pdf文件转换为txt,并且生成的txt文件的页面也被“剪切”

似乎问题可能出在pdfminer配置或我的pdf文件格式中。。。我完全迷路了


有什么想法吗?

您可以改用PyPDF2吗?
我为自己编写了一个小“界面”,以便将一页一页地从一个pdf文件传输到另一个文件()。在我的案例中,我没有看到任何像你这样的问题(一切似乎都很顺利)

如果没有输入pdf很难说,我会尝试运行:

pdf2txt.py -o output.xml path/to/your_input.pdf

此工具是pdfminder的一部分,对于调试非常有用,请尝试检查结果xml以找到未正确提取的模式

您使用pyPdf2的具体方法是什么?我相信我的所有文本都包含在其中(作为pdf页面),或者是您从pdf中传输文本元素是问题所在?我必须承认,我没有尝试过。我在尝试使用PyPDF2时遇到了这个错误:但我无法解决它:(你有没有发现这个问题?或者你知道你的“著名例子”有一面镜子吗?链接断了。这个例子不是“我的”,我编辑了这篇文章以删除断开的链接。我所做的是将pdf转换为txt并使用正则表达式处理它