Hogyan dolgozzunk szöveggel a .NET
Ez az útmutató bemutatja, hogyan dolgozzunk szöveggel a Aspose.Words FOSS-ban a .NET számára: egy futtatás betűtípusának formázása, egy bekezdés formázása, szöveg keresése és cseréje a Range segítségével, megjegyzés hozzáadása, és a bekezdés listaelemmé alakítása. A Aspose.Words FOSS a .NET számára elérhető a NuGet-on keresztül vagy forráskódból építve.
Lépésről lépésre útmutató
1. lépés: Szerezd be a könyvtárat
Klónozza a repozitóriumot és építse Aspose.Words.sln Release konfigurációban, majd adjon projekt-hivatkozást a Aspose.Words.csproj a saját .NET projektjéből, ahogyan a Telepítési útmutató. Adjon using Aspose.Words; a szöveggel dolgozó bármely fájl tetejére.
2. lépés: Futtatás betűtípusának formázása
A Run egy olyan szövegrész, amely egyetlen formázási készletet oszt meg; Text tulajdonsága a egyszerű szöveges tartalmat tárolja, és Font tulajdonsága (egy Font objektum) karakter szintű formázást tartalmaz — Name, Size, Bold, Italic, Underline, Color, HighlightColor, Subscript/Superscript, valamint StrikeThrough és mások. Font.ClearFormatting() visszaállít egy futtatást az alapértelmezettekre. Egy bekezdés futtatásai a Runs tulajdonságán keresztül érhetők el, amely egy RunCollection. A DocumentBuilder.Font betűtípus-tulajdonságainak beállítása új szöveg írása előtt általában egyszerűbb, mint az egyedi Run objektumok formázása később.
3. lépés: Bekezdés formázása
Paragraph.ParagraphFormat (a ParagraphFormat objektum) vezérli a bekezdés-szintű elrendezést: Alignment, behúzások (LeftIndent, RightIndent, FirstLineIndent), távolságok (SpaceBefore, SpaceAfter, LineSpacing, LineSpacingRule), és a lapozási viselkedést (KeepTogether, KeepWithNext, PageBreakBefore, WidowControl). ParagraphFormat.ClearFormatting() visszaállítja ezeket az alapértelmezett értékekre, és Paragraph.JoinRunsWithSameFormatting() egyesíti a szomszédos futamokat, amelyek azonos formázást tartalmaznak – hasznos, ha egy sor programozott szerkesztés után a bekezdés több futammal rendelkezik, mint amennyi szükséges.
4. lépés: Szöveg keresése és helyettesítése tartománnyal
Minden tartalommal rendelkező csomópont — egy Document, Section, Paragraph vagy Run — egy Range objektumot fed fel. Range.Text visszaadja a tartományon belüli minden szöveg egyszerű változatát, és Range.Replace(pattern, replacement) egy csak arra a tartományra korlátozott keresés-helyettesítés műveletet hajt végre: hívd meg egy Paragraph Range elemén, hogy csak egy bekezdés szövegét módosítsd, vagy Document.Range esetén a teljes dokumentumot keresd. Range.Delete() teljesen eltávolítja a tartomány tartalmát.
5. lépés: Megjegyzés hozzáadása
Hozz létre egy Comment objektumot a new Comment(doc, author, initial, dateTime) segítségével, állítsd be a szövegét a SetText(text) használatával, majd illeszd be a fába, mint bármely más csomópontot. Comment.AddReply(author, initial, dateTime, text) egy szálas választ csatol — amely maga egy Comment —, és a RemoveReply(reply) / RemoveAllReplies() visszavonja a válaszokat. A dokumentum megjegyzései egy CommentCollection gyűjteményben vannak.
6. lépés: Bekezdés átalakítása listaelemmé
Paragraph.ListFormat (a ListFormat objektum) jelzi és szabályozza, hogy egy bekezdés részt vesz-e egy listában: IsListItem és ListLevelNumber jelentik az aktuális állapotát. ApplyBulletDefault() a bekezdést alapértelmezett pontozott elemmé alakítja, a ApplyNumberDefault() alapértelmezett számozott elemmé; a ListIndent() / ListOutdent() megváltoztatja a beágyazási szintjét, és a RemoveNumbers() visszaállítja egyszerű bekezdéssé.
Gyakori problémák és megoldások
Formázás egy Run’s betűkészlete nem változtatja a szomszédos szöveget. A szomszédos szöveg más Run a saját Font példány. Vagy keresd meg és formázd az összes érintett Run, vagy állítsd be a formázást DocumentBuilder.Font új szöveg írása előtt.
Range.Replace a szöveget a szándékolt területen kívül módosítja. Replace hívásra került Document.Range a szűkebb csomópont tartománya helyett. Hívd meg a konkrét Paragraph or Section akinek a szövege meg kell változzon.
Egy bekezdés úgy néz ki, mint egy felsorolás pont, de IsListItem is false. A jelölő gépelt szöveg, nem valódi listaformázás. Alkalmazd ezzel ListFormat.ApplyBulletDefault() helyette.
A dokumentum végül sokkal több Run csomóponttal, mint várt. Ismételt kis programozott szerkesztések szétválasztják a futamokat anélkül, hogy újra összekapcsolnák őket. Hívja Paragraph.JoinRunsWithSameFormatting() a szerkesztések egy kötegje után.
Gyakran Ismételt Kérdések
Mi a különbség a Run és a Paragraph között?
A Run egy olyan szövegrész, amely egy karakterformázási készletet (Font) oszt meg. A Paragraph egy összetett csomópont, amely egy vagy több futamot, valamint bekezdés-szintű formázást (ParagraphFormat) tartalmaz.
Hogyan olvashatom el a dokumentum összes szövegét vagy egyetlen szakaszt?
Olvassa el a Text tulajdonságot azon csomópont Range-ból — document.Range.Text vagy section.Range.Text.
Hogyan cserélhetem ki a szöveget csak egy bekezdésen belül, nem az egész dokumentumban?
Hívja meg a Replace(pattern, replacement)-t azon Paragraph Range-jén, ne pedig a Document.Range-n.
Hogyan válaszolhatok egy meglévő megjegyzésre?
Hívja meg a Comment.AddReply(author, initial, dateTime, text)-t az eredeti Comment példányon.
Hogyan alakíthatom vissza a számozott listaelemet egyszerű bekezdéssé?
Hívja meg a(z) RemoveNumbers() a bekezdés ListFormat elemén.