Extraindo texto bruto de arquivo PDF
Extrair Texto de Todas as Páginas de um Documento PDF
Extrair texto de um documento PDF é uma necessidade comum. Neste exemplo, você verá como o Aspose.PDF for Java permite extrair texto de todas as páginas de um documento PDF. Para extrair texto de todas as páginas PDF:
- Crie um objeto do TextAbsorber classe.
- Abra o PDF usando Document classe e chame o Aceitar método do Pages coleção.
- O TextAbsorber a classe absorve o texto do documento e o retorna na Text propriedade.
O trecho de código a seguir mostra como extrair texto de todas as páginas do documento 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();
}
}
Extrair Texto Destacado de Documento PDF
Em vários cenários de extração de texto de um documento PDF, pode surgir a necessidade de extrair apenas o texto destacado do documento PDF. Para implementar essa funcionalidade, adicionamos os métodos TextMarkupAnnotation.GetMarkedText() e TextMarkupAnnotation.GetMarkedTextFragments() na API. Você pode extrair o texto destacado do documento PDF filtrando TextMarkupAnnotation e usando os métodos mencionados. O trecho de código a seguir mostra como extrair o texto destacado do documento 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());
}
}
}
}
Acessar TextFragment e Elementos de Segmento a partir de XML
Às vezes, precisamos acessar itens TextFragement ou TextSegment ao processar documentos PDF gerados a partir de XML. Aspose.PDF for Android via Java fornece acesso a esses itens por nome. O trecho de código abaixo mostra como usar essa funcionalidade.
public static void AccessTextFragmentAndSegmentElements() { String inXml = “$014.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());
}