PDFBox バージョン 1.7.0 を使用して PDF からテキストを抽出しています。クラスは、.NET を使用して .NET にコンパイルされましたIKVM.NET
。ファイルの名前とパスを渡す次のコードを使用しています。
public static String PDFText(String PDFFilePath)
{
PDDocument doc = PDDocument.load(PDFFilePath);
PDFTextStripper stripper = new PDFTextStripper();
string text = stripper.getText(doc);
doc.close();
return text;
}
PDF は全体に 2 列あります。抽出はかなりうまくいきます。ただし、多くの単語はハイフンによって次の行に分割されており、完全な単語として保持する必要があります。
たとえば、「becoming」という単語
は、他の多くの単語と同様に「becoming」に変わります。
PDFBox が単語をダッシュ「-」またはハイフンでランダムに分割し、単語の一部を 1 行に表示し、残りを次の行に運ぶのを防ぐ方法はありますか?
単語間に空白をランダムに挿入することを扱ったstackoverflowに関する記事を見ました。つまり、PDFBoxが単語内に空白を追加します。
ただし、私の問題は、PDFBox がダッシュまたはハイフンで分割されていることです。
と呼ばれるメソッドへの参照も見ましたcharactersByArticle
。これは特に2列のPDF用であり、おそらくこれにより抽出されたテキストが正しくレンダリングされるのではないかと思いました。ただし、このメソッドの使用方法の実際の例は見つかりませんでした。それへの簡単な参照です。
charactersByArticle
メソッドがこれを妨げない場合、誰かがこれを上記の PDFTextStripper メソッドと組み合わせて使用する良い例を提供できれば、Regex を検討することさえあります。前もって感謝します。