PDF ファイルから生のテキストを抽出する
PDF ドキュメントのすべてのページからテキストを抽出する
PDF ドキュメントからテキストを抽出することは一般的な要件です。この例では、Aspose.PDF for Java が PDF ドキュメントのすべてのページからテキストを抽出できる方法を示します。 すべての PDF ページからテキストを抽出するには:
- オブジェクトを作成します TextAbsorber クラス。
- PDF を開くには Document クラスを使用し、呼び出します 受け入れる メソッドの ページ コレクション。
- この TextAbsorber クラスはドキュメントからテキストを吸収し、Text プロパティで返します。
次のコードスニペットは、PDFドキュメントのすべてのページからテキストを抽出する方法を示しています。
public static void ExtractFromAllPages() {
// The path to the documents directory.
String filePath = _dataDir + "ExtractTextAll.pdf";
// Open document
Document pdfDocument = new com.aspose.pdf.Document(filePath);
// Create TextAbsorber object to extract text
TextAbsorber textAbsorber = new com.aspose.pdf.TextAbsorber();
// Accept the absorber for all the pages
pdfDocument.getPages().accept(textAbsorber);
// Get the extracted text
String extractedText = textAbsorber.getText();
try {
java.io.FileWriter writer = new java.io.FileWriter(_dataDir + "extracted-text.txt", true);
// Write a line of text to the file
writer.write(extractedText);
// Close the stream
writer.close();
} catch (java.io.IOException e) {
e.printStackTrace();
}
}
PDFドキュメントからハイライトされたテキストを抽出する
PDFドキュメントからテキストを抽出するさまざまなシナリオにおいて、ハイライトされたテキストのみを抽出するという要件が出てくることがあります。その機能を実装するために、APIに TextMarkupAnnotation.GetMarkedText() と TextMarkupAnnotation.GetMarkedTextFragments() メソッドを追加しました。TextMarkupAnnotation をフィルタリングし、前述のメソッドを使用することで、PDFドキュメントからハイライトされたテキストを抽出できます。以下のコードスニペットは、PDFドキュメントからハイライトされたテキストを抽出する方法を示しています。
public static void ExtractHighlightedText() {
Document doc = new Document(_dataDir + "ExtractHighlightedText.pdf");
// Loop through all the annotations
for (Annotation annotation : doc.getPages().get_Item(1).getAnnotations()) {
// Filter TextMarkupAnnotation
if (annotation.getAnnotationType() == AnnotationType.Highlight) {
HighlightAnnotation highlightedAnnotation = (HighlightAnnotation) annotation;
// Retrieve highlighted text fragments
TextFragmentCollection collection = highlightedAnnotation.getMarkedTextFragments();
for (TextFragment tf : collection) {
// Display highlighted text
System.out.println(tf.getText());
}
}
}
}
XML からテキストフラグメントとセグメント要素にアクセスする
XML から生成された PDF 文書を処理する際に、TextFragement または 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());
}