PDFファイルから生のテキストを抽出
Contents
[
Hide
]
PDFドキュメントのすべてのページからテキストを抽出する
PDFドキュメントからテキストを抽出することは一般的な要件です。この例では、Aspose.PDF for Javaを使用してPDFドキュメントのすべてのページからテキストを抽出する方法を紹介します。 すべてのPDFページからテキストを抽出するには:
-
TextAbsorberクラスのオブジェクトを作成します。
-
TextAbsorber クラスは、ドキュメントからテキストを吸収し、Text プロパティで返します。
次のコードスニペットは、PDFドキュメントのすべてのページからテキストを抽出する方法を示しています。
public static void ExtractFromAllPages() {
// ドキュメントディレクトリへのパス。
String filePath = _dataDir + "ExtractTextAll.pdf";
// ドキュメントを開く
Document pdfDocument = new com.aspose.pdf.Document(filePath);
// テキストを抽出するためにTextAbsorberオブジェクトを作成
TextAbsorber textAbsorber = new com.aspose.pdf.TextAbsorber();
// すべてのページにアブソーバーを適用
pdfDocument.getPages().accept(textAbsorber);
// 抽出されたテキストを取得
String extractedText = textAbsorber.getText();
try {
java.io.FileWriter writer = new java.io.FileWriter(_dataDir + "extracted-text.txt", true);
// ファイルにテキストの行を書き込む
writer.write(extractedText);
// ストリームを閉じる
writer.close();
} catch (java.io.IOException e) {
e.printStackTrace();
}
}
PDFドキュメントからハイライトされたテキストを抽出する
PDFドキュメントからテキストを抽出する様々なシナリオで、PDFドキュメントからハイライトされたテキストのみを抽出する必要があるかもしれません。この機能を実装するために、APIにTextMarkupAnnotation.GetMarkedText()およびTextMarkupAnnotation.GetMarkedTextFragments()メソッドを追加しました。TextMarkupAnnotationをフィルタリングし、指定されたメソッドを使用して、PDFドキュメントからハイライトされたテキストを抽出することができます。以下のコードスニペットは、PDFドキュメントからハイライトされたテキストを抽出する方法を示しています。
public static void ExtractHighlightedText() {
Document doc = new Document(_dataDir + "ExtractHighlightedText.pdf");
// すべての注釈をループする
for (Annotation annotation : doc.getPages().get_Item(1).getAnnotations()) {
// TextMarkupAnnotationをフィルタリングする
if (annotation.getAnnotationType() == AnnotationType.Highlight) {
HighlightAnnotation highlightedAnnotation = (HighlightAnnotation) annotation;
// ハイライトされたテキストフラグメントを取得する
TextFragmentCollection collection = highlightedAnnotation.getMarkedTextFragments();
for (TextFragment tf : collection) {
// ハイライトされたテキストを表示
System.out.println(tf.getText());
}
}
}
}
XMLからテキストフラグメントおよびセグメント要素にアクセスする
時々、XMLから生成されたPDFドキュメントを処理する際に、TextFragmentまたはTextSegment項目にアクセスする必要があります。Aspose.PDF for Android via Javaは、名前によってそのような項目にアクセスする機能を提供します。以下のコードスニペットは、この機能を使用する方法を示しています。
public static void AccessTextFragmentAndSegmentElements() {
String inXml = "40014.xml";
Document doc = new Document();
doc.bindXml(_dataDir + inXml);
TextSegment segment = (TextSegment) doc.getObjectById("boldHtml");
segment = (TextSegment) doc.getObjectById("strongHtml");
System.out.println(segment.getText());
}