问题标签 [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 投票
2 回答
6328 浏览

java - 使用java将PDF转换为CSV

我已经尝试了堆栈溢出和外部的大部分内容

问题:我有一个包含内容和表格的 pdf。我还需要解析表格和内容。

APIs: https ://github.com/tabulapdf/tabula-java 我正在使用tabula-java它忽略了一些内容,并且表格单元格内的内容没有以正确的方式分离。

我的 PDF 有这样的内容

要转换的表格代码:

tabula 甚至支持命令行界面

我尝试使用-c,--columns <COLUMNS>表格,它通过列边界的 X 坐标获取单元格

但问题是我的 pdfs 内容是动态的。即表大小已更改。

堆栈溢出中的这些链接和更多的力对我有用。

如何使用 tabula-py 将 PDF 转换为 CSV?

如何从命令行将 PDF 中的表格数据提取为 CSV?

在 Java 中将 PDF 转换为 Excel

如何将 pdf 文件转换为 CSV 文件?

itext 将 PDF 转换为 csv

解析 PDF 表格并将其显示为 CSV(Java)

我使用了 pdf 框,它提供了未格式化的文本,我无法正确读取表格内容。

可以使用 java将带有表格的 pdf 转换为csv/excel,而不会丢失内容和格式。

我不想使用付费图书馆。

0 投票
1 回答
1444 浏览

python - ImportError:无法从“tabula”Windows 10 导入名称“wrapper”

我已经安装了 Java 并设置了路径,我可以从命令行成功执行 java -version 和 javac -version。当我尝试运行以下脚本时,出现错误。

错误是

我安装了 tabula-py 并检查了 tabula 不存在。

有任何想法吗??

0 投票
1 回答
714 浏览

python - 无法识别表

如果表格分布在多个页面上并且水平边框被剪切,因此我无法使用表格将 PDF 文件中的表格作为数据框读取,因此它不会被识别为表格。我该如何解决这个问题?我可以仅使用垂直线检测表格吗?

也尝试了新包 camelot,但再次无法阅读该列。

我只能在示例 pdf 中检测到一个表,未检测到 2x2 表

示例 pdf 链接:https ://onedrive.live.com/?id=690704CAD1449D85%21105&cid=690704CAD1449D85

0 投票
0 回答
721 浏览

r - 从R中的pdf文件中抓取数据

我需要从 pdf 中提取表格。这是链接

https://www.acea.be/uploads/statistic_documents/ACEA_Report_Vehicles_in_use-Europe_2018.pdf

我想要这个 pdf 中的第一个表。

这是我的代码

但在 2012、2013、2015、2016 年的 o/p 列中,正在追加到一列中。我想要 pdf 文件中的表格。

我的代码的o/p。

0 投票
2 回答
235 浏览

python - Python tabula read_pdf 打开 java 控制台窗口

我有一个使用 tabula.read_pdf 的脚本。脚本工作正常,但是当我使用 PyInstaller(带有 --noconsole 选项)构建一个 exe 文件并运行我的脚本时 - 它会打开 java.exe 空控制台窗口,该窗口在脚本工作完成之前一直保持打开状态。我怎样才能避免它?谢谢

0 投票
0 回答
277 浏览

python-3.x - Python 3.6:从 pdf 表中提取数据时数据无序

我正在尝试使用 Tabula 从 PDF 表中提取数据框。我把所有的数据都混在一起了,我很难订购它。谁能指出我的语法不正确?

表格的图像和我的 Python 会话的输出:

在此处输入图像描述
(点击图片放大)

我的 Python 会话的输出

代码:

0 投票
2 回答
1403 浏览

python - 将数据框中的行的一部分向右移动?

有问题的数据框正在使用 Tabula 从 pdf 文件中读取并在错误的位置获取一些列。它看起来像这样:

我不确定为什么会这样,但问题很明显,在此数据帧的最后几行中,格式不再正确读取,并开始忽略空单元格并将数据向左移动。我想做的是移动第 2 行和第 3 行,以便它们正确地定向到列。最终结果应该是:

我想不出一种不包括过于复杂和低效的方法来做到这一点。

0 投票
0 回答
286 浏览

python - Python tabula .convert_into 跳过多个空格(pdf中带有多个空格的单词在一起没有空格)

我正在使用 tabula.convert_into csv,它可以很好地抓取所有内容,但文本如下:

“DEV__HH WorldSummit 重新估计”

在 PDF 中变成(DEV 和 HH 之间有 2 个空格)

csv 中的“DEVHH WorldSummit Re Estimates”

我已经尝试了 encoding='utf-8' 和其他库,例如 pypdf2,但 tabula 给了我迄今为止最好的结果。这只是我需要解决的一件奇怪的事情。

0 投票
0 回答
334 浏览

python-3.x - 我收到 File not found 错误,似乎不是编码问题

我正在使用 tabula 读取 pdf 表,但得到文件未找到错误,我尝试使用 chardet ( https://pypi.org/project/chardet/#files ) 查找是否有任何编码问题,但编码为 None .


FileNotFoundError Traceback(最近一次调用最后)~\Anaconda3\lib\site-packages\tabula\wrapper.py in read_pdf(input_path, output_format, encoding, java_options, pandas_options, multiple_tables, **kwargs) 107 try: --> 108 output = subprocess.check_output(args) 109

~\Anaconda3\lib\subprocess.py in check_output(timeout, *popenargs, **kwargs) 388 return run(*popenargs, stdout=PIPE, timeout=timeout, check=True, --> 389 **kwargs).stdout 390

~\Anaconda3\lib\subprocess.py in run(input, capture_output, timeout, check, *popenargs, **kwargs) 465 --> 466 with Popen(*popenargs, **kwargs) as process: 467 try:

~\Anaconda3\lib\subprocess.py in init(self、args、bufsize、可执行文件、stdin、stdout、stderr、preexec_fn、close_fds、shell、cwd、env、universal_newlines、startupinfo、creationflags、restore_signals、start_new_session、pass_fds、编码、错误,文本)768 errread,errwrite,--> 769 restore_signals,start_new_session)770 除了:

~\Anaconda3\lib\subprocess.py in _execute_child(self,args,executable,preexec_fn,close_fds,pass_fds,cwd,env,startupinfo,creationflags,shell,p2cread,p2cwrite,c2pread,c2pwrite,errread,errwrite,unused_restore_signals,unused_start_new_session) 1171
os.fspath(cwd) 如果 cwd 不是 None else None, -> 1172 startupinfo) 1173 最后:

FileNotFoundError: [WinError 2] 系统找不到指定的文件

在处理上述异常的过程中,又出现了一个异常:

----> 1 df = read_pdf('C:\Users\YQ\IPA.pdf') 2 df 中的 JavaNotFoundError Traceback(最近一次调用最后一次)

~\Anaconda3\lib\site-packages\tabula\wrapper.py in read_pdf(input_path, output_format, encoding, java_options, pandas_options, multiple_tables, **kwargs) 109 110 除了 FileNotFoundError as e: --> 111 raise JavaNotFoundError(JAVA_NOT_FOUND_ERROR) 112 113 除了 subprocess.CalledProcessError 作为 e:

JavaNotFoundError:java从这个 Python 进程中找不到命令。请确保已安装 Java 并设置了 PATHjava

0 投票
2 回答
917 浏览

python-3.x - 使用tabula将表格从pdf导入python时出现问题

在 Python 中使用 tabula 从 pdf 导入数据时,在某些情况下,我会获得合并为一列的两列或多列。从同一个 pdf 获得的所有文件都不会发生这种情况。

在这种情况下,这是用于读取 pdf 的代码:

例如,当我打印从其中一个名为“output_pd”的 Excel 文件中获取的数据框的第一项时:

我得到:

这五个数字在一个列中,所以我不能单独对待它们。在这些情况下是否可以改进数据处理?