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”.
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.
Tato implementace také používá metodu Document.GetChildNodes
třídy Document
, která vrací kolekci všech uzlů se zadaným typem, což je v tomto případě ve všech odstavcích.
Všimněte si, že druhý parametr metody Document.GetChildNodes je nastaven na true. To nutí metodu Document.GetChildNodes vybrat ze všech podřízených uzlů rekurzivně, spíše než vybrat pouze bezprostřední podřízené.
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:
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.TOC1
až StyleIdentifier.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.