Come lavorare con il testo in .NET

Come lavorare con il testo in .NET

Questa guida mostra come lavorare con il testo in Aspose.Words FOSS per .NET: formattare il font di un run, formattare un paragrafo, trovare e sostituire testo con Range, aggiungere un commento e trasformare un paragrafo in un elemento di elenco. Aspose.Words FOSS per .NET è disponibile tramite NuGet o compilando dal sorgente.

Guida passo passo

Passo 1: Ottieni la libreria

Clona il repository e compila Aspose.Words.sln in configurazione Release, quindi aggiungi un riferimento al progetto Aspose.Words.csproj dal tuo progetto .NET, come descritto nella Guida all’installazione. Aggiungi using Aspose.Words; all’inizio di qualsiasi file che lavora con il testo.


Passo 2: Formatta il font di un run

Un Run è un intervallo di testo che condivide un unico set di formattazione; la sua proprietà Text contiene il contenuto in testo semplice e la sua proprietà Font (un oggetto Font) contiene la formattazione a livello di carattere — Name, Size, Bold, Italic, Underline, Color, HighlightColor, Subscript/Superscript, e StrikeThrough tra gli altri. Font.ClearFormatting() ripristina un run ai valori predefiniti. I run di un paragrafo sono disponibili tramite la sua proprietà Runs, un RunCollection. Impostare le proprietà del font su DocumentBuilder.Font prima di scrivere nuovo testo è solitamente più semplice che formattare singoli oggetti Run in seguito.


Passo 3: Formatta un paragrafo

Paragraph.ParagraphFormat (un oggetto ParagraphFormat) controlla il layout a livello di paragrafo: Alignment, rientri (LeftIndent, RightIndent, FirstLineIndent), spaziatura (SpaceBefore, SpaceAfter, LineSpacing, LineSpacingRule) e comportamento di impaginazione (KeepTogether, KeepWithNext, PageBreakBefore, WidowControl). ParagraphFormat.ClearFormatting() ripristina questi valori ai predefiniti e Paragraph.JoinRunsWithSameFormatting() unisce i run adiacenti che hanno una formattazione identica — utile dopo una serie di modifiche programmatiche che lascia un paragrafo con più run del necessario.


Passo 4: Trova e sostituisci testo con intervallo

Ogni nodo che contiene contenuto — un Document, Section, Paragraph o Run — espone un Range. Range.Text restituisce il testo semplice di tutto ciò che si trova all’interno di quell’intervallo, e Range.Replace(pattern, replacement) esegue una ricerca e sostituzione limitata a quel solo intervallo: chiamalo sul Range di un Paragraph per modificare il testo in un solo paragrafo, oppure su Document.Range per cercare in tutto il documento. Range.Delete() rimuove completamente il contenuto dell’intervallo.


Passo 5: Aggiungi un commento

Costruisci un Comment con new Comment(doc, author, initial, dateTime), imposta il suo testo con SetText(text), quindi inseriscilo nell’albero come qualsiasi altro nodo. Comment.AddReply(author, initial, dateTime, text) aggiunge una risposta in thread — anch’essa un Comment — e RemoveReply(reply) / RemoveAllReplies() rimuovono le risposte. I commenti di un documento sono raccolti in un CommentCollection.


Passo 6: Trasforma un paragrafo in un elemento di elenco

Paragraph.ListFormat (un oggetto ListFormat) segnala e controlla se un paragrafo partecipa a un elenco: IsListItem e ListLevelNumber riportano lo stato attuale. ApplyBulletDefault() trasforma il paragrafo in un elemento puntato predefinito e ApplyNumberDefault() in un elemento numerato predefinito; ListIndent() / ListOutdent() modificano il suo livello di nidificazione, e RemoveNumbers() lo riconverte in un semplice paragrafo.

Problemi comuni e soluzioni

Formattare uno RunIl font di ’s non cambia il testo adiacente. Il testo adiacente è diverso Run con il proprio Font istanza. Individua e formatta ogni elemento interessato Run, oppure imposta la formattazione su DocumentBuilder.Font prima di scrivere nuovo testo.

Range.Replace modifica il testo al di fuori dell’area prevista. Replace è stato chiamato su Document.Range invece di un intervallo più ristretto del nodo. Chiamalo sul specifico Paragraph or Section il cui testo dovrebbe cambiare.

Un paragrafo sembra un elemento di elenco puntato ma IsListItem is false. Il punto è testo digitato, non una vera formattazione dell’elenco. Applicalo con ListFormat.ApplyBulletDefault() invece.

Il documento finisce con molti più Run nodi del previsto. Modifiche programmatiche piccole e ripetute dividono le sequenze senza riunirle. Call Paragraph.JoinRunsWithSameFormatting() dopo un batch di modifiche.

Domande frequenti

Qual è la differenza tra Run e Paragraph?

Un Run è un intervallo di testo che condivide un unico set di formattazione dei caratteri (Font). Un Paragraph è il nodo composito che contiene uno o più run più la formattazione a livello di paragrafo (ParagraphFormat).

Come leggo tutto il testo in un documento o in una singola sezione?

Leggi la proprietà Text del Range di quel nodo — document.Range.Text o section.Range.Text.

Come sostituisco il testo all’interno di un solo paragrafo, non dell’intero documento?

Chiama Replace(pattern, replacement) sul Range di quel Paragraph, non su Document.Range.

Come rispondo a un commento esistente?

Chiama Comment.AddReply(author, initial, dateTime, text) sull’istanza originale di Comment.

Come trasformo un elemento di elenco numerato in un normale paragrafo?

Chiama RemoveNumbers() sul ListFormat di quel paragrafo.

Vedi anche

 Italiano