Práce s textem

Práce s textem

Text ve Word dokumentu je uspořádán do uzlů Run (sousední znaky sdílející stejné formátování písma), seskupených uvnitř uzlů Paragraph. Aspose.Words FOSS pro .NET poskytuje oba přímo, spolu s Font pro formátování znaků, ParagraphFormat pro formátování odstavců a Range pro čtení nebo nahrazování textu v jakékoli části stromu. Tento průvodce pokrývá běhy a písma, formátování odstavců, čtení a nahrazování textu, komentáře a formátování seznamů v odstavcích.


Běhy a formátování znaků

Run představuje úsek textu, který sdílí jednu sadu formátování; jeho vlastnost Text obsahuje prostý text a jeho vlastnost Font (objekt Font) obsahuje formátování na úrovni znaků — Name, Size, Bold, Italic, Underline, Color, HighlightColor, Subscript/Superscript, StrikeThrough a mnoho dalších. Font.ClearFormatting() vrací písmo běhu na výchozí nastavení. Běhy odstavce jsou dostupné přes jeho vlastnost Runs, což je RunCollection.


Odstavce a formátování odstavců

Paragraph je složený uzel obsahující běhy (a další vložený obsah) jednoho odstavce; odstavce dokumentu nebo těla jsou zpřístupněny jako ParagraphCollection (Body.Paragraphs). Paragraph.ParagraphFormat (objekt ParagraphFormat) řídí rozvržení na úrovni odstavce — Alignment, odsazení (LeftIndent, RightIndent, FirstLineIndent), mezery (SpaceBefore, SpaceAfter, LineSpacing, LineSpacingRule) a chování stránkování (KeepTogether, KeepWithNext, PageBreakBefore, WidowControl). ParagraphFormat.ClearFormatting() vrací tato nastavení na výchozí hodnoty a Paragraph.JoinRunsWithSameFormatting() sloučí sousední běhy se stejným formátováním.


Čtení a nahrazování textu pomocí rozsahu

Každý uzel, který obsahuje obsah — Document, Section, Paragraph nebo Run — vystavuje Range. Range.Text vrací prostý text všeho v tomto rozsahu a Range.Replace(pattern, replacement) provádí hledání a nahrazení omezené pouze na tento rozsah, takže můžete například nahradit text v jednom odstavci, aniž byste zasahovali do zbytku dokumentu. Range.Delete() odstraní obsah rozsahu úplně.


Comments

Uzel Comment ukotvuje komentář na konkrétní místo v textu; vytvořte jej pomocí new Comment(doc, author, initial, dateTime) a nastavte jeho tělo pomocí SetText(text), poté jej vložte do dokumentu jako jakýkoli jiný uzel. Comment.AddReply(author, initial, dateTime, text) připojuje vlákno odpovědi a RemoveReply(reply) / RemoveAllReplies() je odstraňují. Komentáře dokumentu jsou shromažďovány v CommentCollection.


Formátování seznamu na úrovni odstavce

Paragraph.ListFormat (objekt ListFormat) hlásí a řídí, zda je odstavec součástí seznamu: IsListItem a ListLevelNumber udávají jeho aktuální stav, ApplyBulletDefault() a ApplyNumberDefault() převádějí odstavec na výchozí položku odrážkového nebo číslovaného seznamu, ListIndent() / ListOutdent() mění úroveň vnoření seznamu a RemoveNumbers() jej převádí zpět na běžný odstavec.


Tipy a osvědčené postupy

  • Nastavte vlastnosti písma na DocumentBuilder.Font před zápisem textu pomocí builderu, místo toho, abyste nejprve zapisovali text a následně přeformátovali jednotlivé objekty Run.
  • Omezte Range.Replace na nejmenší rozsah, který zahrnuje to, co skutečně chcete změnit – použijte jej na rozsah Paragraph nebo Section místo celého dokumentu, pokud změna nemá platit pro celý dokument.
  • Spusťte Paragraph.JoinRunsWithSameFormatting() po sérii programových úprav, aby nedošlo k zbytečně roztříštěné struktuře běhů.
  • Použijte ListFormat.ApplyBulletDefault() / ApplyNumberDefault() pro rychlý výchozí seznam místo ručního vytváření definic seznamu, pokud jsou vestavěné výchozí hodnoty dostatečné.
  • Čtěte výsledky Comment.AddReply jako uzly Comment—odpovědi jsou kompletní objekty komentářů, nikoli prosté řetězce.

Časté problémy

ProblémPříčinaOprava
Formátování Font Run neovlivní vizuálně sousední textSousední text se nachází v jiném Run s vlastní instancí FontVyhledejte a naformátujte všechny zasažené Run, nebo nastavte formátování pomocí DocumentBuilder.Font před zápisem
Range.Replace mění text mimo zamýšlenou oblastReplace byl zavolán na Document.Range namísto úzkého rozsahu uzluZavolejte Replace na konkrétním Paragraph, Section nebo Range jiného uzlu
Odstavec vypadá jako položka seznamu, ale IsListItem není pravdaOdrážka/číslo je ručně zadaný text, ne skutečné formátování seznamuPoužijte skutečné formátování seznamu pomocí ListFormat.ApplyBulletDefault() nebo ApplyNumberDefault() místo psaných znaků
Dokument obsahuje mnohem více Run uzlů, než se očekávaloOpakované malé úpravy rozdělí úseky bez jejich opětovného spojeníZavolejte Paragraph.JoinRunsWithSameFormatting() po dávkách úprav

FAQ

Jaký je rozdíl mezi Run a Paragraph?

Run je úsek textu sdílející jednu sadu formátování znaků (Font); Paragraph je složený uzel, který obsahuje jeden nebo více běhů (a další vložený obsah) plus formátování na úrovni odstavce (ParagraphFormat).

Jak přečtu celý text v dokumentu nebo sekci?

Přečtěte vlastnost Text uzlu Range — například document.Range.Text nebo section.Range.Text.

Jak najít a nahradit text jen v jednom odstavci?

Zavolejte Replace(pattern, replacement) na Range toho Paragraph, místo na Document.Range.

Jak přidat komentář k dokumentu?

Vytvořte jej pomocí new Comment(doc, author, initial, dateTime), nastavte jeho text pomocí SetText(text) a vložte jej do stromu; odpovězte na něj pomocí Comment.AddReply(author, initial, dateTime, text).

Jak převést odstavec na položku odrážkového seznamu?

Zavolejte ApplyBulletDefault() na ListFormat toho odstavce; místo toho použijte ApplyNumberDefault() pro číslovaný seznam.


API Reference Shrnutí

Třída/MetodaPopis:
RunÚsek textu sdílející jedno nastavení znakové formátování.
FontFormátování na úrovni znaků — název, velikost, tučné, kurzíva, barva a další.
ParagraphKompozitní uzel obsahující běhy a formátování jednoho odstavce.
ParagraphFormatFormátování na úrovni odstavce — zarovnání, odsazení, rozestupy, stránkování.
ParagraphCollectionTypová kolekce uzlů Paragraph, např. Body.Paragraphs.
RangeSouvislá oblast dokumentu; podporuje Text, Replace a Delete.
CommentVlákno komentáře ukotvené na konkrétním místě v textu.
CommentCollectionSbírka komentářů dokumentu.
ListFormatUrčuje, zda a jak se odstavec zapojuje do seznamu.

Viz také:

 Čeština