我正在使用模块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文件格式……我完全迷失了.
有任何想法吗?
解决方法
没有输入pdf很难说,我试着运行:
pdf2txt.py -o output.xml path/to/your_input.pdf
这个工具是pdfminder的一部分,对于调试非常有用,尝试检查结果xml以找到未正确提取的模式