Jak pracovat se styly v .NET

Jak pracovat se styly v .NET

Tento průvodce ukazuje, jak vyhledávat, používat a vytvářet styly odstavců, znaků, tabulek a seznamů v Aspose.Words FOSS pro .NET, pomocí Style, StyleCollection, a TableStyle třídy. Pokrývá čtení kolekce stylů dokumentu, spolehlivé vyhledávání stylů napříč jazyky, aplikaci stylů na odstavce a běhy, vytváření a kopírování stylů a konfiguraci podmíněného formátování podle oblastí u stylů tabulek.

Průvodce krok za krokem

Krok 1: Nainstalujte balíček

Aspose.Words FOSS pro .NET zatím nepublikuje balíček NuGet – místo toho sestavte knihovnu ze zdrojového kódu. Naklonujte https://github.com/aspose-words-foss/Aspose.Words-FOSS-for-.NET.git, poté sestavte Aspose.Words.sln v konfiguraci Release s .NET SDK a odkažte na vzniklý Aspose.Words assembly ve svém projektu. Knihovna cílí na .NET Standard 2.0, takže běží na .NET Framework 4.6.2+ a .NET 6/8/10.


Krok 2: Importujte požadované třídy

Přidejte direktivu using Aspose.Words; – Style, StyleCollection, TableStyle, StyleType, StyleIdentifier, ConditionalStyle, ConditionalStyleCollection a ConditionalStyleType všechny se nacházejí v jmenném prostoru Aspose.Words vedle Document.


Krok 3: Načíst kolekci stylů dokumentu

Document.Styles vrací StyleCollection – každý vestavěný a uživatelem definovaný Style připojený k dokumentu. StyleCollection.Count uvádí, kolik stylů obsahuje, a DefaultFont / DefaultParagraphFormat popisují výchozí formátování na úrovni celého dokumentu, které nové obsahy dědí před tím, než je použita jakákoli explicitní styl.


Krok 4: Spolehlivě vyhledat styl

Získejte styl podle jeho zobrazovaného názvu pomocí indexeru StyleCollection, styles[name]. Pro vestavěné styly raději použijte stejný indexer s výčtovou (enum) hodnotou StyleIdentifier – styles[sti] – názvy jsou lokalizované, ale hodnoty StyleIdentifier nikoli, takže vyhledávání podle identifikátoru funguje stejně bez ohledu na jazyk dokumentu. Zkontrolujte Style.Aliases pro alternativní názvy, které Word rozpozná pro stejný styl, pokud indexer nenajde to, co očekáváte, a podívejte se na Style.BuiltIn před tím, než styl programově odstraníte nebo přejmenujete, protože vestavěné styly jsou často odkazovány názvem jinde v dokumentu.


Krok 5: Použít styl na odstavce nebo běhy

Formátovací objekty, které nesou styl, vystavují jak vlastnost Style (samotný objekt Style), tak vlastnost StyleName (zkratku, která podle názvu rozpozná nebo vytvoří styl). Nastavte ParagraphFormat.Style nebo ParagraphFormat.StyleName pro použití odstavcového stylu a Font.Style nebo Font.StyleName pro použití znakového stylu na formátování běhu. Přiřazením StyleName s názvem, který v kolekci ještě neexistuje, se tento styl vytvoří – nejprve ověřte, že styl existuje pomocí indexeru StyleCollection, nebo přiřaďte objekt Style přímo, pokud to není zamýšlené chování.


Krok 6: Vytvořit hierarchii stylů

Přečtěte BaseStyleName a zjistěte, ze kterého stylu daný styl dědí nenastavené formátování, LinkedStyleName pro spárovaný odstavec/znakový styl (jak Word definuje pro vestavěné styly, např. nadpis a jeho propojený znakový styl) a NextParagraphStyleName pro styl, který Word přiřadí novému odstavci napsanému po odstavci používajícím tento styl. Nastavte BaseStyleName při definování sady souvisejících stylů – například rodiny nadpisových stylů, které by měly všechny dědit výběr písma z jednoho základního stylu – místo opakování stejného formátování u každého stylu.


Krok 7: Vytvořit nebo zkopírovat styl

Zavolejte StyleCollection.Add(type, name) s StyleType (Paragraph, Character, Table nebo List) a názvem pro vytvoření nového, prázdného stylu, poté nastavte jeho Font a ParagraphFormat vlastnosti podle potřeby. Pro duplikování existujícího stylu – včetně stylu z jiného Document StyleCollection – zavolejte StyleCollection.AddCopy(style) místo ručního čtení a opětovného použití každé vlastnosti formátování. Zavolejte Style.Remove() pro smazání stylu z jeho kolekce.


Krok 8: Konfigurace stylů tabulky a podmíněného formátování

TableStyle rozšiřuje Style o vlastnosti rozvržení tabulky – Alignment, CellSpacing, LeftIndent, Shading, VerticalAlignment a čtyři vlastnosti odsazení (LeftPadding, RightPadding, TopPadding, BottomPadding) – plus RowStripe a ColumnStripe, které řídí, kolik řádků nebo sloupců se opakuje vzor pásování. Pro formátování podle oblastí nakonfigurujte TableStyle.ConditionalStyles – ConditionalStyleCollection obsahující jeden ConditionalStyle na oblast: FirstRow, LastRow, FirstColumn, LastColumn, OddRowBanding, EvenRowBanding, OddColumnBanding, EvenColumnBanding a čtyři rohové buňky (TopLeftCell, TopRightCell, BottomLeftCell, BottomRightCell). Každý ConditionalStyle má své vlastní Font, ParagraphFormat, Shading, Borders a odsazení buňky, přičemž Type uvádí, kterou ConditionalStyleType oblast představuje; nastavte formátování na těchto oblastech místo na jednotlivých řádcích tabulky, abyste získali pásované, záhlaví-řádkové nebo rohové buňkové formátování, které přežije úpravy tabulky.


Krok 9: Resetovat nebo odstranit formátování

Zavolejte ConditionalStyle.ClearFormatting() pro resetování jedné podmíněné oblasti, nebo ConditionalStyleCollection.ClearFormatting() pro resetování všech oblastí na TableStyle najednou. StyleCollection.ClearQuickStyleGallery() odstraní každý styl z galerie rychlých stylů ve Word UI, aniž by smazal samotné styly – užitečné pro zmenšení galerie, aniž byste zasahovali do obsahu dokumentu.

Časté problémy a opravy

StyleCollection indexer vrací null při vyhledávání názvu Název stylu v tomto dokumentu neexistuje, nebo vestavěný styl ještě nebyl použit, takže Word jej ještě nezrealizoval. Zkontrolujte Style.Aliases alternativní názvy, nebo použijte the StyleCollection indexer s StyleIdentifier pro vestavěné styly místo toho.

Nastavení StyleName neočekávaně vytvoří nový styl StyleName vytvoří pojmenovaný styl, pokud v kolekci ještě neexistuje. Použijte StyleCollection indexer nejprve k potvrzení existence stylu, nebo přiřaďte Style objekt přímo přes Style vlastnost místo StyleName.

Proužkování tabulky se po použití TableStyle nezobrazí Oblasti podmíněného formátování – OddRowBanding, EvenRowBanding, a podobné – nebyly nikdy nakonfigurovány na TableStyle.ConditionalStyles. Nastavte formátování na relevantní ConditionalStyle položky v ConditionalStyleCollection.

Změna stylu neovlivní obsah, který již styl používá Přímé (manuální) formátování aplikované nad styl má přednost před nastaveními samotného stylu. Vymažte přímé formátování na dotčených úsecích nebo odstavcích, nebo nastavte Style.AutomaticallyUpdate aby se styl redefinoval podle tohoto manuálního formátování.

Vyhledávání vestavěného stylu selže v dokumentu vytvořeném v jiném jazyce Ten StyleCollection indexér porovnává podle zobrazovaného názvu, který je lokalizován, když je volán s názvem. Použijte stejný indexér s odpovídajícím StyleIdentifier enum hodnotou místo toho, protože tento identifikátor je nezávislý na locale.

Často kladené otázky

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

Přečtěte Document.Styles, který vrací StyleCollection obsahující každý 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á hodnota výčtu používaná k vyhledání konkrétního vestavěného stylu bez ohledu na jazyk dokumentu, prostřednictvím indexeru StyleCollection.

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

TableStyle je podtřída Style, která přidává vlastnosti rozložení tabulky (Alignment, CellSpacing, padding) a kolekci ConditionalStyles pro formátování specifické pro oblast, jako jsou páskové řádky, hlavičkové řádky 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, abyste vytvořili prázdný styl, a poté nastavte jeho vlastnosti formátování (Font, ParagraphFormat a tak dále pro styly odstavců nebo znakové styly).

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

Zavolejte StyleCollection.AddCopy(style), předáte objekt Style — který může pocházet z jiného Document’s StyleCollection — aby se přidala jeho kopie do cílové kolekce.

Viz také:

 Čeština