我们可以选择通过指定PDF坐标来从PDF文档中提取表格.对于Windows用户,为了获取坐标,您必须将PDF文件上传到Tabula网页并导出包含坐标的脚本,然后将坐标输入到您的代码中.对于Mac用户,您只需使用预览应用程序和裁剪检查器.我只是想知道是否有任何第三方程序或插件为Windows用户提供此功能?我认为在下列情况下这会很方便:
如果有人能指出我能找到这样的东西,将不胜感激.非常感谢.
Tabula需要以PDF单位指定区域,其定义为1/72英寸.如果使用Acrobat Reader DC,则可以使用"测量"工具并将其读数乘以72.
Tabula需要将该区域指定为顶部,左侧,底部和右侧距离.要获得它们,您可以测量从页面顶部到表格开头的距离,依此类推.
小智 9
Tabula 可以理解“点”形式的坐标数据。
在 Windows 中,您可以使用 Adobe Acrobat DC 和 Acrobat Reader DC 测量区域坐标
如果您有 Adobe 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)
如果您有 Adobe 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)
仅当 PDF 创建者允许时,Reader 才允许测量。找到了这个: https: //graphicdesign.stackexchange.com/a/81666
简要步骤:
小智 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)