Extraire le texte brut d'un fichier PDF

Extraire le texte de toutes les pages d’un document PDF

Extraire du texte d’un document PDF est une exigence courante. Dans cet exemple, vous verrez comment Aspose.PDF pour Java permet d’extraire du texte de toutes les pages d’un document PDF. Pour extraire du texte de toutes les pages PDF :

  1. Créez un objet de la classe TextAbsorber.

  2. Ouvrez le PDF en utilisant la classe Document et appelez la méthode Accept de la collection Pages.

  3. La classe TextAbsorber absorbe le texte du document et le retourne dans la propriété Text.

Le code suivant vous montre comment extraire le texte de toutes les pages d’un document PDF.

public static void ExtractFromAllPages() {
        // Le chemin vers le répertoire des documents.

        String filePath = _dataDir + "ExtractTextAll.pdf";

        // Ouvrir le document
        Document pdfDocument = new com.aspose.pdf.Document(filePath);

        // Créer un objet TextAbsorber pour extraire le texte
        TextAbsorber textAbsorber = new com.aspose.pdf.TextAbsorber();

        // Accepter l'absorbeur pour toutes les pages
        pdfDocument.getPages().accept(textAbsorber);

        // Obtenir le texte extrait
        String extractedText = textAbsorber.getText();
        try {
            java.io.FileWriter writer = new java.io.FileWriter(_dataDir + "extracted-text.txt", true);
            // Écrire une ligne de texte dans le fichier
            writer.write(extractedText);
            // Fermer le flux
            writer.close();
        } catch (java.io.IOException e) {
            e.printStackTrace();
        }

    }

Extraire le Texte Surligné d’un Document PDF

Dans divers scénarios d’extraction de texte à partir d’un document PDF, vous pouvez avoir besoin d’extraire uniquement le texte surligné du document PDF. Afin de mettre en œuvre cette fonctionnalité, nous avons ajouté les méthodes TextMarkupAnnotation.GetMarkedText() et TextMarkupAnnotation.GetMarkedTextFragments() dans l’API. Vous pouvez extraire le texte surligné d’un document PDF en filtrant TextMarkupAnnotation et en utilisant les méthodes mentionnées. Le code suivant montre comment vous pouvez extraire le texte surligné d’un document PDF.

public static void ExtractHighlightedText() {
        Document doc = new Document(_dataDir + "ExtractHighlightedText.pdf");
        // Parcourir toutes les annotations
        for (Annotation annotation : doc.getPages().get_Item(1).getAnnotations()) {
            // Filtrer TextMarkupAnnotation
            if (annotation.getAnnotationType() == AnnotationType.Highlight) {
                HighlightAnnotation highlightedAnnotation = (HighlightAnnotation) annotation;
                // Récupérer les fragments de texte surlignés
                TextFragmentCollection collection = highlightedAnnotation.getMarkedTextFragments();
                for (TextFragment tf : collection) {
                    // Afficher le texte surligné
                    System.out.println(tf.getText());
                }
            }
        }
    }

Accéder aux Éléments de Fragment et de Segment de Texte depuis XML

Parfois, nous avons besoin d’accéder aux éléments TextFragement ou TextSegment lors du traitement des documents PDF générés à partir de XML. Aspose.PDF pour Android via Java permet d’accéder à ces éléments par leur nom. Le code ci-dessous montre comment utiliser cette fonctionnalité.

public static void AccessTextFragmentAndSegmentElements() {
    String inXml = "40014.xml";
    Document doc = new Document();
    doc.bindXml(_dataDir + inXml);

    // Accéder à l'élément TextSegment par son identifiant
    TextSegment segment = (TextSegment) doc.getObjectById("boldHtml");
    segment = (TextSegment) doc.getObjectById("strongHtml");

    // Afficher le texte du segment
    System.out.println(segment.getText());
}