Stílusok kezelése
Stílusok kezelése
Ez az útmutató bemutatja, hogyan kell dolgozni bekezdés-, karakter-, táblázat- és lista-stílusokkal Aspose.Words FOSS a .NET — beépített és egyéni stílusok keresése és alkalmazása, valamint a táblázat-stílusok régiónkénti feltételes formázásának beállítása.
Egy Style objektum egyetlen beépített vagy felhasználó által definiált stílust képvisel — a bekezdés, betűtípus és lista formázásának elnevezett gyűjteménye, amelyet a Word alkalmaz, amikor egy bekezdésnek vagy futásnak ezt a stílust rendelik. Minden dokumentum a Document.Styles tulajdonságán keresztül teszi elérhetővé a stílusait, amely egy StyleCollection objektumot ad vissza. A táblázatstílusokat a TableStyle képviseli, amely a Style alosztálya, és táblázatra specifikus formázást, valamint régióra vonatkozó feltételes formázást ad hozzá a ConditionalStyleCollection segítségével.
Stílustípusok és azonosítás
Minden Style rendelkezik egy Type tulajdonsággal, amelynek típusa StyleType, és amely Paragraph, Character, Table vagy List közül valamelyik — a Word által támogatott négy stílustípusnak megfelelően. A beépített stílusok emellett egy nyelvtől független StyleIdentifier enum értéket is hordoznak (például olyan értékek, amelyek a címsorokhoz, hangsúlyozáshoz és hiperhivatkozás stílusokhoz tartoznak), így a kód nyelvtől függetlenül kereshet beépített stílust a megjelenített név alapján. A stílus ember által olvasható neve a Style.Name segítségével érhető el, és a Style.Aliases visszaadja a Word által ugyanarra a stílusra felismert alternatív neveket. A Style.BuiltIn jelzi, hogy a stílus a Word saját szállítmánya része-e, vagy a dokumentumban van definiálva, míg a Style.IsHeading azt jelzi, hogy a stílus a beépített címsor stílusok egyike-e.
A stílusgyűjtemény elérése és kezelése
StyleCollection az összes Style objektum — beépített és egyéni — gyűjteménye, amely egy dokumentumhoz van csatolva, és a Document.Styles segítségével érhető el. Egy stílust a megjelenített neve alapján a StyleCollection indexerrel — styles[name] — lehet lekérni, vagy egy beépített stílust a nyelvtől független StyleIdentifier alapján a ugyanazzal az indexerrel — styles[sti] —, ami megbízhatóbb, mint a név alapján történő keresés különböző nyelvű dokumentumok esetén. Új stílusokat a StyleCollection.Add(type, name) segítségével hozunk létre, megadva a StyleType és egy nevet, és egy meglévő stílus a StyleCollection.AddCopy(style) segítségével másolható a gyűjteménybe. A StyleCollection.Count megadja, hány stílus van a dokumentumban, a gyűjtemény továbbá a DefaultFont és DefaultParagraphFormat elemeket is elérhetővé teszi, amelyek leírják a dokumentum szintjén érvényes alapformázást, amelyet az új tartalom örököl, mielőtt bármilyen explicit stílus alkalmazásra kerülne. A StyleCollection.ClearQuickStyleGallery() eltávolítja az összes stílust a Word felhasználói felület gyorsstílus galériájából anélkül, hogy magukat a stílusokat törölné.
Stílusok alkalmazása bekezdésekre és runokra
Az olyan formázó objektumok, amelyek stílust hordozhatnak, mind a Style tulajdonságot (magát a Style objektumot) és a StyleName tulajdonságot (egy olyan gyorshivatkozást, amely név alapján megoldja vagy létrehozza a stílust) exponálnak. ParagraphFormat.Style és ParagraphFormat.StyleName bekezdésstílust alkalmaznak, míg Font.Style és Font.StyleName karakterstílust alkalmaznak a run formázására. Egy stílus saját LinkedStyleName, BaseStyleName és NextParagraphStyleName tulajdonságai leírják, hogyan viszonyul más stílusokhoz: a BaseStyleName megnevezi azt a stílust, amelyből a nem beállított formázást örökli, a LinkedStyleName egy párosított bekezdés/karakter stílust nevez meg (ahogy a Word a beépített stílusoknál, például a Heading 1 és a hozzá kapcsolt karakterstílus esetén teszi), és a NextParagraphStyleName megnevezi azt a stílust, amelyet a Word egy új bekezdésnek rendel, ha az előző bekezdés ezt a stílust használta.
Táblázatstílusok és feltételes formázás
TableStyle kiterjeszti a Style táblázatelrendezési tulajdonságokkal, mint például Alignment, CellSpacing, LeftIndent, Shading, VerticalAlignment, valamint a kitöltés (LeftPadding, RightPadding, TopPadding, BottomPadding), plusz a RowStripe és ColumnStripe, amelyek szabályozzák, hány sor vagy oszlop felett ismétlődik egy csíkozási minta. Az egységes táblázatformázáson túl a TableStyle.ConditionalStyles egy ConditionalStyleCollection objektumot ad vissza, amely egy ConditionalStyle tartalmaz minden táblázatterületen – FirstRow, LastRow, FirstColumn, LastColumn, OddRowBanding, EvenRowBanding, OddColumnBanding, EvenColumnBanding, valamint a négy sarokcellát (TopLeftCell, TopRightCell, BottomLeftCell, BottomRightCell). Minden ConditionalStyle saját Font, ParagraphFormat, Shading, Borders és cellakitöltés tulajdonságokkal rendelkezik, és a Type tulajdonsága jelzi, melyik ConditionalStyleType területet képviseli. A ConditionalStyle.ClearFormatting() és ConditionalStyleCollection.ClearFormatting() visszaállítják a formázást egy területre vagy a feltételes területek teljes halmazára.
Stílus metaadatai és viselkedési jelzők
Több logikai és numerikus tulajdonság a Style esetében szabályozza, hogy a Word hogyan kezeli a stílust a felhasználói felületén, nem pedig a megjelenítés során: a Locked megakadályozza a stílus módosítását, ha a formázásvédelem aktív, a IsQuickStyle szabályozza, hogy megjelenik-e a gyorsstílus galériában, a AutomaticallyUpdate lehetővé teszi, hogy a stílus újradefiniálja magát a kézzel alkalmazott közvetlen formázásból, a SemiHidden és UnhideWhenUsed a láthatóságot szabályozzák a stíluslistában az első használat előtt és után, a Priority pedig befolyásolja a rendezési sorrendet a galériában. Egy stílus továbbá List és ListFormat tulajdonságokat exponál, amikor listaszámozást definiál, és a Style.Remove() törli a stílust a StyleCollection-ből.
Tippek és bevált gyakorlatok
- Előnyben részesítsd a
StyleCollectionindexert egyStyleIdentifierértékkel a név szerinti keresés helyett beépített stílus keresésekor – a nevek lokalizáltak, de aStyleIdentifierértékek nem. - Állítsa be a
BaseStyleName-t, hogy stílushierarchiákat építsen (például egy fejléctípus-csoportot, amely mindegyik a betűtípus-választásokat egy alapstílusból örökli), ahelyett, hogy minden stílusnál ismételné a formázást. - Stílusok dokumentumok közötti másolásakor használja a
StyleCollection.AddCopy(style)-t, ahelyett, hogy kézzel beolvasná és újraalkalmazná minden formázási tulajdonságot. - Állítson be
TableStyle.ConditionalStylesrégiókat csíkozott táblákhoz, ahelyett, hogy a kódban kézzel formázná az alternáló sorokat – mindenConditionalStylerégió formázását aConditionalStyleTypealapján alkalmazzák, nem pedig az egyes sorokra közvetlen formázást állítva be. - Ellenőrizze a
Style.BuiltIn-t, mielőtt programozottan eltávolítana vagy átnevezne egy stílust; a beépített stílusokra általában másutt a dokumentumban hivatkoznak név alapján.
Gyakori problémák
| Probléma | Ok | Javítás |
|---|---|---|
StyleCollection indexer null értéket ad vissza egy névkeresésnél | A stílus neve nem létezik ebben a dokumentumban, vagy egy beépített stílus még nincs használva, ezért a Word még nem hozta létre azt. | Ellenőrizze a(z) Style.Aliases alternatív neveket, vagy használja a(z) StyleCollection indexeltet egy StyleIdentifier segítségével a beépített stílusok helyett |
A StyleName beállítása váratlanul új stílust hoz létre. | A StyleName létrehozza a megnevezett stílust, ha az még nem létezik a gyűjteményben. | Először használja a(z) StyleCollection indexeltet, hogy megerősítse a stílus létezését, vagy rendelje hozzá a(z) Style objektumot közvetlenül a(z) Style tulajdonságon keresztül. |
A táblázat csíkos megjelenése nem jelenik meg egy TableStyle alkalmazása után. | A feltételes formázási régiók (OddRowBanding, EvenRowBanding stb.) soha nem lettek konfigurálva a(z) TableStyle.ConditionalStyles esetén. | Állítsa be a formázást a megfelelő ConditionalStyle bejegyzéseknél a(z) ConditionalStyleCollection belül. |
| A stílusváltozás nem befolyásolja a már a stílust használó tartalmat. | Közvetlen (kézi) formázás lett alkalmazva a stílusra, és elsőbbséget élvez | Törölje a közvetlen formázást az érintett futásokon/bekezdésekben, vagy állítsa be a Style.AutomaticallyUpdate értéket |
FAQ
Hogyan szerezhetem meg egy dokumentum összes stílusának gyűjteményét?
Olvassa el a Document.Styles-t, amely egy StyleCollection-t ad vissza, amely a dokumentumban található összes beépített és felhasználó által definiált Style tartalmazza.
Mi a különbség a Style és a StyleIdentifier között?
Style a tényleges stílusobjektum a formázásával; StyleIdentifier egy nyelvtől független enum érték, amelyet egy adott beépített stílus megtalálásához a dokumentum nyelvétől függetlenül, a StyleCollection indexelőn keresztül.
Miben különböznek a táblázatstílusok a bekezdés- vagy karakterstílusoktól?
TableStyle a Style alosztálya, amely táblázatelrendezési tulajdonságokat ad hozzá (Alignment, CellSpacing, padding) és egy ConditionalStyles gyűjteményt a régióspecifikus formázáshoz, például csíkozott sorok, fejlécsorok és sarokcellák – olyan formázási fogalmak, amelyek a bekezdés- vagy karakterstílusokra nem vonatkoznak.
Létrehozhatok egy teljesen újat a stílust ahelyett, hogy egy meglévőt módosítanék?
Igen — hívd meg a StyleCollection.Add(type, name)-t a kívánt StyleType-val és egy új névvel, hogy üres stílust hozz létre, majd állítsd be a formázási tulajdonságait (Font, ParagraphFormat, és így tovább a bekezdés/karakter stílusoknál).
Hogyan másolhatok egy stílust, beleértve egy másik dokumentumból is?
Használd a StyleCollection.AddCopy(style)-t, egy Style objektum átadásával (ami egy másik Document StyleCollection-ból származhat), hogy egy másolatot adj hozzá a célgyűjteményhez.
API Reference Összefoglaló
| Osztály/Módszer | Leírás |
|---|---|
Style | Egy beépített vagy felhasználó által definiált bekezdés-, karakter-, táblázat- vagy lista-stílus |
StyleCollection | Az összes stílus gyűjteménye egy dokumentumban, amelyet a Document.Styles segítségével érhetünk el |
StyleCollection indexelő név alapján | Stílus keresése a megjelenített neve alapján, pl. styles["Heading 1"] |
StyleCollection indexelő azonosító alapján | Beépített stílus keresése a nyelvtől független azonosító alapján, pl. styles[StyleIdentifier.Heading1] |
StyleCollection.Add(type, name) | Hozzon létre egy új, üres stílust a megadott StyleType alapján |
StyleCollection.AddCopy(style) | Másolja a meglévő stílust ebbe a gyűjteménybe |
StyleType | Enum, amely megkülönbözteti a Paragraph, Character, Table és List stílusokat |
StyleIdentifier | Területi független azonosító egy beépített stílushoz |
TableStyle | Egy Style alosztály táblázatformázáshoz, beleértve a feltételes régióonkénti stílusalkalmazást |
ConditionalStyleCollection | A TableStyle egyes régiókra vonatkozó ConditionalStyle bejegyzések halmaza |
ConditionalStyle | Formázás (betűtípus, bekezdésformátum, árnyékolás, szegélyek, kitöltés) egy táblázati régióhoz |
ConditionalStyleType | Enum, amely meghatározza, hogy a ConditionalStyle melyik táblarégióra vonatkozik |