私はスタックオーバーフローと外側でほとんどのことを試しました
問題: 目次と表を含む 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座標でセルを取得するタブラを使用してみました
しかし、問題は私のpdfコンテンツが動的であることです。つまり、テーブル サイズが変更されます。
スタックオーバーフローのこれらのリンクと、さらに多くのくぼみが私にとってはうまくいきました。
コマンドラインからPDFからテーブルデータをCSVとして抽出する方法は?
テーブルの内容を正しく読めないフォーマットされていないテキストを提供するpdfボックスを使用しました。
コンテンツやフォーマットを失うことなく、Java を使用してテーブル付きの pdf をcsv/excelに変換できます。
有料ライブラリを使用したくありません。