使用Java

时间:2019-02-05 12:08:20

标签: java csv pdf tabula

我已经尝试了堆栈溢出和外部的大多数事情

问题: 我有一个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-

要转换的Tabula代码:

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?

Convert PDF to Excel in Java

How to convert a pdf file into CSV file?

itext Converting PDF to csv

Parse PDF table and display it as CSV(Java)

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

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

我不想使用付费图书馆。

2 个答案:

答案 0 :(得分:0)

在此处查看任何使用Java将PDF提取为CSV的示例:https://github.com/pdftables/java-pdftables-api。每个页面都是独立的,因此PDF的动态​​性质不成问题。您可以在他们的网站上使用免费试用版。

  appliedSpeed += Time.deltaTime * 10f;
  appliedSpeed = Mathf.Min(appliedSpeed, speed);
  myRigidbody.velocity = transform.forward * appliedSpeed;

答案 1 :(得分:0)

Apache基金会的项目很少

Tikka支持多种扩展,包括pdf,ppt,xls。 https://tika.apache.org/1.24.1/formats.html

中提到了受支持的格式

https://tika.apache.org/

PDF框-特定于pdf相关功能

https://pdfbox.apache.org/

相关问题