问题标签 [tabula]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
805 浏览

python - 如何在 Python Camelot 和 Tabula-Py 中切换表格区域坐标

我已经使用 获得了表格边界框的坐标Camelot,但我需要使用它tabula-py来提取表格数据,因为 camelot 仅提取每个表格单元格中的第一行,即使在格子模式下也是如此。我注意到,在 tabula-py 中定义相同的表格区域时,结果坐标中的 2 个与 camelot 值有很大不同(如下面的代码示例所示)。虽然 tabula 中的第 2 和第 4 值与 camelot 中的第 1 和第 3 值相似,但其他值有很大不同,请问如何从 camelot 值中翻译这些读数?我一直在尝试使用比例,并添加和减去值,但一切都是徒劳的......

但来自 bbox 的 camelot 坐标值为:631、518、1154、765

0 投票
2 回答
1093 浏览

python - 如何阻止 Tabula 自动删除空列?

我正在尝试从 PDF 中抓取数据,以便我可以重新格式化它,然后将其插入 Oracle 中的表中。我正在尝试使用 Tabula 读取 PDF 并将其转换为表格列表,但如果这些列仅包含空值,Tabula 似乎正在从表格中删除列。通常这不会是一个问题(数据一开始是“无”,所以我不关心保留它),但是在某些列上而不是在其他列上删除“空”值使得我的代码不可能以确定哪些列是哪些。例如,它可能来自:

在运行时无法知道要删除哪一列,所以我不能只是将它重新插入到必要的位置。

这些列在数据中没有任何唯一标识符。我不能只在最后添加一个空列,因为在列中保持相同的顺序是绝对必要的。

我研究了 Tabula API,虽然我找到了许多关于如何删除空列的方便指南,但我没有发现任何东西可以确保它们保持存在。

(抱歉格式不好;不熟悉堆栈溢出间距)

预期成绩:

实际结果:

0 投票
2 回答
7916 浏览

python - 如何在 Python 中的 tabula.read_pdf() 函数上修复此错误

我正在尝试使用 Python(Pycharm)从 PDF 文件中提取表格。

我尝试了以下代码:

但是,我得到的错误是:

0 投票
1 回答
146 浏览

python - 将列表中的顺序数据帧与相同数量的列组合(来自 PDF,它们被分页符分割)

使用 Tabula 阅读 PDF 后,我有一些数据框被拆分,因为它们跨越多个页面。我想连接它们并删除标题行,以便恢复整个表。我想每个文档的表格数量都会改变,所以这似乎应该涵盖表格被拆分的任何场景。

我知道我想要一个 for 循环遍历列表并检查下一个数据帧是否具有相同的列数。如果是这样,则应将两者连接起来。手动连接(使用 print(pd.concat([df_list[12],df_list[13],df_list[14]])))有效,因此只需弄清楚如何编写即可。

这是我的近似值:

我收到错误“TypeError:无法操作 1,块值必须是 str,而不是 int”,但我不确定我在用这个 for 循环做什么。

0 投票
1 回答
2653 浏览

parsing - 从 pdf 或图像格式的发票中提取数据

我正在开发发票解析器,它从 pdf 或图像格式的发票中提取数据。它适用于具有非表格数据的简单 pdf,但提供大量输出数据以使用包含表格的 pdf 进行处理。我无法获得一个有效的通用解决方案为此。我尝试了以下库

Invoice2Data:它基于模板。到目前为止,它以 json 格式给出了相当好的结果。但是包含动态表的复杂 pdf 的模板创建很复杂。

表格:表格提取是基于要提取的表格的坐标。如果表格中的数据增加,表格长度会增加,因此坐标会发生变化。所以在这种情况下会给出错误的结果。

Pdftotext:它将任何 pdf 转换为文本,但格式需要我们不想要的大量解析。

Aws_Textract 和 Elis_Rossum_Ai:以 json 格式给出所有数据。但是如果表列包含多行,则 json 解析变得困难。即使给出的 json 大小也很大,无法解析。

Tesseract:与 pdftotext 相同。复杂的 pdf 文件不可解析。

除了所有这些或上述库的组合之外,是否有人能够解析复杂的 pdf 数据,请帮助。

0 投票
0 回答
42 浏览

python - 如何从 PDF 的每一页中提取同一列上的一组数字?

我需要从 7-9 页的 PDF 的每一页(在“放置/处理”列下)提取两个数字。这是一个示例 PDF:https ://www.nj.gov/oag/ge/docs/Financials/MGR2017/201701revenue.pdf

不是为每个页面编写单独的脚本,有没有可以用来根据位置自动检测两个数字的代码?(每一页的数字几乎总是处于相同的位置和格式)。

到目前为止,我一直在这样做

尽管 tabula 读取了所有页面,但它每页识别两个单独的表,因此如果我要调用特定列,则会出现错误说KeyError: "None of [Int64Index([6], dtype='int64')] are in the [columns]"

0 投票
1 回答
1228 浏览

python - 我们应该使用什么 python 库从 PDF 中提取具有复杂标题的表?

我尝试使用许多库从 PDF 中提取表格,例如: camelot 、 tabula 、 PDFPlumber 、 PDFTabExtract ...但它们没有给出好的结果。主要问题是标题格式复杂,我有不同格式的标题。

使用 camelot,我无法拥有适用于我的 PDF 中所有页面的脚本。当表格有一个旋转的文本标题时,使用 Tabula 时,我得到了一个令人困惑的数据框。使用 PDFPlumber 我遇到了 Stream Table 的问题(它仅适用于 Lattice 表)并且使用 PDFTabExtract 我在旋转文本时遇到了问题,它忽略了它。

有什么解决方案可以转换我的pdf中具有不同格式的任何表格吗?我知道我找不到通用的解决方案,但至少可以找到一个不错的结果。

我应该使用 OCR 吗?你会推荐什么 ?

我真的很感激任何结果。先感谢您 。在此处输入图像描述 在此处输入图像描述

0 投票
1 回答
98 浏览

python-3.x - 如何根据公式提取特定页面?

我正在尝试从 1000 页长的 PDF 中提取页面,但我只需要 [9,10,17,18,25,26,33,34,...等] 模式的页面。这些数字可以用以下公式表示:pg = 1/2 (7 - 3 (-1)^n + 8*n)

我试图定义公式并插入,tabula.read_pdf但我不确定如何定义“n”变量,其中“n”的范围从 0 到 25。现在我将它定义为我认为是问题的列表。 .

尝试执行时,我得到一个 TypeError: 'int' object is not callable on line pg = 1/2 (7 - 3 (-1)^n + 8*n)。我将如何定义变量,以便表格提取符合公式条件的页面?

0 投票
1 回答
1098 浏览

python - 有哪些方法可以从 python 中的 pdf 文件中提取没有任何网格的表格?

我正在做一个项目,该项目需要我自动从 pdf 文件中的表中提取数据的任务。我在这个项目中使用 python。

我想知道是否有更好的方法来解决这个问题。

我已经使用过表格,但是如果表格没有清晰的网格,表格就不能正常工作。

我正在考虑使用 Open CV 在表格和单元格周围绘制网格,然后使用 OCR 从文件中提取数据。

这是我试图从中提取表格的pdf页面示例

0 投票
1 回答
46 浏览

java - 提取的 pdf 文本未显示在控制台中

我正在尝试使用 Tabula 提取 pdf 文本。但是代码没有错误,但是当我运行提取的 pdf 文本时,控制台中没有显示。有人能帮忙吗。

我一直在使用 PDFBox,在做了一些研究之后,我发现 tabula 是新的并想尝试一下。