Práce se styly

Práce se styly

Tento průvodce ukazuje, jak pracovat s odstavcovými, znakovými, tabulkovými a seznamovými styly v Aspose.Words FOSS pro .NET — vyhledávání a použití vestavěných a vlastních stylů a konfigurace podmíněného formátování podle oblastí u tabulkových stylů.

Objekt Style představuje jeden vestavěný nebo uživatelem definovaný styl — pojmenovanou sbírku formátování odstavců, písem a seznamů, kterou Word použije, když je odstavci nebo úseku přiřazen tento styl. Každý dokument zpřístupňuje své styly prostřednictvím vlastnosti Document.Styles, která vrací StyleCollection. Tabulkové styly jsou reprezentovány pomocí TableStyle, podtřídy Style, která přidává formátování specifické pro tabulky a podmíněné formátování podle oblastí přes ConditionalStyleCollection.


Typy stylů a identifikace

Každý Style má vlastnost Type typu StyleType, která je jednou z Paragraph, Character, Table nebo List — odpovídající čtyřem typům stylů, které Word podporuje. Vestavěné styly také nesou nezávislou na locale výčtovou hodnotu StyleIdentifier (například hodnoty odpovídající nadpisům, důrazu a stylům hypertextových odkazů), aby kód mohl vyhledat vestavěný styl bez závislosti na jeho zobrazovaném názvu v konkrétním jazyce. Člověku čitelný název stylu je dostupný přes Style.Name a Style.Aliases vrací jakékoli alternativní názvy, které Word pro stejný styl rozpozná. Style.BuiltIn uvádí, zda styl je součástí samotného Wordu, nebo je definován v dokumentu, a Style.IsHeading uvádí, zda se jedná o jeden z vestavěných stylů nadpisů.

Přístup a správa kolekce stylů

StyleCollection je kolekce všech objektů Style — vestavěných i vlastních — připojených k dokumentu, dosažitelná přes Document.Styles. Styl lze získat podle jeho zobrazovaného názvu pomocí indexeru StyleCollection — styles[name] — nebo získat vestavěný styl podle jeho nezávislé na locale hodnoty StyleIdentifier pomocí stejného indexeru — styles[sti] — což je spolehlivější než vyhledávání podle názvu napříč dokumenty vytvořenými v různých jazycích. Nové styly se vytvářejí pomocí StyleCollection.Add(type, name), přičemž se určuje StyleType a název, a existující styl lze duplikovat do kolekce pomocí StyleCollection.AddCopy(style). StyleCollection.Count udává, kolik stylů dokument obsahuje, a kolekce také poskytuje DefaultFont a DefaultParagraphFormat, které popisují výchozí formátování platné pro celý dokument, které nové obsahy dědí před aplikací jakéhokoli explicitního stylu. StyleCollection.ClearQuickStyleGallery() odstraňuje všechny styly z galerie rychlých stylů UI Wordu, aniž by sám styl odstranil.

Používání stylů na odstavce a běhy

Formátovací objekty, které mohou nést styl, vystavují jak vlastnost Style (samotný objekt Style), tak vlastnost StyleName (zkratku, která podle názvu vyřeší nebo vytvoří styl). ParagraphFormat.Style a ParagraphFormat.StyleName použijí styl odstavce, zatímco Font.Style a Font.StyleName použijí styl znaku pro formátování běhu. Vlastní vlastnosti stylu LinkedStyleName, BaseStyleName a NextParagraphStyleName popisují, jak se vztahuje k jiným stylům: BaseStyleName uvádí název stylu, ze kterého dědí nenastavené formátování, LinkedStyleName uvádí spárovaný styl odstavce/znaku (tak, jak Word dělá pro vestavěné styly jako Nadpis 1 a jeho propojený styl znaku), a NextParagraphStyleName uvádí název stylu, který Word přiřadí novému odstavci napsanému po odstavci používajícím tento styl.

Styly tabulek a podmíněné formátování

TableStyle rozšiřuje Style o vlastnosti rozložení tabulky, jako jsou Alignment, CellSpacing, LeftIndent, Shading, VerticalAlignment a odsazení (LeftPadding, RightPadding, TopPadding, BottomPadding), plus RowStripe a ColumnStripe, které řídí, přes kolik řádků nebo sloupců se opakuje vzor pruhování. Mimo jednotné formátování tabulky TableStyle.ConditionalStyles vrací ConditionalStyleCollection, který obsahuje jeden ConditionalStyle pro každou oblast tabulky — FirstRow, LastRow, FirstColumn, LastColumn, OddRowBanding, EvenRowBanding, OddColumnBanding, EvenColumnBanding a čtyři rohové buňky (TopLeftCell, TopRightCell, BottomLeftCell, BottomRightCell). Každý ConditionalStyle nese své vlastní Font, ParagraphFormat, Shading, Borders a odsazení buňky, a jeho vlastnost Type uvádí, kterou ConditionalStyleType oblast představuje. ConditionalStyle.ClearFormatting() a ConditionalStyleCollection.ClearFormatting() resetují formátování pro jednu oblast nebo celý soubor podmíněných oblastí.

Metadata stylu a příznaky chování

Několik logických a číselných vlastností na Style řídí, jak Word zachází se stylem ve svém uživatelském rozhraní, spíše než jak jej vykresluje: Locked zabraňuje změně stylu, když je aktivní ochrana formátování, IsQuickStyle určuje, zda se styl zobrazí v galerii rychlých stylů, AutomaticallyUpdate způsobí, že se styl předefinuje na základě ručně aplikovaného přímého formátování, SemiHidden a UnhideWhenUsed řídí viditelnost ve seznamu stylů před a po prvním použití a Priority ovlivňuje pořadí řazení v galerii. Styl také vystavuje vlastnosti List a ListFormat, když definuje číslování seznamu, a Style.Remove() odstraní styl z jeho StyleCollection.


Tipy a osvědčené postupy

  • Dávejte přednost indexeru StyleCollection s hodnotou StyleIdentifier před vyhledáváním podle názvu při hledání vestavěného stylu — názvy jsou lokalizované, ale hodnoty StyleIdentifier nikoli.
  • Nastavte BaseStyleName pro vytvoření hierarchií stylů (například sadu stylů nadpisů, které všechny dědí volby písma z jednoho základního stylu) místo opakování formátování u každého stylu.
  • Při kopírování stylu mezi dokumenty použijte StyleCollection.AddCopy(style) místo ručního čtení a opětovného použití každé vlastnosti formátování.
  • Nakonfigurujte TableStyle.ConditionalStyles oblasti pro páskové tabulky místo ručního formátování střídajících se řádků v kódu — formátování každé oblasti ConditionalStyle se aplikuje na základě jejího ConditionalStyleType, místo nastavení přímého formátování na jednotlivé řádky.
  • Zkontrolujte Style.BuiltIn před programatickým odstraněním nebo přejmenováním stylu; vestavěné styly jsou obvykle odkazovány jménem jinde v dokumentu.

Běžné problémy

ProblémPříčinaOprava
StyleCollection indexer vrací null pro vyhledání jménaNázev stylu v tomto dokumentu neexistuje, nebo vestavěný styl zatím nebyl použit, takže Word jej ještě nevytvořil.Zkontrolujte Style.Aliases na alternativní názvy nebo použijte indexer StyleCollection s StyleIdentifier pro vestavěné styly.
Nastavení StyleName neočekávaně vytvoří nový styl.StyleName vytvoří pojmenovaný styl, pokud ještě v kolekci neexistuje.Nejprve použijte indexer StyleCollection k ověření existence stylu, nebo přiřaďte objekt Style přímo přes vlastnost Style.
Proužkování tabulky se neobjeví po použití TableStyle.Oblasti podmíněného formátování (OddRowBanding, EvenRowBanding a tak dále) nebyly nikdy nakonfigurovány na TableStyle.ConditionalStyles.Nastavte formátování na relevantní položky ConditionalStyle v ConditionalStyleCollection.
Změna stylu neovlivní obsah, který již styl používá.Přímé (ruční) formátování bylo aplikováno nad styl a má přednostOdstraňte přímé formátování na postižených úsecích/odstavcích nebo nastavte Style.AutomaticallyUpdate

FAQ

Jak získám kolekci všech stylů v dokumentu?

Přečtěte Document.Styles, který vrací StyleCollection obsahující všechny vestavěné a uživatelem definované Style v tomto dokumentu.

Jaký je rozdíl mezi Style a StyleIdentifier?

Style je skutečný objekt stylu s jeho formátováním; StyleIdentifier je locale-nezávislá enum hodnota používaná k vyhledání konkrétního vestavěný styl bez ohledu na jazyk dokumentu, pomocí StyleCollection indexeru.

Jak se tabulkové styly liší od stylů odstavců nebo znakových stylů?

TableStyle je podtřída Style, která přidává vlastnosti rozvržení tabulky (Alignment, CellSpacing, padding) a kolekci ConditionalStyles pro regionálně specifické formátování, jako jsou pruhované řádky, řádky záhlaví a rohové buňky — koncepty formátování, které neplatí pro styly odstavců nebo znakové styly.

Mohu vytvořit zcela nový styl místo úpravy existujícího?

Ano — zavolejte StyleCollection.Add(type, name) s požadovaným StyleType a novým názvem pro vytvoření prázdného stylu, poté nastavte jeho formátovací vlastnosti (Font, ParagraphFormat a tak dále pro styly odstavců/znaků).

Jak mohu duplikovat styl, včetně z jiného dokumentu?

Použijte StyleCollection.AddCopy(style), předáním objektu Style (který může pocházet z StyleCollection jiného Document) k přidání jeho kopie do cílové kolekce.


API Reference Shrnutí

Třída/MetodaPopis:
StyleJednotlivý vestavěný nebo uživatelem definovaný styl odstavce, znaku, tabulky nebo seznamu
StyleCollectionKolekce všech stylů v dokumentu, dosažitelná přes Document.Styles
indexér StyleCollection podle názvuVyhledejte styl podle jeho zobrazovaného názvu, např. styles["Heading 1"]
indexér StyleCollection podle identifikátoruVyhledejte vestavěný styl podle identifikátoru nezávislého na locale, např. styles[StyleIdentifier.Heading1]
StyleCollection.Add(type, name)Vytvořte nový, prázdný styl daného StyleType
StyleCollection.AddCopy(style)Zkopírujte existující styl do této kolekce
StyleTypeEnum rozlišující styly Paragraph, Character, Table a List
StyleIdentifierLocale-nezávislý identifikátor pro vestavěný styl
TableStylePodtřída Style pro formátování tabulek, včetně podmíněného stylování podle regionu
ConditionalStyleCollectionMnožina ConditionalStyle položek podle regionu na TableStyle
ConditionalStyleFormátování (písmo, formát odstavce, stínování, okraje, odsazení) pro jeden region tabulky
ConditionalStyleTypeEnum identifikující, na který region tabulky se ConditionalStyle vztahuje

Viz také:

 Čeština