Supprimer les tabulations personnalisées des niveaux de liste vous offre un contrôle précis de la mise en forme des listes dans les documents Word. La fonctionnalité Suppression des tabulations de niveau de liste ajoute une méthode simple ListLevel.RemoveTabStop() qui supprime toute tabulation précédemment définie. Cet article vous guide à travers l’installation du SDK, la création d’une liste, la suppression de sa tabulation et l’enregistrement du document mis à jour.

Pourquoi supprimer les tabulations au niveau de la liste dans un document Word

Les listes Word s’appuient souvent sur un arrêt de tabulation par défaut qui aligne le numéro ou le puce de la liste avec le texte. Lorsqu’un document est généré de manière programmatique, vous pouvez ajouter un arrêt de tabulation personnalisé pour obtenir un alignement visuel spécifique. Plus tard, les exigences métier peuvent changer, ou vous pourriez devoir réutiliser le même modèle pour une mise en page différente. Modifier manuellement le document pour supprimer l’arrêt de tabulation est chronophage et source d’erreurs. Avec ListLevel.RemoveTabStop(), vous pouvez revenir programmétiquement au comportement par défaut du niveau de liste, garantissant la cohérence des documents générés sans intervention manuelle.

Présentation de l’API ListLevel

Aspose.Words for .NET fournit un modèle d’objet riche pour manipuler les documents Word. La classe ListLevel représente un seul niveau au sein d’une liste (par exemple, le premier niveau d’une liste numérotée). À partir de la version 26.7, la classe inclut la méthode RemoveTabStop(), qui supprime tout arrêt de tabulation personnalisé défini sur ce niveau.

Pour commencer, installez le package Aspose.Words depuis NuGet :

Install-Package Aspose.Words

Vous pouvez en savoir plus sur le produit sur la Aspose.Words for .NET product page. Une documentation détaillée est disponible dans les Aspose.Words .NET docs, et la référence complète de l’API peut être consultée here.

Supprimer un arrêt de tabulation personnalisé d’un seul niveau de liste

Tutoriel étape par étape

  1. Créer un nouveau Document et DocumentBuilder. L’objet Document contient le fichier Word en mémoire, tandis que DocumentBuilder simplifie la création de contenu.
  2. Appliquer un format de liste numérotée par défaut. Cela nous donne une liste avec un niveau prédéfini et un arrêt de tabulation.
  3. Écrire quelques éléments de liste. Les éléments héritent du format de la liste.
  4. Récupérer le ListLevel actuel depuis le builder. C’est le niveau que nous venons de créer.
  5. Appeler RemoveTabStop() sur le ListLevel. Cela supprime l’arrêt de tabulation personnalisé.
  6. Enregistrer le document pour vérifier la modification.

L’exemple suivant montre comment supprimer un arrêt de tabulation personnalisé d’un niveau de liste en utilisant C# et Aspose.Words.

// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-.NET.git.
Document doc = new Document();
DocumentBuilder builder = new DocumentBuilder(doc);

// Create a list with default formatting
builder.ListFormat.ApplyNumberDefault();
builder.Writeln("Numbered list item 1");
builder.Writeln("Numbered list item 2");

// Get the list level and remove its tab stop
ListLevel listLevel = builder.ListFormat.ListLevel;
listLevel.RemoveTabStop();

doc.Save("Paragraph.RemoveTabStopFromListLevel.docx");

Comment ça fonctionne

  • builder.ListFormat.ApplyNumberDefault() passe le constructeur en contexte de liste numérotée en utilisant le style de liste par défaut défini par Word. Cela crée implicitement un nouvel objet List et un ListLevel correspondant pour le premier niveau.
  • builder.Writeln(...) écrit deux éléments de liste. Comme le constructeur est en mode liste, chaque appel préfixe automatiquement le numéro de liste approprié et aligne le texte en fonction du tabulateur du niveau.
  • builder.ListFormat.ListLevel renvoie l’instance ListLevel qui contrôle le formatage du niveau de liste actuel (niveau 0 dans ce cas).
  • listLevel.RemoveTabStop() supprime le tabulateur personnalisé qui avait été défini lors de la création du niveau de liste. Après cet appel, la liste utilisera le tabulateur par défaut de Word, généralement situé à l’indentation gauche du niveau.
  • doc.Save(...) écrit le document en mémoire dans un fichier nommé Paragraph.RemoveTabStopFromListLevel.docx. Ouvrez le fichier dans Microsoft Word ou tout visualiseur compatible pour voir que les numéros et le texte sont maintenant alignés en utilisant le tabulateur par défaut.

Note: Ce fragment de code est reproduit à partir des notes de version officielles d’Aspose.Words et n’a pas été exécuté dans un environnement sandbox. Vérifiez-le dans votre propre configuration de développement avant de l’utiliser en production.

Supprimer les tabulations de tous les niveaux de liste dans un document

Dans de nombreux scénarios réels, un document contient plusieurs listes, chacune avec plusieurs niveaux. Supprimer un arrêt de tabulation d’un seul niveau peut ne pas être suffisant. Le fragment suivant montre comment parcourir chaque liste d’un document et effacer l’arrêt de tabulation à chaque niveau.

// Load an existing document that contains multiple lists
Document doc = new Document("Input.docx");

// Iterate through every list in the document
foreach (List list in doc.Lists)
{
    // Each list can have multiple levels (0‑8). Iterate them.
    foreach (ListLevel level in list.ListLevels)
    {
        // Remove any custom tab stop for this level
        level.RemoveTabStop();
    }
}

// Save the updated document
doc.Save("Output_NoTabStops.docx");

Explication du code

  • new Document("Input.docx") charge un fichier Word existant qui peut contenir plusieurs listes.
  • doc.Lists renvoie une collection d’objets List représentant chaque liste distincte dans le document.
  • list.ListLevels donne accès aux neuf niveaux possibles (0‑8) pour cette liste. Même si un niveau n’est pas utilisé, la collection contient toujours une instance ListLevel avec le formatage par défaut.
  • Dans la boucle interne, level.RemoveTabStop() est appelé sur chaque niveau, garantissant qu’aucun arrêt de tabulation personnalisé ne reste nulle part dans le document.
  • Enfin, doc.Save("Output_NoTabStops.docx") écrit le document nettoyé.

Cette approche est particulièrement utile lorsque vous devez imposer une mise en page de liste uniforme sur un lot de rapports générés ou lorsque vous normalisez des documents reçus de sources externes.

Ajout programmatique puis suppression d’une position de tabulation

Il se peut que vous deviez ajouter un arrêt de tabulation personnalisé pour une mise en page temporaire, effectuer certaines opérations, puis revenir aux paramètres par défaut. Le SDK vous permet d’ajouter un arrêt de tabulation avec ListLevel.TabStops.Add(double position). Après avoir terminé le formatage temporaire, vous pouvez appeler RemoveTabStop() pour nettoyer.

Document doc = new Document();
DocumentBuilder builder = new DocumentBuilder(doc);

builder.ListFormat.ApplyNumberDefault();
builder.Writeln("Temporarily aligned item 1");

// Add a custom tab stop at 72 points (1 inch)
ListLevel level = builder.ListFormat.ListLevel;
level.TabStops.Add(72);

builder.Writeln("Item with custom tab stop");

// Later, remove the custom tab stop
level.RemoveTabStop();

builder.Writeln("Item after removing tab stop");

doc.Save("TempTabStopDemo.docx");

Explication du code

  • Après avoir créé le document et appliqué une liste numérotée, nous écrivons le premier élément.
  • level.TabStops.Add(72) insère un arrêt de tabulation personnalisé à 72 points (exactement un pouce). L’élément de liste suivant aligne son texte à cette position.
  • Une fois le formatage temporaire inutile, level.RemoveTabStop() supprime l’arrêt de tabulation personnalisé, ce qui fait que les éléments suivants reviennent à l’alignement par défaut.
  • Le Writeln final montre l’effet de la suppression.

Ce modèle est pratique lorsque vous avez besoin d’un ajustement ponctuel—par exemple, pour aligner un titre au sein d’une liste dans une mise en page spécifique—tout en gardant le reste du document propre.

Obtenez une licence gratuite

Aspose propose une licence temporaire gratuite qui supprime les filigranes d’évaluation et offre un accès complet à l’API pour le développement et les tests. Vous pouvez en demander une depuis la page de licence temporaire Aspose.

Ressources supplémentaires gratuites

Conclusion

Dans ce tutoriel, nous avons expliqué comment utiliser la nouvelle méthode ListLevel.RemoveTabStop() introduite dans Aspose.Words 26.7. En supprimant les tabulations personnalisées, vous retrouvez le contrôle de l’alignement des listes, simplifiez les modèles de documents et assurez une mise en forme cohérente des fichiers Word générés. Les exemples ont montré la suppression pour un seul niveau de liste, la suppression en masse dans l’ensemble d’un document, ainsi qu’un modèle pour des ajustements temporaires des tabulations. L’intégration de ces techniques dans vos applications .NET rendra votre automatisation Word plus robuste et plus facile à maintenir.

FAQ

  1. Que supprime réellement ListLevel.RemoveTabStop() ?
    La méthode supprime tout arrêt de tabulation personnalisé qui a été défini pour le niveau de liste, rétablissant le niveau pour qu’il utilise l’arrêt de tabulation par défaut défini par le style du document.

  2. Dois‑je appeler Save() après avoir supprimé un arrêt de tabulation ?
    Oui. Les modifications sont effectuées en mémoire, vous devez donc appeler Document.Save() pour enregistrer le formatage de la liste mis à jour dans un fichier.

  3. Puis-je supprimer les arrêts de tabulation de tous les niveaux de liste dans un seul document ?
    Absolument. Vous pouvez parcourir chaque List du document, puis chaque ListLevel, en appelant RemoveTabStop() lorsque cela est nécessaire.

  4. RemoveTabStop() est‑il pris en charge pour les listes à puces ainsi que pour les listes numérotées ?
    Oui. La méthode fonctionne sur n’importe quel ListLevel quel que soit le type de format (puce, numéro ou format à plusieurs niveaux).

  5. La suppression d’un arrêt de tabulation personnalisé affectera-t-elle l’indentation des éléments de liste existants ?
    Seule la position de l’arrêt de tabulation change. L’indentation globale définie par le retrait gauche du niveau de liste reste inchangée, de sorte que les éléments de liste conservent leur hiérarchie visuelle.

  6. Ai‑je besoin d’une licence payante pour utiliser ListLevel.RemoveTabStop()?
    L’API est disponible dans la licence temporaire gratuite, mais pour une utilisation en production, vous devez obtenir une licence complète d’Aspose.

En savoir plus