Práce se styly

Třída StyleCollection se používá ke správě vestavěných a použití uživatelem definovaných nastavení stylů.

Jak extrahovat obsah na základě stylů

Na jednoduché úrovni může být načítání obsahu na základě stylů z dokumentu Word užitečné k identifikaci, seznamu a počítání odstavců a běhů textu formátovaného konkrétním stylem. Možná budete muset například určit konkrétní druhy obsahu v dokumentu, jako jsou příklady, názvy, odkazy, klíčová slova, názvy obrázků a případové studie.

Chcete-li to provést o několik kroků dále, lze to také použít k využití struktury dokumentu definované styly, které používá, k opětovnému účelu dokumentu pro jiný výstup, například HTML. Ve skutečnosti je takto vytvořena dokumentace Aspose, která testuje Aspose.Words. Nástroj vytvořený pomocí Aspose.Words vezme zdrojové dokumenty Word a rozdělí je na témata na určitých úrovních nadpisů. Soubor XML je vytvořen pomocí Aspose.Words, který se používá k sestavení navigačního stromu, který vidíte vlevo. A pak Aspose.Words převede každé téma na HTML.

Řešení pro načítání textu formátovaného specifickými styly v dokumentu Word je obvykle ekonomické a přímočaré pomocí Aspose.Words.

Řešení

Abychom ilustrovali, jak snadno Aspose.Words zpracovává načítání obsahu na základě stylů, podívejme se na příklad. V tomto příkladu načteme text formátovaný konkrétním odstavcovým stylem a znakovým stylem z ukázkového dokumentu Word. Na vysoké úrovni to bude zahrnovat:

  • Otevření dokumentu Word pomocí třídy Document.
  • Získání kolekcí všech odstavců a všech běhů v dokumentu.
  • Výběr pouze požadovaných odstavců a běhů. Konkrétně z tohoto ukázkového dokumentuWord načteme text formátovaný odstavcovým stylem “Heading 1 “a znakovým stylem “intenzivní důraz”.

working-with-styles-aspose-words-cpp-1

V tomto ukázkovém dokumentu je text formátovaný odstavcovým stylem “Heading 1 ““vložit kartu”, “Rychlé styly” a “téma” a text formátovaný stylem “intenzivní důraz” je několik instancí modrého, kurzíva, tučný text, jako jsou “galerie” a “celkový vzhled”.

Kód

Implementace dotazu založeného na stylu je v modelu Aspose.Words Document object poměrně jednoduchá ,protože jednoduše používá nástroje, které jsou již zavedeny. Pro toto řešení jsou implementovány dvě metody třídy:# ParagraphsByStyleName - tato metoda načte pole odstavců v dokumentu, které mají konkrétní název stylu.# RunsByStyleName - tato metoda načte pole těch běhů v dokumentu, které mají konkrétní název stylu. Obě tyto metody jsou velmi podobné, jedinými rozdíly jsou typy uzlů a reprezentace informací o stylu v uzlech odstavce a běhu. Zde je implementace ParagraphsByStyleName. Níže naleznete všechny odstavce formátované zadaným stylem.

Je také třeba zdůraznit, že kolekce odstavců nevytváří okamžitou režii, protože odstavce se do této kolekce načítají pouze tehdy, když v nich přistupujete k položkám. Poté vše, co musíte udělat, je projít kolekcí pomocí standardu pro každý operátor a přidat odstavce, které mají zadaný styl, do pole paragraphsWithStyle. Název stylu Paragraph lze nalézt ve stylu. Název vlastnosti objektu Paragraph.ParagraphFormat. Implementace RunsByStyleName je téměř stejná, i když zjevně používáme NodeType.Run k načtení run nodes. Vlastnost Font.Style objektu Run se používá pro přístup k informacím o stylu v uzlech Run. Příklad below code Najděte všechny běhy formátované zadaným stylem.

Když jsou implementovány oba dotazy, vše, co musíte udělat, je předat objekt dokumentu a zadat názvy stylů obsahu, který chcete načíst: níže uvedený příklad spusťte dotazy a zobrazte výsledky. Soubor šablony tohoto příkladu si můžete stáhnout zde.

Výsledek

Když je vše hotovo, spuštěním vzorku se zobrazí následující výstup:

working-with-styles-aspose-words-cpp-2

Jak vidíte, jedná se o velmi jednoduchý příklad, který ukazuje počet a text shromážděných odstavců a běží v ukázkovém dokumentu Word.

Jak vložit a pracovat s polem obsah

Často budete pracovat s dokumenty obsahujícími obsah (TOC). Pomocí Aspose.Words můžete vložit svůj vlastní obsah nebo zcela znovu vytvořit existující obsah v dokumentu pomocí několika řádků kódu. Tento článek popisuje, jak pracovat s polem obsah a ukazuje:

  • Jak vložit zcela nový TOC
  • Aktualizujte nový nebo existující TOCs v dokumentu.
  • Určete přepínače pro ovládání formátování a celkové struktury f TOC.
  • Jak upravit styly a vzhled obsahu.
  • Jak odstranit celé pole TOC spolu se všemi položkami z dokumentu.

Vložit TC Pole

Často je pro TOC určen konkrétní řádek textu a je označen polem TC. Snadný způsob, jak to udělat v MS Word, je zvýraznit text a stisknout ALT+SHIFT+O. Tím se automaticky vytvoří pole TC pomocí vybraného textu. Stejnou techniku lze provést pomocí kódu. Níže uvedený kód najde text odpovídající vstupu a vloží pole TC na stejné místo jako text. Kód je založen na stejné technice použité v článku. Níže uvedený příklad ukazuje, jak najít a vložit pole TC na text v dokumentu.

Změna obsahu

Změna formátování stylů

Formátování položek v TOC nepoužívá původní styly označených položek, místo toho je každá úroveň formátována pomocí ekvivalentního stylu TOC. Například první úroveň v TOC je formátována stylem TOC1, Druhá úroveň formátována stylem TOC2 a tak dále. To znamená, že pro změnu vzhledu TOC musí být tyto styly upraveny. V Aspose.Words jsou tyto styly reprezentovány nezávislým národním prostředím StyleIdentifier.TOC1StyleIdentifier.TOC9 a lze je získat z kolekce Document.Styles pomocí těchto identifikátorů. Po načtení příslušného stylu dokumentu lze formátování tohoto stylu upravit. Jakékoli změny těchto stylů se automaticky projeví na TOCs v dokumentu. Příklad below code změní vlastnost formátování použitou ve stylu první úrovně TOC.

Je také užitečné poznamenat, že jakékoli přímé formátování odstavce (definovaného na samotném odstavci a nikoli ve stylu) označeného jako TOC bude zkopírováno do položky v TOC. Například pokud se styl Heading 1 používá k označení obsahu pro TOC a tento styl má tučné formátování, zatímco odstavec má také formátování kurzívou přímo aplikované na něj. Výsledná položka TOC nebude tučná, protože je součástí formátování stylu, ale bude kurzívou, protože je přímo naformátována v odstavci. Můžete také ovládat formátování oddělovačů použitých mezi každou položkou a číslem stránky. Ve výchozím nastavení se jedná o tečkovanou čáru, která je rozložena na číslování stránek pomocí znaku karty a pravého zarážky karty seřazené blízko pravého okraje.

Pomocí třídy Style načtené pro konkrétní úroveň TOC, kterou chcete upravit, můžete také upravit, jak se tyto zobrazují v dokumentu. Chcete-li změnit způsob, jakým se toto zobrazí, nejprve je třeba zavolat Style.ParagraphFormat, aby se načetlo formátování odstavce pro styl. Z toho lze zarážky karet načíst voláním ParagraphFormat.TabStops a upravit příslušnou zarážku karet. Pomocí stejné techniky lze samotnou kartu přesunout nebo úplně odstranit. Příklad below code ukazuje, jak upravit polohu pravého zarážky v TOC souvisejících odstavcích. Soubor šablony tohoto příkladu si můžete stáhnout zde.

Odebrání obsahu z dokumentu

Obsah lze z dokumentu odstranit odstraněním všech uzlů nalezených mezi uzlem FieldStart a FieldEnd pole TOC. Níže uvedený kód to dokazuje. Odstranění pole TOC je jednodušší než normální pole, protože nesledujeme vnořená pole. Místo toho zkontrolujeme, že uzel FieldEnd je typu FieldType.FieldTOC, což znamená, že jsme narazili na konec aktuálního TOC. Tuto techniku lze v tomto případě použít bez obav o vnořená pole, protože můžeme předpokládat, že jakýkoli správně vytvořený dokument nebude mít plně vnořené pole TOC uvnitř jiného pole TOC. Nejprve se shromáždí a uloží uzly FieldStart každého TOC. Zadaný TOC je poté vyjmenován, takže jsou navštíveny a uloženy všechny uzly v poli. Uzly jsou poté z dokumentu odstraněny. Příklad below code ukazuje, jak odebrat zadaný TOC z dokumentu. Soubor šablony tohoto příkladu si můžete stáhnout zde.

Vložte oddělovač stylů a vložte různé styly odstavců

Oddělovač stylů lze přidat na konec odstavce pomocí klávesové zkratky Ctrl + Alt + Enter do MS Word. Tato funkce umožňuje dva různé styly odstavců používané v jednom logickém tištěném odstavci. Pokud chcete, aby se nějaký text od začátku konkrétního nadpisu zobrazoval v obsahu, ale nechcete, aby se v obsahu zobrazoval celý Nadpis, můžete tuto funkci použít. Příklad below code ukazuje, jak vložit oddělovač stylů pro vložení různých stylů odstavců.

Zkopírujte všechny styly ze šablony

Existují případy, kdy chcete zkopírovat všechny styly z jednoho dokumentu do druhého. Metodu Document.CopyStylesFromTemplate můžete použít ke kopírování stylů ze zadané šablony do dokumentu. Při kopírování stylů ze šablony do dokumentu se předefinují styly s podobným názvem v dokumentu tak, aby odpovídaly popisům stylů v šabloně. Jedinečné styly ze šablony jsou zkopírovány do dokumentu. Jedinečné styly v dokumentu zůstávají nedotčeny. Příklad below code ukazuje, jak kopírovat styly z jednoho dokumentu do druhého.