Praca ze stylami
Klasa StyleCollection służy do zarządzania wbudowanymi i stosowania ustawień zdefiniowanych przez użytkownika do stylów.
Jak wyodrębnić zawartość na podstawie stylów
Na prostym poziomie pobieranie zawartości na podstawie stylów z dokumentu Word może być przydatne do identyfikacji, listy i liczenia akapitów i przebiegów tekstu sformatowanego w określonym stylu. Na przykład może być konieczne zidentyfikowanie określonych rodzajów treści w dokumencie, takich jak przykłady, tytuły, odniesienia, słowa kluczowe, nazwy figur i studia przypadków.
Aby zrobić to o kilka kroków dalej, można to również wykorzystać do wykorzystania struktury dokumentu, zdefiniowanej przez używane style, do ponownego przeznaczenia dokumentu na inne dane wyjściowe, takie jak HTML. W rzeczywistości w ten sposób budowana jest dokumentacja Aspose, testując Aspose.Words. Narzędzie zbudowane przy użyciu Aspose.Words pobiera dokumenty źródłowe Word i dzieli je na tematy na określonych poziomach nagłówków. Plik XML jest tworzony przy użyciu Aspose.Words, który służy do zbudowania drzewa nawigacji widocznego po lewej stronie. A następnie Aspose.Words konwertuje każdy temat na HTML.
Rozwiązanie do pobierania tekstu sformatowanego z określonymi stylami w dokumencie Word jest zazwyczaj ekonomiczne i proste przy użyciu Aspose.Words.
Rozwiązanie
Aby zilustrować, jak łatwo Aspose.Words obsługuje pobieranie treści na podstawie stylów, spójrzmy na przykład. W tym przykładzie pobierzemy tekst sformatowany za pomocą określonego stylu akapitu i stylu znaku z przykładowego dokumentu Word. Na wysokim poziomie będzie to obejmować:
- Otwieranie dokumentu Word przy użyciu klasy
Document
. - Pobieranie kolekcji wszystkich akapitów i wszystkich przebiegów w dokumencie.
- Wybieranie tylko wymaganych akapitów i przebiegów. W szczególności pobierzemy tekst sformatowany za pomocą stylu akapitu “Heading 1 “i stylu znaku” intensywny nacisk " z tego przykładowego dokumentu Word.
W tym przykładowym dokumencie tekst sformatowany za pomocą stylu akapitu “Heading 1 " to “Wstaw kartę”, “Szybkie style” i “motyw”, a tekst sformatowany za pomocą stylu znaków “intensywny nacisk” to kilka wystąpień niebieskiego, kursywą, pogrubiony tekst, taki jak “galerie” i “ogólny wygląd”.
Kodeks
Implementacja zapytania opartego na stylu jest dość prosta w modelu obiektowym dokumentu Aspose.Words, ponieważ po prostu używa narzędzi, które już są na miejscu. Dla tego rozwiązania zaimplementowano dwie metody klas:# ParagraphsByStyleName - ta metoda pobiera tablicę tych akapitów w dokumencie, które mają określoną nazwę stylu.# RunsByStyleName - ta metoda pobiera tablicę tych uruchomień w dokumencie, które mają określoną nazwę stylu. Obie te metody są bardzo podobne, jedynymi różnicami są typy węzłów i reprezentacja informacji o stylu w akapicie i węzłach uruchamiania. Oto implementacja ParagraphsByStyleName. Poniżej przykład Znajdź wszystkie akapity sformatowane w określonym stylu.
Ta implementacja używa również metody Document.GetChildNodes
klasy Document
, która zwraca zbiór wszystkich węzłów o określonym typie, który w tym przypadku we wszystkich akapitach.
Zauważ, że drugi parametr metody Document.GetChildNodes jest ustawiony na true. Zmusza to metodę Document.GetChildNodes do rekurencyjnego wybierania spośród wszystkich węzłów podrzędnych, zamiast wybierania tylko bezpośrednich elementów podrzędnych.
Warto również zauważyć, że kolekcja akapitów nie tworzy natychmiastowego narzutu, ponieważ akapity są ładowane do tej kolekcji tylko wtedy, gdy uzyskujesz dostęp do elementów w nich zawartych. Następnie wszystko, co musisz zrobić, to przejść przez kolekcję, używając standardu dla każdego operatora i dodać akapity o określonym stylu do tablicy paragraphsWithStyle. Nazwę stylu Paragraph
można znaleźć w stylu. Właściwość nazwy obiektu Paragraph.ParagraphFormat
. Implementacja RunsByStyleName jest prawie taka sama, chociaż oczywiście używamy NodeType.Run
do pobierania węzłów run. Właściwość Font.Style
obiektu Run
służy do uzyskiwania dostępu do informacji o stylu w węzłach Run. Przykład below code Znajdź wszystkie przebiegi sformatowane w określonym stylu.
Po zaimplementowaniu obu zapytań wystarczy przekazać obiekt dokumentu i określić nazwy stylów treści, którą chcesz pobrać: poniżej przykład uruchom zapytania i wyświetl wyniki. Możesz pobrać plik szablonu tego przykładu stąd.
Efekt Końcowy
Gdy wszystko zostanie zrobione, uruchomienie próbki wyświetli następujące dane wyjściowe:
Jak widać, jest to bardzo prosty przykład, pokazujący liczbę i tekst zebranych akapitów i działa w przykładowym dokumencie Word.
Jak wstawić i pracować z polem spis treści
Często będziesz pracować z Dokumentami zawierającymi spis treści (TOC). Za pomocą Aspose.Words możesz wstawić własny spis treści lub całkowicie przebudować istniejący spis treści w dokumencie za pomocą zaledwie kilku wierszy kodu. W tym artykule opisano, jak pracować z polem spis treści i pokazano:
- Jak wstawić nowy
TOC
- Zaktualizuj nowy lub istniejący TOCs w dokumencie.
- Określ przełączniki, aby kontrolować formatowanie i ogólną strukturę F TOC.
- Jak zmodyfikować style i wygląd spisu treści.
- Jak usunąć całe pole
TOC
wraz ze wszystkimi wpisami z dokumentu.
Wstaw Pola TC
Często określony wiersz tekstu jest oznaczony dla TOC
i jest oznaczony polem TC
. Prostym sposobem na zrobienie tego w MS Word jest podświetlenie tekstu i naciśnięcie ALT+SHIFT+O. Spowoduje to automatyczne utworzenie pola TC
przy użyciu zaznaczonego tekstu. Tę samą technikę można osiągnąć za pomocą kodu. Poniższy kod znajdzie tekst pasujący do danych wejściowych i wstawi pole TC
w tej samej pozycji co tekst. Kod oparty jest na tej samej technice zastosowanej w artykule. Poniższy przykład pokazuje, jak znaleźć i wstawić pole TC
w tekście w dokumencie.
Zmodyfikuj spis treści
Zmień formatowanie stylów
Formatowanie wpisów w TOC
nie wykorzystuje oryginalnych stylów oznaczonych wpisów, zamiast tego każdy poziom jest formatowany przy użyciu równoważnego stylu TOC
. Na przykład pierwszy poziom w TOC
jest sformatowany w stylu TOC1, drugi poziom sformatowany w stylu TOC2 i tak dalej. Oznacza to, że aby zmienić wygląd TOC
, te style muszą zostać zmodyfikowane. W Aspose.Words Style te są reprezentowane przez niezależne od ustawień regionalnych od StyleIdentifier.TOC1
do StyleIdentifier.TOC9
i można je pobrać z kolekcji Document.Styles
za pomocą tych identyfikatorów. Po pobraniu odpowiedniego stylu dokumentu formatowanie tego stylu można zmodyfikować. Wszelkie zmiany w tych stylach zostaną automatycznie odzwierciedlone na TOCs w dokumencie. Przykład below code zmienia właściwość formatowania używaną w stylu pierwszego poziomu TOC
.
Warto również zauważyć, że każde bezpośrednie formatowanie akapitu (zdefiniowane w samym akapicie, a nie w stylu) oznaczone jako TOC
zostanie skopiowane we wpisie w TOC. Na przykład, jeśli styl Heading 1 jest używany do oznaczania zawartości dla TOC
i ten styl ma formatowanie pogrubione, podczas gdy akapit ma również formatowanie kursywą bezpośrednio do niego zastosowane. Wynikowy wpis TOC
nie będzie pogrubiony, ponieważ jest to część formatowania stylu, ale będzie kursywą, ponieważ jest to bezpośrednio sformatowane w akapicie. Możesz także kontrolować formatowanie separatorów używanych między każdym wpisem a numerem strony. Domyślnie jest to linia przerywana, która jest rozłożona na numerację stron za pomocą znaku tabulatora i prawego ogranicznika tabulatora ustawionego blisko prawego marginesu.
Korzystając z klasy Style
pobranej dla określonego poziomu TOC
, który chcesz zmodyfikować, możesz również zmodyfikować sposób ich wyświetlania w dokumencie. Aby zmienić wygląd, najpierw należy wywołać Style.ParagraphFormat
, Aby pobrać formatowanie akapitu dla stylu. Z tego można pobrać tabulatory, wywołując ParagraphFormat.TabStops
i modyfikując odpowiedni tabulator. Korzystając z tej samej techniki, samą kartę można przenieść lub całkowicie usunąć. Przykład below code pokazuje, jak zmodyfikować położenie prawego tabulatora w paragrafach powiązanych z TOC
. Możesz pobrać plik szablonu tego przykładu stąd.
Usuwanie spisu treści z dokumentu
Spis treści można usunąć z dokumentu, usuwając wszystkie węzły znajdujące się między węzłem FieldStart
i FieldEnd pola TOC
. Poniższy kod to pokazuje. Usunięcie pola TOC
jest prostsze niż zwykłe pole, ponieważ nie śledzimy zagnieżdżonych pól. Zamiast tego sprawdzamy, czy węzeł FieldEnd
jest typu FieldType.FieldTOC
, co oznacza, że napotkaliśmy koniec bieżącego TOC. Ta technika może być użyta w tym przypadku bez martwienia się o zagnieżdżone pola, ponieważ możemy założyć, że każdy prawidłowo utworzony dokument nie będzie miał w pełni zagnieżdżonego pola TOC
w innym polu TOC
. Po pierwsze, węzły FieldStart
każdego TOC
są gromadzone i przechowywane. Określony TOC
jest następnie wyliczany, aby wszystkie węzły w polu były odwiedzane i przechowywane. Węzły są następnie usuwane z dokumentu. Przykład below code pokazuje, jak usunąć określony TOC
z dokumentu. Możesz pobrać plik szablonu tego przykładu stąd.
Wstaw Separator stylów, aby umieścić różne style akapitów
Separator stylów można dodać na końcu akapitu za pomocą skrótu klawiaturowego Ctrl + Alt + Enter do MS Word. Ta funkcja pozwala na dwa różne style akapitów używane w jednym logicznym drukowanym akapicie. Jeśli chcesz, aby jakiś tekst z początku określonego nagłówka pojawił się w spisie treści, ale nie chcesz, aby cały nagłówek znajdował się w spisie treści, możesz użyć tej funkcji. Przykład below code pokazuje, jak wstawić separator stylów, aby umieścić różne style akapitów.
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. Gdy style są kopiowane z szablonu do dokumentu, Style o podobnych nazwach w dokumencie są przedefiniowane, aby pasowały 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 kopiować style z jednego dokumentu do drugiego.