Werken met Tekst

Werken met tekst

Tekst in een Word-document is georganiseerd in Run-knooppunten (aaneengesloten tekens die dezelfde lettertype-opmaak delen) gegroepeerd binnen Paragraph-knooppunten. Aspose.Words FOSS voor .NET maakt beide direct toegankelijk, samen met Font voor teken-opmaak, ParagraphFormat voor alinea-opmaak, en Range voor het lezen of vervangen van tekst in elk deel van de boom. Deze gids behandelt runs en lettertypen, alinea-opmaak, tekst lezen en vervangen, opmerkingen, en alinea-niveau lijstopmaak.


Runs en tekenopmaak

Een Run vertegenwoordigt een tekstgedeelte dat één set opmaak deelt; de Text-eigenschap bevat de platte-tekstinhoud en de Font-eigenschap (een Font-object) bevat teken-niveau opmaak — Name, Size, Bold, Italic, Underline, Color, HighlightColor, Subscript/Superscript, StrikeThrough, en nog veel meer. Font.ClearFormatting() zet het lettertype van een run terug naar de standaardwaarden. De runs van een alinea zijn beschikbaar via de Runs-eigenschap, een RunCollection.


Alinea’s en alinea-opmaak

Paragraph is een samengesteld knooppunt dat de runs (en andere inline-inhoud) van één alinea bevat; de alinea’s van een document of body worden blootgesteld als een ParagraphCollection (Body.Paragraphs). Paragraph.ParagraphFormat (een ParagraphFormat-object) regelt de lay-out op alinea-niveau — Alignment, inspringingen (LeftIndent, RightIndent, FirstLineIndent), afstand (SpaceBefore, SpaceAfter, LineSpacing, LineSpacingRule), en paginering gedrag (KeepTogether, KeepWithNext, PageBreakBefore, WidowControl). ParagraphFormat.ClearFormatting() zet deze terug naar de standaardwaarden, en Paragraph.JoinRunsWithSameFormatting() voegt aangrenzende runs samen die identieke opmaak hebben.


Tekst lezen en vervangen met Range

Elke node die inhoud bevat — een Document, Section, Paragraph of Run — geeft een Range vrij. Range.Text retourneert de platte tekst van alles binnen dat bereik, en Range.Replace(pattern, replacement) voert een zoeken-en-vervangen uit die beperkt is tot dat bereik, zodat je bijvoorbeeld tekst in één alinea kunt vervangen zonder de rest van het document aan te raken. Range.Delete() verwijdert de inhoud van het bereik volledig.


Comments

Een Comment node verankert een opmerking op een locatie in de tekst; maak er een met new Comment(doc, author, initial, dateTime) en stel de hoofdtekst in met SetText(text), en voeg deze vervolgens in het document in zoals elke andere node. Comment.AddReply(author, initial, dateTime, text) voegt een thread-reactie toe, en RemoveReply(reply) / RemoveAllReplies() verwijderen ze. De opmerkingen van een document worden verzameld in een CommentCollection.


Lijstopmaak op alinea-niveau

Paragraph.ListFormat (een ListFormat object) rapporteert en regelt of een alinea deel uitmaakt van een lijst: IsListItem en ListLevelNumber geven de huidige staat weer, ApplyBulletDefault() en ApplyNumberDefault() veranderen een alinea in een standaard opsomming met opsommingstekens of een genummerd lijstitem, ListIndent() / ListOutdent() wijzigen het inspringlevel van de lijst, en RemoveNumbers() maakt er weer een gewone alinea van.


Tips en best practices

  • Stel de lettertype-eigenschappen in op DocumentBuilder.Font voordat je tekst schrijft met de builder, in plaats van eerst tekst te schrijven en daarna individuele Run objecten te herformatteren.
  • Beperk Range.Replace tot het kleinste bereik dat omvat wat je daadwerkelijk wilt wijzigen — roep het aan op een Paragraph of Section’s bereik in plaats van op het hele document wanneer de wijziging niet documentbreed moet gelden.
  • Roep Paragraph.JoinRunsWithSameFormatting() aan na een reeks programmatische bewerkingen om een onnodig gefragmenteerde run-structuur te voorkomen.
  • Gebruik ListFormat.ApplyBulletDefault() / ApplyNumberDefault() voor een snelle standaardlijst in plaats van lijstdefinities handmatig op te bouwen wanneer de ingebouwde standaarden voldoende zijn.
  • Lees de resultaten van Comment.AddReply als Comment-knooppunten zelf — reacties zijn volledige commentaarobjecten, geen platte tekenreeksen.

Veelvoorkomende problemen

ProbleemOorzaakOplossing
Het opmaken van een Run’s Font verandert de aangrenzende tekst niet visueelAangrenzende tekst bevindt zich in een andere Run met zijn eigen Font instantieZoek en formatteer elke getroffen Run, of stel de opmaak in via DocumentBuilder.Font vóór het schrijven
Range.Replace wijzigt tekst buiten het beoogde gebiedReplace werd aangeroepen op Document.Range in plaats van op een smaller node-bereikRoep Replace aan op de specifieke Paragraph, Section, of de Range van een andere node
Een alinea lijkt op een lijstitem, maar IsListItem is onwaarHet opsommingsteken/nummer is handmatige tekst, geen echte lijstopmaakPas echte lijstopmaak toe met ListFormat.ApplyBulletDefault() of ApplyNumberDefault() in plaats van getypte tekens
Document heeft veel meer Run nodes dan verwachtHerhaalde kleine bewerkingen splitsen runs zonder ze opnieuw samen te voegenRoep Paragraph.JoinRunsWithSameFormatting() aan na batches met bewerkingen

FAQ

Wat is het verschil tussen Run en Paragraph?

Een Run is een tekstsegment dat één set tekenopmaak (Font) deelt; een Paragraph is het samengestelde knooppunt dat één of meer runs (en andere inline-inhoud) bevat, plus alinea-opmaak (ParagraphFormat).

Hoe lees ik alle tekst in een document of sectie?

Lees de Text eigenschap van die node’s Range — bijvoorbeeld document.Range.Text of section.Range.Text.

Hoe vind en vervang ik tekst in slechts één alinea?

Roep Replace(pattern, replacement) aan op de Range van die Paragraph in plaats van op Document.Range.

Hoe voeg ik een commentaar toe aan een document?

Maak het aan met new Comment(doc, author, initial, dateTime), stel de tekst in met SetText(text), en voeg het toe aan de boom; beantwoord het met Comment.AddReply(author, initial, dateTime, text).

Hoe zet ik een alinea om in een opsomming met opsommingstekens?

Roep ApplyBulletDefault() aan op de ListFormat van die alinea; gebruik ApplyNumberDefault() voor een genummerde lijst in plaats daarvan.


API Reference Samenvatting

Klasse/MethodeBeschrijving
RunEen stuk tekst dat één set tekenopmaak deelt.
FontTeken-niveau opmaak — naam, grootte, vet, cursief, kleur en meer.
ParagraphSamengestelde node die de runs en opmaak van één alinea bevat.
ParagraphFormatAlinea-niveau opmaak — uitlijning, inspringingen, regelafstand, paginering.
ParagraphCollectionGetypte collectie van Paragraph knooppunten, bijv. Body.Paragraphs.
RangeEen aaneengesloten gebied van het document; ondersteunt Text, Replace en Delete.
CommentEen threaded comment verankerd op een locatie in de tekst.
CommentCollectionDe collectie van opmerkingen van het document.
ListFormatBepaalt of en hoe een alinea deelneemt aan een lijst.

Zie ook

 Nederlands