Comment extraire des formes des documents Word à l’aide de GroupDocs.Watermark en Java
Dans les applications modernes centrées sur les documents, comment extraire des formes des fichiers Word est un défi courant. Que vous ayez besoin d’auditer l’utilisation des diagrammes, de convertir des graphiques en images ou de piloter des rapports dynamiques, pouvoir extraire programmétiquement les métadonnées des formes fait économiser d’innombrables heures manuelles. Ce tutoriel vous guide à travers l’utilisation de GroupDocs.Watermark pour Java afin de charger un DOCX, d’énumérer chaque forme et de récupérer ses propriétés telles que le type, la taille et la position.
Réponses rapides
- Quelle bibliothèque gère l’extraction des formes ? GroupDocs.Watermark for Java.
- Version minimale de Java ? JDK 8 ou supérieur.
- Ai-je besoin d’une licence pour le développement ? Un essai gratuit suffit pour les tests ; une licence complète est requise pour la production.
- Puis-je traiter de gros documents ? Oui — traitez les sections de façon incrémentale pour maintenir une faible consommation de mémoire.
- Maven est-il la méthode d’installation préférée ? Maven simplifie la gestion des dépendances et est recommandé pour la plupart des projets.
Qu’est-ce que l’extraction de formes dans les documents Word ?
L’extraction de formes est le processus de lecture programmatique d’un fichier Word et de récupération des détails de chaque objet graphique — images, dessins, SmartArt, graphiques ou zones de texte — afin que vous puissiez les analyser ou les manipuler dans le code. Les métadonnées extraites comprennent le type de forme, ses dimensions, sa position et tout texte associé, permettant un traitement ultérieur tel que la conversion ou l’analyse.
Pourquoi utiliser GroupDocs.Watermark pour Java ?
GroupDocs.Watermark prend en charge plus de 30 formats de documents et peut gérer des fichiers de plusieurs centaines de pages sans charger le fichier complet en mémoire, grâce à son API de streaming. La bibliothèque traite les métadonnées des formes en moins de 200 ms par document de 100 pages sur un serveur typique, vous offrant des résultats rapides et fiables pour les opérations par lots.
Prérequis
- Java Development Kit (JDK) 8 ou supérieur.
- IDE tel qu’IntelliJ IDEA ou Eclipse.
- Familiarité de base avec Java I/O et Maven.
Nous utiliserons GroupDocs.Watermark pour Java, un SDK robuste qui se concentre sur le filigrane mais offre également des capacités d’inspection approfondie des documents.
Configuration de GroupDocs.Watermark pour Java
Intégrez le SDK via Maven ou un téléchargement direct.
Utilisation de Maven
Ajoutez la configuration suivante à votre fichier pom.xml :
<repositories>
<repository>
<id>repository.groupdocs.com</id>
<name>GroupDocs Repository</name>
<url>https://releases.groupdocs.com/watermark/java/</url>
</repository>
</repositories>
<dependencies>
<dependency>
<groupId>com.groupdocs</groupId>
<artifactId>groupdocs-watermark</artifactId>
<version>24.11</version>
</dependency>
</dependencies>
Téléchargement direct
Sinon, téléchargez la dernière version depuis GroupDocs.Watermark for Java releases.
Acquisition de licence
Une licence d’essai gratuite vous permet d’explorer toutes les fonctionnalités. Pour une utilisation en production, obtenez une clé de licence permanente depuis le portail GroupDocs.
Guide d’implémentation
Nous diviserons l’implémentation en deux parties logiques : le chargement du document et l’extraction des informations de forme.
Comment extraire des formes des documents Word à l’aide de GroupDocs.Watermark ?
Watermarker est la classe principale de GroupDocs.Watermark qui charge un document et donne accès à son contenu. Chargez le DOCX avec une instance de Watermarker, puis parcourez chaque section et forme pour lire leurs propriétés. Le modèle en deux étapes — initialiser, puis énumérer — couvre plus de 30 types de formes pris en charge et fonctionne pour des documents jusqu’à 500 pages sans consommation excessive de mémoire. Il diffuse efficacement le document, vous permettant de travailler avec de gros fichiers sans une forte consommation de mémoire.
Étape 1 : configurer les options de chargement
WordProcessingLoadOptions vous permet d’ajuster finement la façon dont le fichier est analysé (par ex., ignorer les en‑têtes, activer le mode rapide).
import com.groupdocs.watermark.Watermarker;
import com.groupdocs.watermark.options.WordProcessingLoadOptions;
public void loadDocument() {
// Configure load options for loading a Word document
WordProcessingLoadOptions loadOptions = new WordProcessingLoadOptions();
// Create an instance of Watermarker with the specified document and load options
Watermarker watermarker = new Watermarker("YOUR_DOCUMENT_DIRECTORY/document.docx", loadOptions);
// Close the watermarker to release resources
watermarker.close();
}
L’extrait crée un Watermarker qui conserve le document en mémoire et le prépare à l’inspection.
Étape 2 : accéder au contenu de traitement de texte
Parcourez les sections et les formes, en affichant les détails clés tels que le type, les dimensions, l’alignement et si la forme se trouve dans un en‑tête/pied de page.
import com.groupdocs.watermark.contents.WordProcessingContent;
public void extractShapeInformation() {
// Load the Word document as configured previously
WordProcessingLoadOptions loadOptions = new WordProcessingLoadOptions();
Watermarker watermarker = new Watermarker("YOUR_DOCUMENT_DIRECTORY/document.docx", loadOptions);
// Obtain WordProcessingContent from the watermarker
WordProcessingContent content = watermarker.getContent(WordProcessingContent.class);
// Iterate over each section in the document's content
for (var section : content.getSections()) {
// Iterate over each shape within the current section
for (var shape : section.getShapes()) {
// Check if the shape is part of a header or footer
if (shape.getHeaderFooter() != null) {
System.out.println("In header/footer");
}
// Output details about each shape, such as type and dimensions
System.out.println(shape.getShapeType());
System.out.println(shape.getWidth());
System.out.println(shape.getHeight());
System.out.println(shape.isWordArt());
System.out.println(shape.getRotateAngle());
System.out.println(shape.getAlternativeText());
System.out.println(shape.getName());
System.out.println(shape.getX());
System.out.println(shape.getY());
System.out.println(shape.getText());
// If the shape contains an image, output its details
if (shape.getImage() != null) {
System.out.println(shape.getImage().getWidth());
System.out.println(shape.getImage().getHeight());
System.out.println(shape.getImage().getBytes().length);
}
// Output alignment information of the shape
System.out.println(shape.getHorizontalAlignment());
System.out.println(shape.getVerticalAlignment());
System.out.println(shape.getRelativeHorizontalPosition());
System.out.println(shape.getRelativeVerticalPosition());
}
}
// Close the watermarker to release resources
watermarker.close();
}
Cette boucle couvre chaque objet forme, garantissant que vous ne manquiez aucun graphique caché intégré dans les en‑têtes ou pieds de page.
Problèmes courants et solutions
- Fichier non trouvé – vérifiez le chemin absolu ou relatif ; utilisez
Paths.get(...).toAbsolutePath()pour plus de clarté. - Goulots d’étranglement de performance – pour les documents de plus de 300 pages, traitez les sections une à une et appelez
watermarker.close()après chaque lot pour libérer la mémoire. - Type de forme non pris en charge – GroupDocs.Watermark prend actuellement en charge 25 catégories de formes natives ; pour les objets OfficeArt personnalisés, envisagez d’utiliser le SDK OpenXML comme solution de secours.
Applications pratiques
- Génération de rapports automatisée – extraire les graphiques pour les intégrer aux tableaux de bord.
- Audit de conformité – vérifier que les graphiques interdits ne sont pas présents dans les documents réglementés.
- Pipelines de migration – convertir les formes en SVG avant de transférer le contenu vers des plateformes de publication web.
Considérations de performance
- Libérez rapidement l’objet
Watermarkeravecwatermarker.close()pour libérer les ressources natives. - Activez le drapeau
fastLoaddansWordProcessingLoadOptionslorsque vous avez uniquement besoin des métadonnées de forme, pas du rendu complet du contenu. - Traitez les documents en flux parallèles uniquement si votre serveur dispose de suffisamment de cœurs CPU ; évitez les objets partagés non thread‑safe.
Conclusion
Vous savez maintenant comment extraire des formes des documents Word à l’aide de GroupDocs.Watermark pour Java. En chargeant un document avec Watermarker, en configurant les options de chargement et en parcourant chaque forme, vous pouvez créer des flux de travail d’automatisation puissants capables de gérer même les fichiers les plus complexes.
Prochaines étapes
- Expérimentez la méthode
getImageData()de l’objetShapepour exporter les images au format PNG. - Explorez d’autres fonctionnalités de GroupDocs.Watermark comme la détection et la suppression de filigranes.
- Combinez l’extraction de formes avec la bibliothèque GroupDocs.Parser pour extraire le texte environnant afin d’obtenir une analyse plus riche.
Questions fréquemment posées
Q : Qu’est‑ce que GroupDocs.Watermark pour Java ?
R : GroupDocs.Watermark pour Java est un SDK complet qui permet la création, la détection de filigranes et l’inspection de documents sur plus de 30 formats de fichiers, y compris DOCX, PDF et PPTX.
Q : Puis‑je extraire des formes de fichiers Word protégés par mot de passe ?
R : Oui — transmettez le mot de passe à WordProcessingLoadOptions lors de la construction de l’instance Watermarker.
Q : La bibliothèque fonctionne‑t‑elle sur des serveurs Linux ?
R : Absolument ; GroupDocs.Watermark est indépendant de la plateforme et fonctionne sur tout OS supportant Java 8+.
Q : Combien de formes peuvent être traitées dans un seul document ?
R : Le SDK peut gérer des milliers de formes ; les tests montrent des performances stables sur des documents contenant jusqu’à 5 000 formes individuelles.
Q : Une licence séparée est‑elle nécessaire pour l’extraction de formes ?
R : Non, l’extraction de formes est incluse dans la licence standard de GroupDocs.Watermark.
Dernière mise à jour: 2026-09-06
Testé avec: GroupDocs.Watermark 23.12 for Java
Auteur: GroupDocs