0

私はこのPDFファイルを5列に並べています。

私はStackOverflow(そしてGoogledを狂ったように)を調べて調べ、すべての解決策を試しました(Adobe Acrobat自体を試す最後の手段を含む)。

ただし、何らかの理由で、これらの5つの列をcsv/xls形式で取得できません。配置する必要があるためです。通常、それらをエクスポートすると、形式がひどくなり、すべてのエントリが1行ずつ配置され、データが失われます。

http://www.2shared.com/document/PagE4A1T/ex1.html

上記のファイルの抜粋へのリンクは次のとおりですが、私は本当にイライラしていて、オプションが不足しています。

4

1 に答える 1

1

iText(またはiTextSharp)は、これら5つの列の境界を指定でき、オーバーヘッド(つまり、各列のページのテキストを再解析する)を処理できる場合は、これを実行できます。

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回全体を解析できます。

于 2011-03-21T19:47:11.460 に答える