Hogyan dolgozzunk a stílusokkal a .NET-ban
Ez az útmutató bemutatja, hogyan kereshetők meg, alkalmazhatók és hozhatók létre bekezdés-, karakter-, táblázat- és lista-stílusok a Aspose.Words FOSS a .NET számára, használva a Style, StyleCollection, és TableStyle osztályokat. Bemutatja a dokumentum stílusgyűjteményének olvasását, a stílusok megbízható keresését különböző nyelveken, a stílusok alkalmazását bekezdésekre és futtatásokra, a stílusok létrehozását és másolását, valamint a táblázatstílusok régiónkénti feltételes formázásának beállítását.
Lépésről lépésre útmutató
1. lépés: A csomag telepítése
A Aspose.Words FOSS for .NET még nem tesz közzé NuGet csomagot – helyette építsd fel a könyvtárat forrásból. Klónozd a https://github.com/aspose-words-foss/Aspose.Words-FOSS-for-.NET.git repót, majd építsd a Aspose.Words.sln-t Release konfigurációban a .NET SDK-val, és hivatkozz a keletkezett Aspose.Words assembly-re a projektedből. A könyvtár a .NET Standard 2.0-t célozza, így fut a .NET Framework 4.6.2+ és a .NET 6/8/10 verziókon.
2. lépés: Szükséges osztályok importálása
Adj hozzá egy using Aspose.Words; direktívát – a Style, StyleCollection, TableStyle, StyleType, StyleIdentifier, ConditionalStyle, ConditionalStyleCollection és ConditionalStyleType a Aspose.Words névtérben él együtt a Document-val.
3. lépés: Dokumentum stílusgyűjteményének olvasása
Document.Styles visszaad egy StyleCollection – minden beépített és felhasználó által definiált Style, amely a dokumentumhoz csatlakozik. StyleCollection.Count jelentést készít arról, hány stílust tartalmaz, és a DefaultFont / DefaultParagraphFormat leírják a dokumentumra kiterjedő alapformázást, amelyet az új tartalom örököl, mielőtt bármely explicit stílus alkalmazásra kerülne.
4. lépés: Stílus megbízható keresése
Szerezzen be egy stílust a megjelenített nevével a StyleCollection indexelő, styles[name] használatával. Beépített stílusok esetén részesítse előnyben ugyanazt az indexelőt egy StyleIdentifier enum értékkel – styles[sti] – a nevek lokalizáltak, de a StyleIdentifier értékek nem, ezért az azonosító szerinti keresés ugyanúgy működik a dokumentum nyelvétől függetlenül. Ellenőrizze a Style.Aliases alternatív neveket, amelyeket a Word ugyanarra a stílusra ismer, ha az indexelő nem találja a várt eredményt, és ellenőrizze a Style.BuiltIn értéket, mielőtt programozottan eltávolítana vagy átnevezne egy stílust, mivel a beépített stílusokra gyakran hivatkoznak a dokumentum más részein.
5. lépés: Stílus alkalmazása bekezdésekre vagy karakterfuttatásokra
Formázó objektumok, amelyek stílust hordoznak, mindkét Style tulajdonságot (magát a Style objektumot) és egy StyleName tulajdonságot (egy gyorshivatkozás, amely név alapján feloldja vagy létrehozza a stílust) teszik elérhetővé. Állítsa be a ParagraphFormat.Style vagy ParagraphFormat.StyleName értéket bekezdésstílus alkalmazásához, és a Font.Style vagy Font.StyleName értéket karakterstílus alkalmazásához egy futtatás formázásához. A StyleName egy nem létező névvel való hozzárendelése létrehozza azt a stílust – ellenőrizze először a StyleCollection indexelővel, hogy a stílus létezik-e, vagy adja közvetlenül a Style objektumot, ha ez nem a kívánt viselkedés.
6. lépés: Stílushierarchiák felépítése
Olvassa a BaseStyleName értéket, hogy megtalálja azt a stílust, amelyről egy adott stílus örököl beállítatlan formázást, a LinkedStyleName egy párosított bekezdés/karakter stílus (ahogy a Word definiálja a beépített stílusoknál, például egy címsor és annak kapcsolt karakterstílusa), és a NextParagraphStyleName azt a stílust, amelyet a Word egy új bekezdéshez rendel, ha az az előzőleg e stílust használó bekezdés után kerül beírásra. Állítsa be a BaseStyleName értéket kapcsolódó stílusok halmazának meghatározásakor – például egy címsor stíluscsalád esetén, amelynek mindegyike egy alapstílusról örökölje a betűtípus-beállításokat – ahelyett, hogy minden stílusnál ugyanazt a formázást ismételné.
7. lépés: Stílus létrehozása vagy másolása
Hívja a StyleCollection.Add(type, name) függvényt egy StyleType (Paragraph, Character, Table vagy List) és egy név megadásával, hogy új, üres stílust hozzon létre, majd szükség szerint állítsa be a Font és ParagraphFormat tulajdonságait. Egy meglévő stílus – beleértve egy másik Document StyleCollection-ból származót – másolásához hívja a StyleCollection.AddCopy(style) függvényt ahelyett, hogy manuálisan olvasná és újraalkalmazná az összes formázási tulajdonságot. Hívja a Style.Remove() függvényt egy stílus törléséhez a kollekcióból.
8. lépés: Táblastílusok és feltételes formázás beállítása
TableStyle kibővíti a Style táblázat-elrendezési tulajdonságokkal – Alignment, CellSpacing, LeftIndent, Shading, VerticalAlignment, valamint a négy kitöltési (padding) tulajdonsággal (LeftPadding, RightPadding, TopPadding, BottomPadding) – valamint RowStripe és ColumnStripe, amelyek szabályozzák, hány sor vagy oszlop ismétli a csíkozási mintát. Területenkénti formázáshoz állítsa be a TableStyle.ConditionalStyles – egy ConditionalStyleCollection, amely minden területhez egy ConditionalStyle tartalmaz: FirstRow, LastRow, FirstColumn, LastColumn, OddRowBanding, EvenRowBanding, OddColumnBanding, EvenColumnBanding, és a négy sarkocell (TopLeftCell, TopRightCell, BottomLeftCell, BottomRightCell). Minden ConditionalStyle saját Font, ParagraphFormat, Shading, Borders és cell kitöltését hordozza, a Type jelzi, mely ConditionalStyleType területet képviseli; formázza ezeket a területeket az egyes táblasorok helyett, hogy a csíkozott, fejlécsor vagy sarkocell formázás megmaradjon a táblaszerkesztések során.
9. lépés: Formázás visszaállítása vagy eltávolítása
Hívja a ConditionalStyle.ClearFormatting() függvényt egy feltételes régió visszaállításához, vagy a ConditionalStyleCollection.ClearFormatting() függvényt, hogy egyszerre minden régiót visszaállítson egy TableStyle-on. 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 maga a stílus törlődne – hasznos a galéria szűkítéséhez anélkül, hogy a dokumentum tartalmát érintené.
Gyakori problémák és megoldások
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 nem került felhasználásra, ezért a Word még nem hozta létre azt. Ellenőrizze Style.Aliases az alternatív neveket, vagy használja a StyleCollection indexerrel egy StyleIdentifier a beépített stílusok helyett.
A StyleName beállítása váratlanul új stílust hoz létre StyleName létrehozza a megnevezett stílust, ha az még nem létezik a gyűjteményben. Használja a StyleCollection indexert először, hogy megerősítse a stílus létezését, vagy rendelje hozzá a Style objektumot közvetlenül a Style tulajdonságot a … helyett StyleName.
A táblázat színezése nem jelenik meg egy TableStyle alkalmazása után A feltételes formázási területek – OddRowBanding, EvenRowBanding, és hasonló – soha nem lettek konfigurálva a TableStyle.ConditionalStyles. Állítsa be a formázást a megfelelő ConditionalStyle bejegyzéseknél a ConditionalStyleCollection.
A stílusváltozás nem befolyásolja a már a stílust használó tartalmat A stílusra felül alkalmazott közvetlen (kézi) formázás elsőbbséget élvez a stílus saját beállításaival szemben. Törölje a közvetlen formázást az érintett futásokon vagy bekezdéseken, vagy állítsa be Style.AutomaticallyUpdate hogy a stílus újradefiniálja magát ebből a kézi formázásból.
A beépített stíluskeresés hibát jelez egy másik nyelven írt dokumentumban A StyleCollection az indexer a megjelenített névre egyezik, amely lokalizált, amikor névvel hívják. Használja ugyanazt az indexert a megfelelő StyleIdentifier enum értéket helyette, mivel ez az azonosító nyelvi független.
Gyakran Ismételt Kérdések
Hogyan szerezhetem meg egy dokumentum összes stílusát tartalmazó gyűjteményt?
Olvassa el a Document.Styles-t, amely egy StyleCollection-t ad vissza, amely tartalmazza a dokumentumban lévő összes beépített és felhasználó által definiált Style-t.
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, amely a dokumentum nyelvétől függetlenül egy adott beépített stílus keresésére szolgá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éc sorok és sarokcellák – olyan formázási koncepciók, amelyek nem alkalmazhatók bekezdés- vagy karakterstílusokra.
Létrehozhatok teljesen új stílust a meglévő módosítása helyett?
Igen – hívd a StyleCollection.Add(type, name) függvényt a kívánt StyleType és egy új név megadásával egy üres stílus létrehozásához, majd állítsd be a formázási tulajdonságait (Font, ParagraphFormat és így tovább a bekezdés- vagy karakterstílusok esetén).
Hogyan tudok egy stílust duplikálni, beleértve egy másik dokumentumból is?
Hívd a StyleCollection.AddCopy(style) függvényt, egy Style objektumot átadva – amely egy másik Document StyleCollection-ból származhat – hogy egy másolatát hozzáadd a célgyűjteményhez.