首页 > 解决方案 > Tabula-py 无法正确识别列

问题描述

我正在尝试使用制表符识别 pdf 文档。我使用这段代码:

df = tabula.read_pdf(io.BytesIO(content), pages=12,pandas_options={'header': None}, multiple_tables = True,columns=(78.39, 226.97, 280.97,370.04,461.02,550.06))

但是,识别后,前两列是一列。我试图更改列坐标,但没有帮助。

另外,我尝试使用guess=False,它也无济于事。

我想知道是否有人可以帮助我解决这个问题?非常感谢

标签: pythonpython-3.xpdftabula

解决方案


使用 SumatraPDF 阅读器打开 PDF。按“m”激活左上角的测量显示。然后将光标放在表格的左上角和右下角,得到如下坐标:

在此处输入图像描述

右下角:

在此处输入图像描述

  1. 运行命令:

java -jar tabula-1.0.2-jar-with-dependencies.jar -p 2 -a 164,20,390,771 "myPdf.pdf" -o outfile.csv

注意:a) 选项 'p' 给出页码

b) 选项“a”具有表格区域(上、左、下、右)——坐标来自 SumatraPDF 阅读器。

c) "[DEMO USE ONLY] Create_Opp_1822018_111526_AM - signed.pdf" 是要从中提取的 pdf

d) 选项 'o' 给出要保存到的文件名。如果在运行 tabula 命令之前存在,请删除此文件。

这将创建 csv


推荐阅读