Praca z sekcjami
Czasami potrzebujesz dokumentu, który nie ma tego samego formatowania na wszystkich stronach. Na przykład może być konieczna modyfikacja formatów numerów stron, inny rozmiar i orientacja strony lub pierwsza strona dokumentu jako strona tytułowa bez numeracji. Możesz to osiągnąć za pomocą sekcji.
Sekcje to węzły poziomu, które kontrolują nagłówki i stopki, orientację, kolumny, marginesy, formatowanie numerów stron i inne.
Aspose.Words umożliwia zarządzanie sekcjami, dzielenie dokumentu na sekcje i wprowadzanie zmian formatowania, które dotyczą tylko określonej sekcji. Aspose.Words przechowuje informacje o formatowaniu sekcji, takie jak nagłówki i stopki, ustawienia strony i ustawienia kolumn w podziale sekcji.
W tym artykule wyjaśniono, jak pracować z sekcjami i podziałami sekcji.
Jaka jest sekcja i podział sekcji
Sekcje dokumentu są reprezentowane przez klasy Section i SectionCollection. Obiekty sekcji są bezpośrednimi dziećmi węzła Document i można do nich uzyskać dostęp za pośrednictwem właściwości Sections. Możesz zarządzać tymi węzłami za pomocą niektórych metod, takich jak Remove, Add, IndexOf, i inni.
Podział sekcji to opcja, która dzieli strony dokumentu na sekcje z konfigurowalnymi układami.
Rodzaje podziału sekcji
Aspose.Words umożliwia dzielenie i formatowanie dokumentów przy użyciu różnych podziałów sekcji wyliczenia BreakType:
- SectionBreakContinuous
- SectionBreakNewColumn
- SectionBreakNewPage
- SectionBreakEvenPage
- SectionBreakOddPage
Możesz także użyć wyliczenia SectionStart, aby wybrać typ podziału, który ma zastosowanie tylko dla pierwszej sekcji, takiej jak NewColumn, NewPage, EvenPage, i OddPage.
Zarządzaj sekcją
Ponieważ sekcja jest normalnym węzłem złożonym, Cała manipulacja węzłem API może być używana do manipulowania sekcjami: dodawania, usuwania i innych operacji na sekcjach. Możesz przeczytać więcej o węzłach w artykule Aspose.Words Obiektowy Model Dokumentu (DOM).
Z drugiej strony możesz również użyć DocumentBuilder
API do pracy z sekcjami. W tym artykule skupimy się na tym konkretnym sposobie pracy z sekcjami.
Wstaw lub Usuń podział sekcji
Aspose.Words umożliwia wstawienie podziału sekcji do tekstu przy użyciu metody InsertBreak.
Poniższy przykład kodu pokazuje, jak wstawić podział sekcji do dokumentu:
Użyj metody Remove, aby usunąć podział sekcji. Jeśli nie musisz usuwać określonego podziału sekcji, a zamiast tego Usuwać zawartość tej sekcji,możesz użyć metody ClearContent.
Poniższy przykład kodu pokazuje, jak usunąć podziały sekcji:
Przenieś sekcję
Jeśli chcesz przenieść sekcję z jednej pozycji do drugiej w dokumencie, musisz uzyskać indeks tej sekcji. Aspose.Words pozwala uzyskać pozycję sekcji z SectionCollection. Możesz użyć właściwości Sections, aby uzyskać wszystkie sekcje w dokumencie. Ale jeśli chcesz uzyskać tylko pierwszą sekcję, możesz użyć właściwości FirstSection.
Poniższy przykład kodu pokazuje, jak uzyskać dostęp do pierwszej sekcji i iterować przez elementy potomne węzła złożonego:
Określ układ sekcji
Czasami chcesz, aby twój dokument wyglądał lepiej, tworząc kreatywne układy dla różnych sekcji dokumentu. Jeśli chcesz określić typ bieżącej siatki sekcji, możesz wybrać tryb układu sekcji za pomocą wyliczenia SectionLayoutMode:
- Default
- Siatka
- LineGrid
- SnapToChars
Poniższy przykład kodu pokazuje, jak ograniczyć liczbę wierszy, które może mieć każda strona:
Edytuj sekcję
Po dodaniu nowej sekcji do dokumentu nie będzie treści ani akapitu, które można edytować. Aspose.Words pozwala zagwarantować, że sekcja zawiera treść z co najmniej jednym akapitem przy użyciu metody EnsureMinimum – automatycznie doda węzeł treści (lub HeaderFooter) do dokumentu, a następnie doda do niego akapit.
Poniższy przykład kodu pokazuje, jak przygotować nowy węzeł sekcji za pomocą EnsureMinimum:
Dołącz lub dodaj zawartość
Jeśli chcesz narysować jakiś kształt lub dodać tekst lub obraz na początku/końcu sekcji, możesz użyć metod AppendContent i PrependContent klasy Section.
Poniższy przykład kodu pokazuje, jak dołączyć zawartość istniejącej sekcji:
Sklonuj sekcję
Aspose.Words umożliwia powielenie sekcji poprzez utworzenie jej pełnej kopii przy użyciu metody Clone.
Poniższy przykład kodu pokazuje, jak sklonować pierwszą sekcję w dokumencie:
Kopiuj sekcje między dokumentami
W niektórych przypadkach możesz mieć duże dokumenty z wieloma sekcjami i chcesz skopiować zawartość sekcji z jednego dokumentu do drugiego.
Aspose.Words umożliwia kopiowanie sekcji między dokumentami przy użyciu metody ImportNode.
Poniższy przykład kodu pokazuje, jak kopiować sekcje między dokumentami:
Praca z nagłówkiem sekcji i stopką
Podstawowe zasady wyświetlania nagłówka lub stopki dla każdej sekcji są dość proste:
- Jeśli sekcja nie ma własnych nagłówków/stopek określonego typu, jest pobierana z poprzedniej sekcji.
- Typ nagłówka / stopki wyświetlanej na stronie jest kontrolowany przez ustawienia sekcji" Inna pierwsza strona “i” różne strony nieparzyste i Parzyste " – jeśli są wyłączone, tytuły własne sekcji są ignorowane.
Poniższy przykład kodu pokazuje, jak utworzyć 2 sekcje z różnymi nagłówkami:
Jeśli chcesz usunąć tekst nagłówków i stopek bez usuwania HeaderFooter obiektów w dokumencie,możesz użyć metody ClearHeadersFooters. Ponadto możesz użyć metody DeleteHeaderFooterShapes, aby usunąć wszystkie kształty z nagłówków i stopek w dokumencie.
Poniższy przykład kodu pokazuje, jak wyczyścić zawartość wszystkich nagłówków i stopek w sekcji:
Poniższy przykład kodu, jak usunąć wszystkie kształty ze wszystkich stopek nagłówków w sekcji:
Dostosuj Właściwości strony w sekcji
Przed wydrukowaniem strony lub dokumentu możesz dostosować i zmodyfikować rozmiar i układ pojedynczej strony lub całego dokumentu. Dzięki konfiguracji strony możesz zmienić ustawienia stron dokumentu, takie jak marginesy, Orientacja i rozmiar, aby drukować różne strony pierwsze lub strony nieparzyste.
Aspose.Words umożliwia dostosowanie właściwości strony i sekcji za pomocą klasy PageSetup.
Poniższy przykład kodu pokazuje, jak ustawić takie właściwości, jak rozmiar strony i orientacja dla bieżącej sekcji:
Poniższy przykład kodu pokazuje, jak zmodyfikować właściwości strony we wszystkich sekcjach: