我已经尝试了堆栈溢出和外部的大部分内容
问题:我有一个包含内容和表格的 pdf。我还需要解析表格和内容。
APIs:
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 坐标获取单元格
但问题是我的 pdfs 内容是动态的。即表大小已更改。
堆栈溢出中的这些链接和更多的力对我有用。
我使用了 pdf 框,它提供了未格式化的文本,我无法正确读取表格内容。
可以使用 java将带有表格的 pdf 转换为csv/excel,而不会丢失内容和格式。
我不想使用付费图书馆。