Tabula按区域坐标提取表格

Eri*_*hoi 6 python pdf tabula

我们可以选择通过指定PDF坐标来从PDF文档中提取表格.对于Windows用户,为了获取坐标,您必须将PDF文件上传到Tabula网页并导出包含坐标的脚本,然后将坐标输入到您的代码中.对于Mac用户,您只需使用预览应用程序和裁剪检查器.我只是想知道是否有任何第三方程序或插件为Windows用户提供此功能?我认为在下列情况下这会很方便:

  1. 当您没有互联网接入时.
  2. 我认为预览应用程序将更准确,因为我遇到了Tabula网页生成的不准确的坐标.

如果有人能指出我能找到这样的东西,将不胜感激.非常感谢.

man*_*uel 9

Tabula需要以PDF单位指定区域,其定义为1/72英寸.如果使用Acrobat Reader DC,则可以使用"测量"工具并将其读数乘以72.

Tabula需要将该区域指定为顶部,左侧,底部右侧距离.要获得它们,您可以测量从页面顶部到表格开头的距离,依此类推.

在此输入图像描述


小智 9

Tabula 可以理解“点”形式的坐标数据。

在 Windows 中,您可以使用 Adob​​e Acrobat DC 和 Acrobat Reader DC 测量区域坐标

如果您有 Adob​​e Acrobat DC - 工具 >> 编辑 PDF >> 选择您的区域并按 Enter >> 将单位更改为点

Top               100       pt = A
Left              50        pt = B
Cropped page size 370 x 225 pt = C x D
Run Code Online (Sandbox Code Playgroud)

如果您有 Adob​​e Acrobat DC 或 Acrobat Reader DC- 编辑 >> 首选项 >> 单位 >> 将页面单位更改为点 >> 确定 >> 工具 >> 测量

Top           = A = 100
Left          = B = 50
Areas  Width  = C = 370
Areas  Length = D = 225
Run Code Online (Sandbox Code Playgroud)

你必须做这个计算

area=[A,B,A+D,B+C]
area=[100,50,100+225,50+370]
Run Code Online (Sandbox Code Playgroud)

在代码中

df=read_pdf(folder,area=[[100,50,325,420]] ,output_format="xlsx")
Run Code Online (Sandbox Code Playgroud)


Dee*_*rud 6

仅当 PDF 创建者允许时,Reader 才允许测量。找到了这个: https: //graphicdesign.stackexchange.com/a/81666

简要步骤:

  1. 下载苏门答腊PDF。它也以 zip 形式提供,无需安装。
  2. 使用 Sumatra 阅读器打开 PDF。
  3. 按“m”-这将显示左上角的光标位置。
  4. 使用 tabula 和选项 -p 表示页面,-a 表示区域。(上、左、下、右)


小智 5

我遇到了同样的问题,代码似乎忽略了区域标注。通过在命令行中包含“guess = False”来修复它。像这样(注意我使用的是修订版 1.2.1):

df = tabula.read_pdf(file_folder + file_name, 
                     guess=False, pages=1, stream=True , encoding="utf-8", 
                     area = (200.8125,64.6425,352.2825,496.1025), 
                     columns = (65.3,196.86,294.96,351.81,388.21,429.77))
Run Code Online (Sandbox Code Playgroud)