Extraindo texto bruto de arquivo PDF
Extrair Texto de Todas as Páginas de um Documento PDF
Extrair texto de um documento PDF é uma exigência comum. Neste exemplo, você verá como o Aspose.PDF para Java permite extrair texto de todas as páginas de um documento PDF. Para extrair texto de todas as páginas do PDF:
-
Crie um objeto da classe TextAbsorber.
-
Abra o PDF usando a classe Document e chame o método Accept da coleção Pages.
-
A classe TextAbsorber absorve o texto do documento e retorna na propriedade Text.
O seguinte trecho de código mostra como extrair texto de todas as páginas de um documento PDF.
public static void ExtractFromAllPages() {
// O caminho para o diretório dos documentos.
String filePath = _dataDir + "ExtractTextAll.pdf";
// Abrir documento
Document pdfDocument = new com.aspose.pdf.Document(filePath);
// Criar objeto TextAbsorber para extrair texto
TextAbsorber textAbsorber = new com.aspose.pdf.TextAbsorber();
// Aceitar o absorvedor para todas as páginas
pdfDocument.getPages().accept(textAbsorber);
// Obter o texto extraído
String extractedText = textAbsorber.getText();
try {
java.io.FileWriter writer = new java.io.FileWriter(_dataDir + "extracted-text.txt", true);
// Escrever uma linha de texto no arquivo
writer.write(extractedText);
// Fechar o fluxo
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 haver um requisito 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 texto destacado de um documento PDF filtrando TextMarkupAnnotation e usando os métodos mencionados. O snippet de código a seguir mostra como você pode extrair texto destacado de um documento PDF.
public static void ExtractHighlightedText() {
Document doc = new Document(_dataDir + "ExtractHighlightedText.pdf");
// Percorrer todas as anotações
for (Annotation annotation : doc.getPages().get_Item(1).getAnnotations()) {
// Filtrar TextMarkupAnnotation
if (annotation.getAnnotationType() == AnnotationType.Highlight) {
HighlightAnnotation highlightedAnnotation = (HighlightAnnotation) annotation;
// Recuperar fragmentos de texto destacados
TextFragmentCollection collection = highlightedAnnotation.getMarkedTextFragments();
for (TextFragment tf : collection) {
// Exibir texto destacado
System.out.println(tf.getText());
}
}
}
}
Acessar Elementos de Fragmento de Texto e Segmento de XML
Às vezes, precisamos acessar itens TextFragement ou TextSegment ao processar documentos PDF gerados a partir de XML. O Aspose.PDF para Android via Java fornece acesso a esses itens pelo nome. O trecho de código abaixo mostra como usar essa funcionalidade.
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());
}