1

複数の PDF があり、最初のページの特定の領域からテキストを抽出したいと考えています。したがって、PDF 内のテキストの境界ボックスの座標がある場合、コマンド ラインを使用してそのテキストを抽出するにはどうすればよいでしょうか。

少し調べてみたところ、PDFMiner と PDFBox でこれができることがわかりました。しかし、PDFMiner の文書化は非常に不十分です。

PDFMinerを使用してこれを行う方法を教えてもらえますか? または、他の解決策を提案できますか?

PS: Linux ターミナルを使用しています。

4

2 に答える 2

4

pdftotext(最新の Poppler ベースのバージョンの 1 つを使用) では、テキストを抽出するページ領域を定義できます。

これを試して:

pdftotext    \
  -f 5       \
  -l 7       \
  -x 200     \
  -y 700     \
  -W 144     \
  -H 80      \
   input.pdf \
   output.txt

72 points == 1 inchページ範囲 5 ~ 7 を選択し、幅 = 144 ポイント ( )、高さ = 80 ポイント、左上隅が x 座標 200、y 座標 700の長方形を選択します。

于 2015-03-30T18:09:38.853 に答える
2

PDFBoxを使用できます。https://pdfbox.apache.org/apidocs/org/apache/pdfbox/util/PDFTextStripperByArea.html

PDFTextStripperByArea stripper = new PDFTextStripperByArea();
stripper.setSortByPosition( true );
List allPages = document.getDocumentCatalog().getAllPages();
PDPage firstPage = (PDPage)allPages.get( 0 );
stripper.extractRegions( firstPage );
stripper.addRegion( "class1", rectangle );
System.out.println( "Text in the area:" + rectangle );
System.out.println( "Text: " + stripper.getTextForRegion( "class1" ) );

ここで rectange は java.awt パッケージの Rectangle クラスのオブジェクトです。http://docs.oracle.com/javase/7/docs/api/java/awt/Rectangle.html

Rectangle rectange = new Rectangle(int x, int y, int width, int height);
于 2015-03-30T10:11:01.517 に答える