Hur man arbetar med text i .NET
Denna guide visar hur man arbetar med text i Aspose.Words FOSS för .NET: formatera ett körs teckensnitt, formatera ett stycke, hitta och ersätta text med Range, lägga till en kommentar och omvandla ett stycke till ett listobjekt. Aspose.Words FOSS för .NET är tillgänglig via NuGet eller genom att bygga från källkoden.
Steg-för-steg-guide
Steg 1: Hämta biblioteket
Klona repository och bygg Aspose.Words.sln i Release-konfiguration, lägg sedan till en projektreferens till Aspose.Words.csproj från ditt eget .NET-projekt, som beskrivs i Installationsguide. Lägg till using Aspose.Words; högst upp i vilken fil som helst som arbetar med text.
Steg 2: Formatera körens teckensnitt
En Run är ett textspann som delar en uppsättning formatering; dess Text-egenskap innehåller vanlig textinnehåll och dess Font-egenskap (ett Font-objekt) innehåller teckennivåformatering — Name, Size, Bold, Italic, Underline, Color, HighlightColor, Subscript/Superscript och StrikeThrough bland annat. Font.ClearFormatting() återställer ett kör till standardinställningarna. Körningarna i ett stycke är tillgängliga via dess Runs-egenskap, en RunCollection. Att sätta teckensnittsegenskaper på DocumentBuilder.Font innan du skriver ny text är vanligtvis enklare än att formatera enskilda Run-objekt i efterhand.
Steg 3: Formatera ett stycke
Paragraph.ParagraphFormat (ett ParagraphFormat objekt) styr layout på styckesnivå: Alignment, indrag (LeftIndent, RightIndent, FirstLineIndent), avstånd (SpaceBefore, SpaceAfter, LineSpacing, LineSpacingRule), och pagineringsbeteende (KeepTogether, KeepWithNext, PageBreakBefore, WidowControl). ParagraphFormat.ClearFormatting() återställer dessa till standardvärden, och Paragraph.JoinRunsWithSameFormatting() slår ihop intilliggande körningar som har identisk formatering — användbart efter en serie programatiska redigeringar som lämnar ett stycke med fler körningar än nödvändigt.
Steg 4: Hitta och ersätt text med intervall
Varje innehållsbärande nod — en Document, Section, Paragraph eller Run — exponerar en Range. Range.Text returnerar den rena texten för allt inom det intervallet, och Range.Replace(pattern, replacement) utför en sök-och-ersätt som är begränsad till just det intervallet: anropa den på en Paragraphs Range för att ändra text i endast ett stycke, eller på Document.Range för att söka i hela dokumentet. Range.Delete() tar bort intervallets innehåll helt.
Steg 5: Lägg till en kommentar
Konstruera ett Comment med new Comment(doc, author, initial, dateTime), sätt dess text med SetText(text), och sätt sedan in det i trädet som vilken annan nod som helst. Comment.AddReply(author, initial, dateTime, text) bifogar ett trådat svar — självt ett Comment — och RemoveReply(reply) / RemoveAllReplies() tar bort svaren igen. Ett dokuments kommentarer samlas i en CommentCollection.
Steg 6: Gör om ett stycke till ett listobjekt
Paragraph.ListFormat (ett ListFormat objekt) rapporterar och styr om ett stycke deltar i en lista: IsListItem och ListLevelNumber rapporterar dess aktuella tillstånd. ApplyBulletDefault() gör stycket till ett standardpunkterat objekt och ApplyNumberDefault() till ett standardnumrerat objekt; ListIndent() / ListOutdent() ändrar dess nästningsnivå, och RemoveNumbers() gör det tillbaka till ett vanligt stycke.
Vanliga problem och lösningar
Formatering ett Run’s teckensnitt ändrar inte den intilliggande texten. Intilliggande text är en annan Run med sin egen Font instans. Antingen lokalisera och formatera varje påverkad Run, eller sätt formatering på DocumentBuilder.Font innan du skriver ny text.
Range.Replace ändrar text utanför det avsedda området. Replace anropades på Document.Range istället för ett smalare nodintervall. Anropa det på den specifika Paragraph or Section vars text bör ändras.
Ett stycke ser ut som ett punktlistobjekt men IsListItem is false. Punkten är skriven text, inte riktig listformatering. Använd den med ListFormat.ApplyBulletDefault() istället.
Dokumentet slutar med mycket fler Run noder än förväntat. Upprepade små programatiska redigeringar delar upp körningar utan att återfoga dem. Anropa Paragraph.JoinRunsWithSameFormatting() efter ett paket med redigeringar.
Vanliga frågor
Vad är skillnaden mellan Run och Paragraph?
En Run är ett textspann som delar en uppsättning teckenformatering (Font). En Paragraph är den sammansatta noden som innehåller ett eller flera körningar plus styckeformatering (ParagraphFormat).
Hur läser jag all text i ett dokument eller i ett enskilt avsnitt?
Läs egenskapen Text för den nodens Range — document.Range.Text eller section.Range.Text.
Hur ersätter jag text i bara ett stycke, inte i hela dokumentet?
Anropa Replace(pattern, replacement) på den Paragraphs Range, inte på Document.Range.
Hur svarar jag på en befintlig kommentar?
Anropa Comment.AddReply(author, initial, dateTime, text) på det ursprungliga Comment-instansen.
Hur omvandlar jag ett numrerat listobjekt tillbaka till ett vanligt stycke?
Anropa RemoveNumbers() på den paragrafens ListFormat.