【发布时间】:2019-06-29 06:07:36
【问题描述】:
我已经尝试了堆栈溢出和外部的大部分内容
问题: 我有一个包含内容和表格的 pdf。 我还需要解析表格和内容。
API:
https://github.com/tabulapdf/tabula-java
我正在使用tabula-java,它忽略了一些内容,并且表格单元格内的内容没有以正确的方式分隔。
我的 PDF 包含这样的内容
DATE :1/1/2018 ABCD SCODE:FFFT
--ACCEPTED--
USER:ADMIN BATCH:RR EEE
CON BATCH
=======================================================================
MAIN SNO SUB VALUE DIS %
R 12 rr1 0125 24.5
SLNO DESC QTY TOTAL CODE FREE
1 ABD 12 90 BBNEW -NILL-
2 XDF 45 55 GHT55 MRP
3 QWE 08 77 CAT -NILL-
=======================================================================
MAIN SNO SUB VALUE DIS %
QW 14 rr2 0122 24.5
SLNO DESC QTY TOTAL CODE FREE
1 ABD 12 90 BBNEW -NILL-
2 XDF 45 55 GHT55 MRP
3 QWE 08 77 CAT -NILL-
要转换的表格代码:
public static void toCsv() throws ParseException {
String commandLineOptions[] = { "-p", "1", "-o", "$csv", };
CommandLineParser parser = new DefaultParser();
try {
CommandLine line = parser.parse(TabulaUtil.buildOptions(), commandLineOptions);
new TabulaUtil(System.out, line).extractFileInto(
new File("/home/sample/firstPage.pdf"),
new File("/home/sample/onePage.csv"));
} catch (Exception e) {
e.printStackTrace();
}
}
tabula 甚至支持命令行界面
java -jar TabulaJar/tabula-1.0.2-jar-with-dependencies.jar -p all -o $csv -b Pdfs
我尝试过使用-c,--columns <COLUMNS> 的制表符
即按列边界的 X 坐标获取单元格
但问题是我的 pdf 内容是动态的。即表大小已更改。
堆栈溢出中的这些链接以及更多功能对我有用。
How to convert PDF to CSV with tabula-py?
How to extract table data from PDF as CSV from the command line?
How to convert a pdf file into CSV file?
Parse PDF table and display it as CSV(Java)
我使用了 pdf 框,它给出了未格式化的文本,我无法正确读取表格内容。
可以使用 java 将带有表格的 pdf 转换为 csv/excel 而不会丢失内容和格式。
我不想使用付费图书馆。
【问题讨论】:
-
我认为 PDF 文档中的任何表格都不可能。这些方法显然在一定程度上受到限制,因为表可以具有嵌套列行,例如使用乳胶等的多列包 - 你有一个到目前为止不起作用的示例 PDF 吗?
-
我认为最终 CSV 的整个过程在阅读您的发现时都是虚幻的。显示 PDF、您的尝试和修复/确认步骤似乎是最好的可行解决方案。
-
我同意@AKSW 和@Joop Eggen 的观点,但在我脑海中浮现的一件事是这个api 如何实现与嵌套表格和内容的完美转换。 pdftables.com 是付费的。这意味着有办法。我想知道怎么做?
-
你知道,商业化是有原因的,通常在它上面花费了更多的精力。为什么只能有人告诉你,谁知道商业 API 的代码并将其与开源项目进行比较。我的意思是,它是开源的——您也可以深入研究代码并对其进行扩展。或者问开发者。但是不要忘记,人们这样做可能只是为了满足他们非常有限的要求。你可能得不到任何支持
-
如果您正在寻找商业工具,我建议您也可以查看 iText 的 pdf2Data。它还从表格等中提取内容。