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.

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

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.

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:

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

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.