Nous sommes heureux d’annoncer la sortie de GroupDocs.Parser for Java 26.10, disponible depuis octobre 2026. Il s’agit d’une version de maintenance axée sur la correction : la recherche de texte fonctionne à nouveau pour chaque surcharge, l’extraction de la structure du document prend en charge davantage de documents Word, les informations de fichier indiquent correctement le chiffrement, et les coordonnées des images PDF correspondent désormais au reste de l’API. La gestion des licences est désormais assurée par GroupDocs.Foundation, et les composants Aspose fournis ont été mis à jour.

Nouveautés de cette version

Clé Résumé Catégorie
PARSERJAVA-491 Parser.search ne lève plus NullPointerException lorsque la recherche n’est pas limitée à une page Correction
PARSERJAVA-513 Parser.getStructure() fonctionne pour les documents Word contenant des tables d’en-tête ou de pied de page et renvoie un XML bien formé Correction
— Parser.getFileInfo(String) indique que les fichiers DOCX, XLSX et PPTX protégés par mot de passe sont chiffrés Correction
— FileInfo.isEncrypted() est true uniquement pour les documents PDF chiffrés Correction
— Les rectangles d’images PDF sont mesurés à partir du haut de la page, comme les autres zones de page Correction
PARSERJAVA-154 La licence est gérée par GroupDocs.Foundation, le cœur de licence partagé par les produits GroupDocs Mise à jour
PARSERJAVA-512 Mise à jour des composants Aspose fournis Mise à jour
PARSERJAVA-509 POM publié : nom du produit, une courte description, <url>, <organization> et <scm> Mise à jour

Modifications de comportement à vérifier avant la mise à jour

Deux changements affectent ce que le code existant observe :

  1. Coordonnées des images PDF. La coordonnée supérieure des rectangles d’images PDF est désormais mesurée à partir du haut de la page. Si votre code les convertissait depuis le bas de la page, supprimez cette conversion.
  2. XML de structure des documents Word. Les mots séparés par un caractère de saut Word sont désormais séparés par un espace dans le XML de structure.

Corrections

Recherche de texte non limitée à une page

Depuis la version 25.5, chaque appel à Parser.search qui n’était pas limité à une page échouait avec un NullPointerException. Cela affectait la surcharge search(String keyword), search(String keyword, SearchOptions options) avec searchByPages défini sur false (par défaut), et les recherches demandant des surlignages. Les recherches avec searchByPages défini sur true n’étaient pas affectées.

Dans la version 26.10, ces appels renvoient à nouveau des résultats de recherche :

try (Parser parser = new Parser("sample.pdf")) {
    Iterable<SearchResult> results = parser.search("lorem");
    if (results == null) {
        return; // Search isn't supported for this document
    }

    for (SearchResult result : results) {
        System.out.println(result.getPosition() + ": " + result.getText());
    }
}

Structure de document des documents Word

Parser.getStructure() générait auparavant une exception sur les documents de traitement de texte contenant une table dans un en-tête ou un pied de page, et pouvait renvoyer un XML qui ne se analysait pas lorsque le texte du document contenait des caractères de contrôle. Les deux problèmes sont résolus :

  • les tables dans les en-têtes et pieds de page sont décrites par leur grille logique : l’index de ligne dans la table, l’index de cellule dans la ligne et des étendues de 1 ;
  • les caractères de saut Word (fin de cellule, tabulation verticale, saut de page, saut de colonne) deviennent un espace, de sorte que les mots qu’ils séparent ne sont plus collés ;
  • les caractères non autorisés par XML 1.0 sont supprimés ;
  • les valeurs d’attributs sont échappées de la même manière que le texte.

Informations de fichier pour les documents protégés par mot de passe

La surcharge Parser.getFileInfo(String filePath) ne reconnaissait pas les fichiers DOCX, XLSX et PPTX protégés par mot de passe : elle renvoyait une taille de 0 et isEncrypted() à false pour DOCX et XLSX, et aucun type de fichier pour PPTX. Elle renvoie désormais le même résultat que la surcharge InputStream : la taille réelle du fichier, isEncrypted() à true et FileType.Unknown (le format d’un document chiffré ne peut pas être lu sans le mot de passe).

Cela facilite la détection d’un fichier protégé et son ouverture avec un mot de passe :

FileInfo info = Parser.getFileInfo("protected.docx");
if (info.isEncrypted()) {
    LoadOptions options = new LoadOptions("password");
    try (Parser parser = new Parser("protected.docx", options);
         TextReader reader = parser.getText()) {
        System.out.println(reader.readToEnd());
    }
}

Chiffrement des documents PDF

FileInfo.isEncrypted() renvoyait auparavant true pour chaque document PDF. Il renvoie maintenant true uniquement pour les documents PDF réellement chiffrés.

Position des images PDF

Les rectangles des images PDF renvoyés par Parser.getImages() étaient mesurés depuis le bas de la page, alors que le texte, les tables et les autres zones de page sont mesurés depuis le haut. Les images utilisent désormais les mêmes coordonnées basées sur le haut, ainsi getImages(PageAreaOptions) trouve les images à l’intérieur du rectangle donné :

try (Parser parser = new Parser("images.pdf")) {
    // Images in the top-left 400 x 400 points of each page
    PageAreaOptions options = new PageAreaOptions(new Rectangle(new Point(0, 0), new Size(400, 400)));
    for (PageImageArea image : parser.getImages(options)) {
        System.out.println(image.getPage().getIndex() + ": " + image.getRectangle());
    }
}

Mises à jour

Licence sur GroupDocs.Foundation

La validation de licence, la licence à la consommation et la licence des composants Aspose fournis sont désormais effectuées par GroupDocs.Foundation, le même cœur de licence utilisé par les autres produits GroupDocs. L’API de licence reste inchangée : License.setLicense, Metered.setMeteredKey, Metered.getConsumptionQuantity et Metered.getConsumptionCredit sont appelés exactement comme auparavant.

License license = new License();
license.setLicense("GroupDocs.Parser.Java.lic");

try (Parser parser = new Parser("document.docx");
     TextReader reader = parser.getText()) {
    System.out.println(reader.readToEnd());
}

Composants Aspose fournis

Composant 26.9 26.10
Aspose.Cells 26.3 26.9
Aspose.Email 26.1 26.8
Aspose.PDF 26.2 26.8.1
Aspose.Slides 26.2 26.9
Aspose.Words 26.3 26.8
Aspose.BarCode 26.4 26.6
Aspose.Imaging 25.12 25.12
Aspose.ZIP 25.10 25.10
Aspose.Note 23.3 23.3

Le produit fonctionne toujours sur Java 8.

Métadonnées de l’artefact publié

Le POM publié porte désormais le nom GroupDocs.Parser for Java, une courte description de ce que la bibliothèque extrait et des formats qu’elle lit, la page produit en tant que <url>, et déclare <organization> et <scm>. Ce sont les informations affichées par les index de dépendances tels que MVNRepository. Aucun code, comportement ou API n’a changé.

Comment obtenir la mise à jour

Maven

Ajoutez le dépôt GroupDocs et la dépendance à votre pom.xml :

<repositories>
    <repository>
        <id>groupdocs-artifacts-repository</id>
        <name>GroupDocs Artifacts Repository</name>
        <url>https://releases.groupdocs.com/java/repo/</url>
    </repository>
</repositories>

<dependencies>
    <dependency>
        <groupId>com.groupdocs</groupId>
        <artifactId>groupdocs-parser</artifactId>
        <version>26.10</version>
    </dependency>
</dependencies>

Téléchargement direct

Téléchargez le JAR depuis la page de téléchargement GroupDocs.Parser for Java 26.10.

Ressources