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.Fontpřed zápisem textu pomocí builderu, místo toho, abyste nejprve zapisovali text a následně přeformátovali jednotlivé objektyRun. - Omezte
Range.Replacena nejmenší rozsah, který zahrnuje to, co skutečně chcete změnit – použijte jej na rozsahParagraphneboSectionmí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.AddReplyjako uzlyComment—odpovědi jsou kompletní objekty komentářů, nikoli prosté řetězce.
Časté problémy
| Problém | Příčina | Oprava |
|---|---|---|
Formátování Font Run neovlivní vizuálně sousední text | Sousední text se nachází v jiném Run s vlastní instancí Font | Vyhledejte 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 oblast | Replace byl zavolán na Document.Range namísto úzkého rozsahu uzlu | Zavolejte Replace na konkrétním Paragraph, Section nebo Range jiného uzlu |
Odstavec vypadá jako položka seznamu, ale IsListItem není pravda | Odrážka/číslo je ručně zadaný text, ne skutečné formátování seznamu | Použ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ávalo | Opakované 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/Metoda | Popis: |
|---|---|
Run | Úsek textu sdílející jedno nastavení znakové formátování. |
Font | Formátování na úrovni znaků — název, velikost, tučné, kurzíva, barva a další. |
Paragraph | Kompozitní uzel obsahující běhy a formátování jednoho odstavce. |
ParagraphFormat | Formátování na úrovni odstavce — zarovnání, odsazení, rozestupy, stránkování. |
ParagraphCollection | Typová kolekce uzlů Paragraph, např. Body.Paragraphs. |
Range | Souvislá oblast dokumentu; podporuje Text, Replace a Delete. |
Comment | Vlákno komentáře ukotvené na konkrétním místě v textu. |
CommentCollection | Sbírka komentářů dokumentu. |
ListFormat | Určuje, zda a jak se odstavec zapojuje do seznamu. |