Praca ze stylami i motywami
Klasa StyleCollection służy do zarządzania wbudowanymi ustawieniami i stosowania ustawień zdefiniowanych przez użytkownika do stylów.
Dostęp do stylów
Możesz uzyskać kolekcję stylów zdefiniowanych w dokumencie za pomocą właściwości Document.Styles. Ta kolekcja zawiera w dokumencie zarówno style wbudowane, jak i zdefiniowane przez użytkownika. Konkretny styl można uzyskać na podstawie jego nazwy/aliasu, identyfikatora stylu lub indeksu. Poniższy przykład kodu demonstruje, jak uzyskać dostęp do kolekcji stylów zdefiniowanych w dokumencie.
Jak wyodrębnić zawartość na podstawie stylów
Na prostym poziomie pobieranie zawartości opartej na stylach z dokumentu programu Word może być przydatne do identyfikowania, wyszczególniania i liczenia akapitów i ciągów tekstu sformatowanego przy użyciu określonego stylu. Na przykład może zaistnieć potrzeba zidentyfikowania określonych rodzajów treści w dokumencie, takich jak przykłady, tytuły, odniesienia, słowa kluczowe, nazwiska postaci i studia przypadków.
Aby pójść o kilka kroków dalej, można to również wykorzystać do wykorzystania struktury dokumentu, zdefiniowanej przez używane w nim style, w celu ponownego wykorzystania dokumentu do innego wyniku, takiego jak HTML. W ten sposób budowana jest dokumentacja Aspose, wystawiając Aspose.Words na próbę. Narzędzie zbudowane przy użyciu Aspose.Words pobiera źródłowe dokumenty Worda i dzieli je na tematy na określonych poziomach nagłówków. Za pomocą Aspose.Words tworzony jest plik XML, który służy do budowania drzewa nawigacyjnego widocznego po lewej stronie. Następnie Aspose.Words konwertuje każdy temat na HTML.
Rozwiązanie polegające na pobieraniu tekstu sformatowanego przy użyciu określonych stylów w dokumencie programu Word jest zazwyczaj ekonomiczne i proste przy użyciu protokołu Aspose.Words.
Rozwiązanie
Aby zilustrować, jak łatwo Aspose.Words radzi sobie z pobieraniem treści na podstawie stylów, spójrzmy na przykład. W tym przykładzie pobierzemy tekst sformatowany przy użyciu określonego stylu akapitowego i stylu znakowego z przykładowego dokumentu programu Word. Na wyższym poziomie będzie to obejmować: # Otwarcie dokumentu programu Word przy użyciu klasy Document. # Pobieranie kolekcji wszystkie akapity i wszystkie przebiegi w dokumencie.# Wybieranie tylko wymaganych akapitów i przebiegów. W szczególności pobierzemy tekst sformatowany w stylu akapitu “Nagłówek 1” i stylu znaku “Intensywne podkreślenie” z tego przykładowego dokumentu programu Word.
W tym przykładowym dokumencie tekst sformatowany w stylu akapitu “Nagłówek 1” to “Wstaw tabulator”, “Szybkie style” i “Motyw”, a tekst sformatowany w stylu znaku “Intensywne podkreślenie” to kilka wystąpień koloru niebieskiego, kursywą i pogrubionym tekstem, np. “galerie” i “wygląd ogólny”.
Kod
Implementacja zapytania opartego na stylu jest dość prosta w obiektowym modelu dokumentu Aspose.Words, ponieważ wykorzystuje po prostu narzędzia, które już istnieją. W tym rozwiązaniu zaimplementowano dwie metody klasowe: # ParagraphsByStyleName – Ta metoda pobiera tablicę tych akapitów w dokument mający określoną nazwę stylu.# RunsByStyleName – ta metoda pobiera tablicę przebiegów w dokumencie, które mają określoną nazwę stylu. Obie te metody są bardzo podobne, a jedyną różnicą są typy węzłów i reprezentacja stylu informacje w węzłach akapitu i uruchamiania. Oto implementacja ParagraphsByStyleName: Poniżej przykład znajdź wszystkie akapity sformatowane przy użyciu określonego stylu.
W tej implementacji wykorzystano także metodę Document.GetChildNodes
klasy Document
, która zwraca kolekcję wszystkich węzłów określonego typu, czyli w tym przypadku we wszystkich akapitach.
Należy pamiętać, że drugi parametr metody Document.GetChildNodes jest ustawiony na true. Zmusza to metodę Document.GetChildNodes do rekurencyjnego wybierania wszystkich węzłów podrzędnych, zamiast wybierania tylko bezpośrednich węzłów podrzędnych.
Warto również zauważyć, że kolekcja akapitów nie powoduje natychmiastowego narzutu, ponieważ akapity są ładowane do tej kolekcji tylko wtedy, gdy uzyskujesz dostęp do ich elementów. Następnie wystarczy przejrzeć kolekcję za pomocą standardowego operatora foreach i dodać akapity posiadające określony styl do tablicy paragrafówWithStyle. Nazwę stylu Paragraph
można znaleźć we właściwości Style.Name obiektu Paragraph.ParagraphFormat. Implementacja RunsByStyleName jest prawie taka sama, chociaż oczywiście używamy NodeType.Run do pobierania węzłów wykonawczych. Właściwość Font.Style obiektu Run służy do uzyskiwania dostępu do informacji o stylu w węzłach Run. Poniżej przykład znajdź wszystkie przebiegi sformatowane przy użyciu określonego stylu.
Gdy oba zapytania są zaimplementowane, wystarczy przekazać obiekt dokumentu i określić nazwy stylów treści, którą chcesz pobrać: Poniżej przykładowe uruchamianie zapytań i wyświetlanie wyników. Możesz pobrać plik szablonu tego przykładu z Tutaj.
Wynik końcowy
Gdy wszystko zostanie wykonane, uruchomienie przykładu wyświetli następujące dane wyjściowe:
Jak widać, jest to bardzo prosty przykład, pokazujący liczbę i treść zebranych akapitów i przebiegów w przykładowym dokumencie Word.
Skopiuj wszystkie style z szablonu
Zdarzają się przypadki, gdy chcesz skopiować wszystkie style z jednego dokumentu do drugiego. Możesz użyć metody Document.CopyStylesFromTemplate
, aby skopiować style z określonego szablonu do dokumentu. Kiedy style są kopiowane z szablonu do dokumentu, style o podobnych nazwach w dokumencie są ponownie definiowane w celu dopasowania do opisów stylów w szablonie. Unikalne style z szablonu są kopiowane do dokumentu. Unikalne style w dokumencie pozostają nienaruszone. Przykład Below code pokazuje, jak skopiować style z jednego dokumentu do drugiego.
Jak manipulować właściwościami motywu
Dodaliśmy podstawowy API w Aspose.Words, aby uzyskać dostęp do właściwości motywu dokumentu. Na razie ten API zawiera następujące obiekty publiczne:
- Temat
- Czcionki tematyczne
- Kolory motywu
Oto jak uzyskać właściwości motywu:
A oto jak ustawić właściwości motywu: