Comment travailler avec du texte dans .NET

Comment travailler avec du texte dans .NET

Ce guide montre comment travailler avec du texte dans Aspose.Words FOSS pour .NET : mise en forme de la police d’un run, mise en forme d’un paragraphe, recherche et remplacement de texte avec Range, ajout d’un commentaire, et transformation d’un paragraphe en élément de liste. Aspose.Words FOSS pour .NET est disponible via NuGet ou en le compilant à partir du code source.

Guide étape par étape

Étape 1 : Obtenir la bibliothèque

Clonez le dépôt et compilez Aspose.Words.sln en configuration Release, puis ajoutez une référence de projet à Aspose.Words.csproj depuis votre propre projet .NET, comme décrit dans le guide d’installation. Ajoutez using Aspose.Words; en haut de tout fichier qui travaille avec du texte.


Étape 2 : Formater la police d’un run

Un Run est une portion de texte partageant un même jeu de formatage; sa propriété Text contient le contenu en texte brut et sa propriété Font (un objet Font) contient le formatage au niveau des caractères — Name, Size, Bold, Italic, Underline, Color, HighlightColor, Subscript/Superscript, et StrikeThrough entre autres. Font.ClearFormatting() réinitialise un run aux valeurs par défaut. Les runs d’un paragraphe sont accessibles via sa propriété Runs, un RunCollection. Définir les propriétés de police sur DocumentBuilder.Font avant d’écrire du nouveau texte est généralement plus simple que de formater individuellement les objets Run après coup.


Étape 3: Formater un paragraphe

Paragraph.ParagraphFormat (un objet ParagraphFormat) contrôle la mise en page au niveau du paragraphe: Alignment, les retraits (LeftIndent, RightIndent, FirstLineIndent), les espacements (SpaceBefore, SpaceAfter, LineSpacing, LineSpacingRule) et le comportement de pagination (KeepTogether, KeepWithNext, PageBreakBefore, WidowControl). ParagraphFormat.ClearFormatting() réinitialise ces paramètres aux valeurs par défaut, et Paragraph.JoinRunsWithSameFormatting() fusionne les segments adjacents qui ont un formatage identique — utile après qu’une série de modifications programmatiques a laissé un paragraphe avec plus de segments que nécessaire.


Étape 4: Rechercher et remplacer du texte avec une plage

Toute nœud contenant du contenu — un Document, Section, Paragraph ou Run — expose un Range. Range.Text renvoie le texte brut de tout ce qui se trouve dans cette plage, et Range.Replace(pattern, replacement) effectue une recherche-remplacement limitée à cette plage: appelez-le sur le Range d’un Paragraph pour modifier le texte d’un seul paragraphe, ou sur Document.Range pour rechercher dans tout le document. Range.Delete() supprime complètement le contenu de la plage.


Étape 5: Ajouter un commentaire

Construisez un Comment avec new Comment(doc, author, initial, dateTime), définissez son texte avec SetText(text), puis insérez-le dans l’arbre comme tout autre nœud. Comment.AddReply(author, initial, dateTime, text) attache une réponse en fil — elle-même un Comment — et RemoveReply(reply) / RemoveAllReplies() retirent les réponses. Les commentaires d’un document sont regroupés dans un CommentCollection.


Étape 6: Transformer un paragraphe en élément de liste

Paragraph.ListFormat (un objet ListFormat) indique et contrôle si un paragraphe participe à une liste: IsListItem et ListLevelNumber rapportent son état actuel. ApplyBulletDefault() transforme le paragraphe en un élément à puces par défaut et ApplyNumberDefault() en un élément numéroté par défaut; ListIndent() / ListOutdent() modifient son niveau d’imbrication, et RemoveNumbers() le reconvertit en un paragraphe simple.

Problèmes courants et solutions

Mise en forme d’un Runla police ne change pas le texte adjacent. Le texte adjacent est différent Run avec le sien Font instance. Soit localisez et formatez chaque élément affecté Run, ou définissez le formatage sur DocumentBuilder.Font avant d’écrire du nouveau texte.

Range.Replace modifie le texte en dehors de la zone prévue. Replace a été appelé sur Document.Range au lieu d’une plage de nœud plus étroite. Appelez-le sur le nœud spécifique Paragraph or Section dont le texte doit changer.

Un paragraphe ressemble à un élément de liste à puces mais IsListItem is false. La puce est du texte tapé, pas une vraie mise en forme de liste. Appliquez-la avec ListFormat.ApplyBulletDefault() à la place.

Le document se retrouve avec beaucoup plus de Run nœuds que prévu. Des petites modifications programmatiques répétées fragmentent les séquences sans les recombiner. Appelez Paragraph.JoinRunsWithSameFormatting() après un lot de modifications.

Questions fréquentes

Quelle est la différence entre Run et Paragraph ?

Un Run est une plage de texte partageant un ensemble de mise en forme de caractères (Font). Un Paragraph est le nœud composite contenant un ou plusieurs runs plus une mise en forme au niveau du paragraphe (ParagraphFormat).

Comment lire tout le texte d’un document ou d’une seule section?

Lire la propriété Text du Range de ce nœud — document.Range.Text ou section.Range.Text.

Comment remplacer du texte dans un seul paragraphe, pas dans tout le document?

Appelez Replace(pattern, replacement) sur le Range de ce Paragraph, pas sur Document.Range.

Comment répondre à un commentaire existant?

Appelez Comment.AddReply(author, initial, dateTime, text) sur l’instance originale de Comment.

Comment transformer un élément de liste numérotée en paragraphe simple?

Appelez RemoveNumbers() sur le ListFormat de ce paragraphe.

Voir aussi

 Français