Praca z sekcjami
Czasami potrzebny jest dokument, który nie ma tego samego formatowania na wszystkich stronach. Na przykład może zaistnieć potrzeba zmodyfikowania formatu numeracji stron, zmiany rozmiaru i orientacji strony lub ustawienia pierwszej strony dokumentu jako strony tytułowej bez żadnej numeracji. Można 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 w formatowaniu, 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.
Co to jest sekcja i podział sekcji
Sekcje dokumentu są reprezentowane przez klasy Section i SectionCollection. Obiekty przekroju są bezpośrednimi elementami podrzędnymi węzła Document i można uzyskać do nich dostęp za pośrednictwem właściwości Sections. Możesz zarządzać tymi węzłami, korzystając z niektórych metod, takich jak Remove, Add, IndexOf i innych.
Podział sekcji to opcja, która dzieli strony dokumentu na sekcje z możliwością dostosowania układów.
Rodzaje podziału sekcji
Aspose.Words umożliwia dzielenie i formatowanie dokumentów przy użyciu różnych podziałów sekcji wyliczenia BreakType:
- SekcjaPrzerwaCiągła
- SekcjaPrzerwaNowaKolumna
- SekcjaBreakNewPage
- SekcjaBreakEvenPage
- SekcjaBreakOddPage
Możesz także użyć wyliczenia SectionStart, aby wybrać typ podziału, który ma zastosowanie tylko dla pierwszej sekcji, taki jak NewColumn, NewPage, EvenPage i OddPage.
Zarządzaj sekcją
Ponieważ sekcja jest normalnym węzłem złożonym, manipulację całym węzłem API można wykorzystać do manipulowania sekcjami: dodawania, usuwania i innych operacji na sekcjach. Więcej o węzłach przeczytasz w artykule Aspose.Words Document Object Model (DOM).
Z drugiej strony formatu DocumentBuilder
API można także używać 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 usunąć 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 na drugą w dokumencie, musisz uzyskać indeks tej sekcji. Aspose.Words umożliwia uzyskanie pozycji sekcji z SectionCollection przy użyciu właściwości Item. 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 wykonać iterację po elementach podrzędnych 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 przekroju, możesz wybrać tryb układu przekroju za pomocą wyliczenia SectionLayoutMode:
- Domyślny
- Siatka *Siatka liniowa
- SnapToChars
Poniższy przykład kodu pokazuje, jak ograniczyć liczbę wierszy, które może zawierać każda strona:
Edytuj sekcję
Po dodaniu nowej sekcji do dokumentu nie będzie żadnej 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 do dokumentu węzeł Treść (lub HeaderFooter), a następnie doda do niego Akapit.
Poniższy przykład kodu pokazuje, jak przygotować nowy węzeł sekcji przy użyciu EnsureMinimum:
Dołącz lub dołącz 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ć treść 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 pomiędzy dokumentami przy użyciu metody ImportNode.
Poniższy przykład kodu pokazuje, jak kopiować sekcje między dokumentami:
Pracuj z nagłówkiem i stopką sekcji
Podstawowe zasady wyświetlania nagłówka lub stopki dla każdej sekcji są dość proste:
- Jeżeli sekcja nie posiada własnych nagłówków/stopek określonego typu, to jest ona pobierana z poprzedniej sekcji.
- O rodzaju nagłówka/stopki wyświetlanej na stronie decydują ustawienia sekcji “Inna pierwsza strona” oraz “Różne strony parzyste i nieparzyste” – jeżeli są one wyłączone, tytuły 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 obiektów HeaderFooter z dokumentu, możesz skorzystać z 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 usuwającego wszystkie kształty ze wszystkich nagłówków i stopek w sekcji:
Dostosuj właściwości strony w sekcji
Przed wydrukowaniem strony lub dokumentu możesz chcieć dostosować i zmodyfikować rozmiar i układ pojedynczej strony lub całego dokumentu. Dzięki ustawieniom strony możesz zmieniać ustawienia stron dokumentu, takie jak marginesy, orientacja i rozmiar, w celu drukowania różnych pierwszych stron lub stron nieparzystych.
Aspose.Words umożliwia dostosowywanie właściwości strony i sekcji przy użyciu 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 modyfikować właściwości strony we wszystkich sekcjach: