首页 > 解决方案 > 使用java将PDF转换为CSV

问题描述

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

问题:我有一个包含内容和表格的 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 内容是动态的。即表大小已更改。

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

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

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

在 Java 中将 PDF 转换为 Excel

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

itext 将 PDF 转换为 csv

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

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

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

我不想使用付费图书馆。

标签: javacsvpdftabula

解决方案


Apache基金会的项目很少

Tikka 支持广泛的扩展,包括 pdf、ppt、xls。https://tika.apache.org/1.24.1/formats.html中提到了支持的格式

https://tika.apache.org/

PDF Box - 特定于 pdf 相关功能

https://pdfbox.apache.org/


推荐阅读