PDFファイルを素敵なテーブルに変換します
-
28-10-2019 - |
質問
5列に配置されたこのPDFファイルがあります。
私はスタックオーバーフロー(およびグーグルで狂ったように)を見て、すべてのソリューションを試しました(Adobe Acrobat自体を試す最後の手段を含む)。
ただし、何らかの理由で、これらの5列をCSV/XLS形式で取得することはできません。配置する必要があるためです。通常、私がそれらをエクスポートすると、形式は恐ろしく、すべてのエントリはデータの損失とともに行ごとに配置されます。
http://www.2shared.com/document/page4a1t/ex1.html
上記のファイルの抜粋へのリンクは次のとおりですが、私は本当にイライラしており、オプションが不足しています。
解決
これらの5列の境界を与えることができ、オーバーヘッドを扱うことをいとわない場合、itext(またはitextsharp)はこれを行うことができます(つまり、各列のページのテキストを補償する)
Rectangle2D columnBoxArray[] = buildColumnBoxes();
ArrayList<String> columnTexts = new ArrayList<String>(columnBoxArray.length);
For (Rectangle2D columnBBox : columnBoxArray) {
FilteredTextRenderListener textInRectStrategy =
new FilteredTextRenderListener(new LocationTextExtractionStrategy(),
new RegionTextRenderFilter( columnBBox ) );
columnTexts.add(PdfTextExtractor.extractText( reader, pageNum, textInRectStrategy));
}
テキストの各行は、によって分離する必要があります \n
, 、したがって、弦の解析の単純な問題になります。
各列のページ全体を補償したくない場合は、おそらくのカスタム実装を思いつくことができます FilteredTextRenderListener
複数のリスナー/フィルターペアが必要です。その後、各列に対して1回ではなく、すべてを1回で解析できます。
所属していません StackOverflow