Jak pracovat s textem v .NET
Tento návod ukazuje, jak pracovat s textem v Aspose.Words FOSS pro .NET: formátování písma běhu, formátování odstavce, vyhledávání a nahrazování textu pomocí Range, přidání komentáře a převod odstavce na položku seznamu. Aspose.Words FOSS pro .NET je k dispozici přes NuGet nebo sestavením ze zdrojových kódů.
Průvodce krok po kroku
Krok 1: Získání knihovny
Klonujte repozitář a sestavte Aspose.Words.sln v konfiguraci Release, pak přidejte odkaz na projekt Aspose.Words.csproj z vašeho vlastního projektu .NET, jak je popsáno v průvodci instalací. Přidejte using Aspose.Words; na začátek jakéhokoli souboru, který pracuje s textem.
Krok 2: Formátování písma běhu
Objekt Run je úsek textu sdílející jedno nastavení formátování; jeho vlastnost Text obsahuje obsah prostého textu a jeho vlastnost Font (objekt Font) obsahuje formátování na úrovni znaků — Name, Size, Bold, Italic, Underline, Color, HighlightColor, Subscript/Superscript a StrikeThrough a další. Font.ClearFormatting() resetuje běh na výchozí nastavení. Běhy odstavce jsou dostupné přes jeho vlastnost Runs, což je RunCollection. Nastavení vlastností písma na DocumentBuilder.Font před zápisem nového textu je obvykle jednodušší než formátování jednotlivých objektů Run po vytvoření.
Krok 3: Formátování odstavce
Paragraph.ParagraphFormat (objekt ParagraphFormat) ovládá rozlož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() resetuje tyto hodnoty na výchozí a Paragraph.JoinRunsWithSameFormatting() sloučí sousední běhy s identickým formátováním — užitečné po sérii programových úprav, které zanechají odstavec s více běhy, než je nutné.
Krok 4: Najít a nahradit text v rozsahu
Každý uzel nesoucí obsah — Document, Section, Paragraph nebo Run — poskytuje Range. Range.Text vrací čistý text všeho uvnitř tohoto rozsahu a Range.Replace(pattern, replacement) provádí najít-a-nahradit omezené jen na tento rozsah: zavolejte ji na Paragraph’s Range, abyste změnili text jen v jednom odstavci, nebo na Document.Range, abyste prohledali celý dokument. Range.Delete() odstraní obsah rozsahu úplně.
Krok 5: Přidat komentář
Vytvořte Comment pomocí new Comment(doc, author, initial, dateTime), nastavte jeho text pomocí SetText(text) a poté jej vložte do stromu jako jakýkoli jiný uzel. Comment.AddReply(author, initial, dateTime, text) připojí vlákno odpovědi — samotnou Comment — a RemoveReply(reply) / RemoveAllReplies() odeberou odpovědi zpět. Komentáře dokumentu jsou shromážděny v CommentCollection.
Krok 6: Převést odstavec na položku seznamu
Paragraph.ListFormat (objekt ListFormat) hlásí a řídí, zda odstavec patří do seznamu: IsListItem a ListLevelNumber uvádějí jeho aktuální stav. ApplyBulletDefault() přemění odstavec na výchozí odrážkovou položku a ApplyNumberDefault() na výchozí číslovanou položku; ListIndent() / ListOutdent() mění jeho úroveň vnoření a RemoveNumbers() jej převádí zpět na obyčejný odstavec.
Běžné problémy a opravy
Formátování jednoho Runpísmo ’s’ nemění sousední text. Sousední text je jiný Run s vlastním Font instance. Buď najděte a formátujte každou postiženou Run, nebo nastavte formátování na DocumentBuilder.Font před zápisem nového textu.
Range.Replace mění text mimo zamýšlenou oblast. Replace byl zavolán na Document.Range místo rozsahu úžeho uzlu. Zavolejte ho na konkrétním Paragraph or Section její text by se měl změnit.
Odstavec vypadá jako položka odrážkového seznamu, ale IsListItem is false. Odrážka je psaný text, ne skutečné formátování seznamu. Použijte ji s ListFormat.ApplyBulletDefault() místo toho.
Dokument nakonec obsahuje mnohem více Run uzlů, než se očekávalo. Opakované malé programové úpravy rozdělují sekvence bez jejich opětovného spojení. Zavolejte Paragraph.JoinRunsWithSameFormatting() po dávce úprav.
Často kladené otázky
Jaký je rozdíl mezi Run a Paragraph?
A Run je úsek textu sdílející jednu sadu znakových formátování (Font). A Paragraph je složený uzel obsahující jeden nebo více runů plus formátování na úrovni odstavce (ParagraphFormat).
Jak mohu přečíst celý text v dokumentu nebo v jedné sekci?
Přečtěte vlastnost Text daného uzlu Range — document.Range.Text nebo section.Range.Text.
Jak nahradit text jen v jednom odstavci, ne v celém dokumentu?
Zavolejte Replace(pattern, replacement) na Range toho Paragraph, ne na Document.Range.
Jak odpovědět na existující komentář?
Zavolejte Comment.AddReply(author, initial, dateTime, text) na původní instanci Comment.
Jak převést položku číslovaného seznamu zpět na obyčejný odstavec?
Zavolejte RemoveNumbers() na ListFormat toho odstavce.