Szöveggel való munka
Munka a szöveggel
A Word dokumentumban a szöveg Run csomópontokba van szervezve (folyamatos karakterek, amelyek ugyanazzal a betűformázással rendelkeznek), amelyek Paragraph csomópontokba vannak csoportosítva. Aspose.Words FOSS a .NET számára közvetlenül mindkettőt elérhetővé teszi, valamint Font a karakterformázáshoz, ParagraphFormat a bekezdés-szintű formázáshoz, és Range a szöveg olvasásához vagy helyettesítéséhez a fa bármely részén. Ez az útmutató a futamokat és betűtípusokat, a bekezdésformázást, a szöveg olvasását és helyettesítését, a megjegyzéseket, valamint a bekezdés-szintű listaformázást tárgyalja.
Futamok és karakterformázás
Egy Run egy olyan szövegrészt jelöl, amely egyetlen formázási készletet oszt meg; annak Text tulajdonsága tartalmazza a sima szöveges tartalmat, és a Font tulajdonsága (egy Font objektum) a karakter-szintű formázást tárolja — Name, Size, Bold, Italic, Underline, Color, HighlightColor, Subscript/Superscript, StrikeThrough, és még sok más. Font.ClearFormatting() visszaállítja egy futam betűtípusát az alapértelmezettekre. Egy bekezdés futamai a Runs tulajdonságán keresztül érhetők el, amely egy RunCollection.
Bekezdések és bekezdésformázás
A Paragraph egy összetett csomópont, amely egy bekezdés futamait (és egyéb beágyazott tartalmakat) tartalmazza; egy dokumentum vagy test bekezdései ParagraphCollection (Body.Paragraphs) formájában érhetők el. A Paragraph.ParagraphFormat (egy ParagraphFormat objektum) a bekezdés-szintű elrendezést irányítja — Alignment, behúzások (LeftIndent, RightIndent, FirstLineIndent), távolságok (SpaceBefore, SpaceAfter, LineSpacing, LineSpacingRule), és a lapozási viselkedés (KeepTogether, KeepWithNext, PageBreakBefore, WidowControl). A ParagraphFormat.ClearFormatting() visszaállítja ezeket az alapértelmezettekre, és a Paragraph.JoinRunsWithSameFormatting() összefűzi a szomszédos futamokat, amelyek azonos formázással rendelkeznek.
Szöveg olvasása és helyettesítése tartománnyal
Minden olyan csomópont, amely tartalmat tartalmaz — egy Document, Section, Paragraph vagy Run — egy Range-t tesz elérhetővé. A Range.Text visszaadja a tartományon belül lévő minden szöveg egyszerű szövegét, a Range.Replace(pattern, replacement) pedig egy csak arra a tartományra korlátozott keresés-és-csere műveletet hajt végre, így például egy bekezdésen belüli szöveget cserélhet anélkül, hogy a dokumentum többi részét érintené. A Range.Delete() eltávolítja a tartomány tartalmát teljesen.
Comments
A Comment csomópont egy megjegyzést rögzít a szöveg egy helyére; egyet a new Comment(doc, author, initial, dateTime) segítségével hozhatsz létre, és a szövegét a SetText(text) beállításával adhatod meg, majd úgy helyezd be a dokumentumba, mint bármely más csomópontot. A Comment.AddReply(author, initial, dateTime, text) egy szálas válaszhoz csatlakozik, a RemoveReply(reply) / RemoveAllReplies() pedig eltávolítja őket. A dokumentum megjegyzései egy CommentCollection-ben gyűlnek össze.
Listaformázás bekezdés szinten
Paragraph.ListFormat (egy ListFormat objektum) jelzi és szabályozza, hogy egy bekezdés része-e egy listának: a IsListItem és ListLevelNumber jelenti a jelenlegi állapotát, a ApplyBulletDefault() és ApplyNumberDefault() egy bekezdést alapértelmezett felsorolás- vagy számozott listaelemmé alakít, a ListIndent() / ListOutdent() megváltoztatja a lista beágyazási szintjét, és a RemoveNumbers() visszaállítja azt egy normál bekezdésre.
Tippek és bevált gyakorlatok
- Állítsd be a betűtípus tulajdonságait a
DocumentBuilder.Fontobjektumon, mielőtt a builderrel szöveget írnál, ahelyett, hogy előbb szöveget írnál, majd később egyesRunobjektumokat formáznád át. - Határozd meg a
Range.Replacehatókörét a legkisebb tartományra, amely lefedi a valójában módosítani kívánt részt — hívd meg egyParagraphvagySectiontartományán, ahelyett, hogy az egész dokumentumra alkalmaznád, ha a változtatás nem kell, hogy dokumentumszintű legyen. - Hívja meg a
Paragraph.JoinRunsWithSameFormatting()műveletet a programozott szerkesztések sorozata után, hogy elkerülje a szükségtelenül töredezett futtatási szerkezetet. - Használja a
ListFormat.ApplyBulletDefault()/ApplyNumberDefault()elemet egy gyors alapértelmezett lista létrehozásához, ahelyett, hogy manuálisan építené a lista definíciókat, ha a beépített alapértelmezések elegendőek. - Olvassa a
Comment.AddReplyeredményeket közvetlenülCommentcsomópontként — a válaszok teljes megjegyzésobjektumok, nem egyszerű karakterláncok.
Általános problémák
| Hiba | Oka | Javítás |
|---|---|---|
Egy Run Font formázása nem változtat vizuálisan a szomszédos szövegen | A szomszédos szöveg egy másik Run-ban van, amelynek saját Font példánya van | Keresse meg és formázza az összes érintett Run-t, vagy állítsa be a formázást a DocumentBuilder.Font segítségével írás előtt |
Range.Replace a szöveget a kívánt területen kívül módosítja | Replace a Document.Range-en lett meghívva a szűkebb csomópont tartománya helyett | Hívja meg a(z) Replace a konkrét Paragraph, Section, vagy egy másik csomópont Range értékén |
Egy bekezdés listajegyzéknek tűnik, de a(z) IsListItem hamis | A felsorolásjel/szám manuális szöveg, nem valódi listaformázás | Alkalmazzon valódi listaformázást a(z) ListFormat.ApplyBulletDefault() vagy ApplyNumberDefault() használatával a gépelt karakterek helyett |
A dokumentumnak a vártól sokkal több Run csomópontja van | Az ismételt kis szerkesztések szétválasztják a szakaszokat anélkül, hogy újra összekapcsolnák őket | Hívja meg a(z) Paragraph.JoinRunsWithSameFormatting() a szerkesztési kötegek után |
FAQ
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; egy Paragraph egy összetett csomópont, amely egy vagy több futtatást (és egyéb beágyazott tartalmat) valamint bekezdés-szintű formázást (ParagraphFormat) tartalmaz.
Hogyan olvashatom el egy dokumentum vagy szakasz teljes szövegét?
Olvasd el annak a csomópont Range Text tulajdonságát — például document.Range.Text vagy section.Range.Text.
Hogyan kereshetek és cserélhetek szöveget egyetlen bekezdésben?
Hívd meg a Replace(pattern, replacement) függvényt annak a Paragraph Range -én, a Document.Range helyett.
Hogyan tudok megjegyzést hozzáadni egy dokumentumhoz?
Hozd létre a new Comment(doc, author, initial, dateTime) segítségével, állítsd be a szövegét a SetText(text) segítségével, és illeszd be a fába; válaszolj rá a Comment.AddReply(author, initial, dateTime, text) használatával.
Hogyan alakíthatok egy bekezdést pontozott listaelemmé?
Hívd meg a ApplyBulletDefault() függvényt annak a bekezdés ListFormat -én; helyette használd a ApplyNumberDefault() -t a számozott listához.
API Reference összefoglaló
| Osztály/Módszer | Leírás |
|---|---|
Run | Egy szövegrész, amely egyetlen karakterformázási beállítást oszt meg. |
Font | Karakter szintű formázás — név, méret, félkövér, dőlt, szín és egyebek. |
Paragraph | Összetett csomópont, amely egy bekezdés futásait és formázását tartalmazza. |
ParagraphFormat | Bekezdés szintű formázás — igazítás, behúzások, távolságok, oldalszámozás. |
ParagraphCollection | Tipizált gyűjtemény a Paragraph csomópontokból, például Body.Paragraphs. |
Range | A dokumentum egy folytonos területe; támogatja a Text, Replace és Delete elemeket. |
Comment | Egy szálas megjegyzés, amely a szöveg egy helyéhez van rögzítve. |
CommentCollection | A dokumentum megjegyzéseinek gyűjteménye. |
ListFormat | Szabályozza, hogy egy bekezdés részt vegyen-e egy listában, és hogyan. |