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.Font objektumon, mielőtt a builderrel szöveget írnál, ahelyett, hogy előbb szöveget írnál, majd később egyes Run objektumokat formáznád át.
  • Határozd meg a Range.Replace hatókörét a legkisebb tartományra, amely lefedi a valójában módosítani kívánt részt — hívd meg egy Paragraph vagy Section tartomá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.AddReply eredményeket közvetlenül Comment csomópontként — a válaszok teljes megjegyzésobjektumok, nem egyszerű karakterláncok.

Általános problémák

HibaOkaJavítás
Egy Run Font formázása nem változtat vizuálisan a szomszédos szövegenA szomszédos szöveg egy másik Run-ban van, amelynek saját Font példánya vanKeresse 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ítjaReplace a Document.Range-en lett meghívva a szűkebb csomópont tartománya helyettHí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 hamisA felsorolásjel/szám manuális szöveg, nem valódi listaformázásAlkalmazzon 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 vanAz ismételt kis szerkesztések szétválasztják a szakaszokat anélkül, hogy újra összekapcsolnák őketHí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ódszerLeírás
RunEgy szövegrész, amely egyetlen karakterformázási beállítást oszt meg.
FontKarakter 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.
ParagraphFormatBekezdés szintű formázás — igazítás, behúzások, távolságok, oldalszámozás.
ParagraphCollectionTipizált gyűjtemény a Paragraph csomópontokból, például Body.Paragraphs.
RangeA dokumentum egy folytonos területe; támogatja a Text, Replace és Delete elemeket.
CommentEgy szálas megjegyzés, amely a szöveg egy helyéhez van rögzítve.
CommentCollectionA dokumentum megjegyzéseinek gyűjteménye.
ListFormatSzabályozza, hogy egy bekezdés részt vegyen-e egy listában, és hogyan.

Lásd még:

 Magyar