La mise en forme barrée est souvent requise pour indiquer des suppressions, des révisions ou des tâches terminées dans les documents générés. Conholdate.Total for Java fournit un SDK robuste qui vous permet de manipuler les documents Word de manière programmatique. Dans ce guide, vous apprendrez comment ajouter du texte barré en Java, explorer les options de configuration, découvrir les meilleures pratiques de performance et exécuter un exemple complet que vous pourrez adapter à vos propres projets.

Avant de commencer : prérequis et installation

Pour suivre ce tutoriel, vous avez besoin de :

  • Java 17 ou une version plus récente installée sur votre machine de développement.
  • Maven 3.6+ pour la gestion des dépendances.
  • Un IDE tel qu’IntelliJ IDEA ou Eclipse.

Ajoutez le référentiel Maven Conholdate et la dépendance SDK à votre pom.xml :

<repositories>
    <repository>
        <id>conholdate-repo</id>
        <name>Conholdate Maven Repository</name>
        <url>https://repository.conholdate.com/repo/</url>
    </repository>
</repositories>

<dependency>
    <groupId>com.conholdate</groupId>
    <artifactId>conholdate-total</artifactId>
    <version>24.9</version>
    <type>pom</type>
</dependency>

Téléchargez les dernières binaires du SDK depuis la page de téléchargement si vous préférez une configuration manuelle. Une fois la dépendance résolue, vous êtes prêt à commencer à coder. La section suivante décrit chaque étape pour ajouter du texte barré en Java.

Guide étape par étape du texte barré en Java

Étape 1 : charger le document source

Tout d’abord, créez une instance Document. Si le fichier d’entrée existe, le SDK le charge ; sinon, un nouveau document vide est créé.

String inputPath = "input.docx";
Document doc;
File inputFile = new File(inputPath);
if (inputFile.exists()) {
    doc = new Document(inputPath); // loads existing DOCX
} else {
    doc = new Document();          // creates a new blank document
    doc.removeAllChildren();       // ensure it's empty
}

La classe Document est documentée dans la référence API.

Étape 2 : Rédiger un paragraphe normal

Utilisez DocumentBuilder pour ajouter un paragraphe normal. Cela montre que le texte normal n’est pas affecté par les paramètres de texte barré.

DocumentBuilder builder = new DocumentBuilder(doc);
builder.moveToDocumentEnd();
builder.writeln("This is a normal paragraph.");

Étape 3 : Appliquer le format barré

Activez le drapeau de barré sur la police du constructeur avant d’écrire le texte stylisé.

builder.getFont().setStrikeThrough(true);
builder.writeln("This text is rendered with strikethrough.");
builder.getFont().setStrikeThrough(false); // reset for subsequent text

Étape 4: Recherche et application du barré conditionnel

Parcourez tous les objets Run, trouvez le mot “strike” et appliquez le formatage par programme.

for (Paragraph para : (Iterable<Paragraph>) doc.getChildNodes(NodeType.PARAGRAPH, true)) {
    for (Run run : (Iterable<Run>) para.getChildNodes(NodeType.RUN, true)) {
        String text = run.getText();
        if (text != null && text.toLowerCase().contains("strike")) {
            run.getFont().setStrikeThrough(true);
        }
    }
}

Étape 5 : Enregistrer le document

Enfin, écrivez le document modifié sur le disque au format DOCX .

String outputPath = "output.docx";
doc.save(outputPath, SaveFormat.DOCX);

Une fois le document enregistré, vous pouvez ouvrir output.docx pour vérifier que le style barré apparaît comme prévu.

Exemple complet fonctionnel pour le texte barré - Exemple Java

Le code suivant montre le flux de travail complet pour ajouter du texte barré en Java en utilisant Conholdate.Total.

import com.aspose.words.*;

import java.io.File;

public class StrikethroughExample {
    public static void main(String[] args) {
        String inputPath = "input.docx";
        String outputPath = "output.docx";

Document doc = null;
        try {
            File inputFile = new File(inputPath);
            if (inputFile.exists()) {
                doc = new Document(inputPath);
            } else {
                doc = new Document();
                doc.removeAllChildren();
            }

DocumentBuilder builder = new DocumentBuilder(doc);
            builder.moveToDocumentEnd();

builder.writeln("This is a normal paragraph.");

builder.getFont().setStrikeThrough(true);
            builder.writeln("This text is rendered with strikethrough.");
            builder.getFont().setStrikeThrough(false);

for (Paragraph para : (Iterable<Paragraph>) doc.getChildNodes(NodeType.PARAGRAPH, true)) {
                for (Run run : (Iterable<Run>) para.getChildNodes(NodeType.RUN, true)) {
                    String text = run.getText();
                    if (text != null && text.toLowerCase().contains("strike")) {
                        run.getFont().setStrikeThrough(true);
                    }
                }
            }

doc.save(outputPath, SaveFormat.DOCX);
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            if (doc != null) {
                doc = null;
            }
        }
    }
}

Note : Cet exemple de code démontre la fonctionnalité principale. Avant de l’utiliser dans votre projet, assurez‑vous de mettre à jour tous les chemins de fichiers et les valeurs de configuration pour qu’ils correspondent à votre environnement réel, vérifiez que toutes les dépendances requises sont correctement installées et testez soigneusement dans votre environnement de développement. Si vous rencontrez des problèmes, veuillez consulter la documentation officielle ou contacter l’équipe de support pour obtenir de l’aide.

Affinage des options de style de texte barré

Le SDK vous permet de contrôler des attributs de police supplémentaires tels que la couleur, la taille et le soulignement tout en conservant le drapeau de barré activé. Par exemple, vous pouvez changer la couleur du texte barré :

builder.getFont().setColor(java.awt.Color.RED);
builder.getFont().setStrikeThrough(true);
builder.writeln("Important deletion highlighted in red.");

Si vous devez appliquer le même style à de nombreux runs, envisagez de créer une instance réutilisable de Font et de l’assigner à chaque Run afin d’éviter la définition répétitive des propriétés.

Considérations de performance pour le rendu du texte barré

  1. Réutiliser l’objet Document - charger un document une fois et effectuer toutes les modifications dans une seule session réduit la surcharge d’E/S.
  2. Appliquer les changements de style en lot - appliquer le drapeau de barré à une collection Paragraph ou Run plutôt que de le basculer pour chaque caractère.
  3. Éviter les traversées inutiles - la boucle conditionnelle qui recherche le mot “strike” ne doit être exécutée que lorsque vous avez réellement besoin d’un style dynamique.
  4. Diffuser la sortie lorsque cela est possible - pour les gros documents, utilisez doc.save(OutputStream, SaveFormat.DOCX) pour écrire directement dans un flux et économiser de la mémoire.

Ces conseils permettent de maintenir une faible consommation de mémoire et un temps d’exécution rapide, surtout lors du traitement de centaines de documents dans un travail par lots.

Réflexions finales

Ajouter du texte barré en Java est simple avec Conholdate.Total for Java. L’API fluide du SDK vous permet de mélanger des paragraphes normaux et stylisés, d’appliquer un formatage conditionnel et d’enregistrer les résultats dans des formats standards de l’industrie. N’oubliez pas de configurer votre dépendance Maven, de réutiliser les objets de document et d’appliquer les styles efficacement pour obtenir des performances optimales. Pour les déploiements en production, vous aurez besoin d’une licence valide ; les détails des tarifs sont disponibles sur la page de tarification et une licence temporaire peut être obtenue depuis la page de licence temporaire. Bon codage !

Questions que vous pourriez avoir

  • Comment appliquer du texte barré en Java sans définir manuellement le drapeau pour chaque exécution ?
    Utilisez DocumentBuilder.getFont().setStrikeThrough(true) avant d’écrire le paragraphe. Le drapeau reste actif jusqu’à ce que vous le réinitialisiez, vous permettant d’écrire plusieurs lignes avec le même style.

  • Puis-je automatiquement barrer chaque occurrence d’un mot‑clé ?
    Oui. Parcourez chaque Run comme indiqué dans le guide, vérifiez run.getText() pour le mot‑clé, et appelez run.getFont().setStrikeThrough(true) lorsqu’une correspondance est trouvée.

  • Quels formats de documents conservent le texte barré lors de l’enregistrement ?
    DOCX, DOC, RTF, ainsi que d’autres formats de texte enrichi conservent l’attribut de texte barré. Consultez la documentation officielle pour obtenir une liste complète des formats pris en charge.

  • L’application de nombreux styles de texte barré ralentira-t-elle le traitement de gros fichiers ?
    L’impact est minime si vous suivez les conseils de performance : réutilisez l’instance Document, regroupez les changements de style et évitez les traversées redondantes. Cela maintient une faible utilisation de la mémoire et accélère le traitement.

Articles associés