Πώς να εργαστείτε με ενότητες στο .NET

Πώς να εργαστείτε με ενότητες στο .NET

Αυτός ο οδηγός δείχνει πώς να δημιουργήσετε διακοπές ενότητας, να διαμορφώσετε τη ρύθμιση σελίδας και να διαχειριστείτε τις κεφαλίδες, τα υποσέλιδα και τη διάταξη πολλαπλών στηλών σε Aspose.Words FOSS για .NET, χρησιμοποιώντας το Section and PageSetup κλάσεις. Καλύπτει την ανάγνωση των ενοτήτων που υπάρχουν ήδη σε ένα έγγραφο, την έναρξη μιας νέας ενότητας με DocumentBuilder, διαμόρφωση διαστάσεων και περιθωρίων σελίδας, προσθήκη παραλλαγών κεφαλίδας και υποσέλιδου, και διάταξη του κυρίως κειμένου σε πολλαπλές στήλες.

Οδηγός βήμα-βήμα

Βήμα 1: Εγκατάσταση του πακέτου

Aspose.Words FOSS for .NET δεν έχει ακόμη δημοσιεύσει ένα πακέτο NuGet — δημιουργήστε τη βιβλιοθήκη από την πηγή αντί αυτού. Κλωνοποιήστε το https://github.com/aspose-words-foss/Aspose.Words-FOSS-for-.NET.git, έπειτα δημιουργήστε το Aspose.Words.sln σε διαμόρφωση Release με το SDK .NET και αναφέρετε το προκύπτον αρχείο συναρμολόγησης Aspose.Words από το έργο σας. Η βιβλιοθήκη στοχεύει το .NET Standard 2.0, έτσι λειτουργεί στο .NET Framework 4.6.2+ και .NET 6/8/10.


Βήμα 2: Εισαγωγή των απαιτούμενων κλάσεων

Προσθέστε μια οδηγία using Aspose.Words; — Section, PageSetup, HeaderFooter και οι σχετικοί enum που χρησιμοποιούνται σε αυτόν τον οδηγό βρίσκονται άμεσα στον χώρο ονομάτων Aspose.Words μαζί με Document και DocumentBuilder.


Βήμα 3: Διαβάστε τις Ενότητες που Υπάρχουν Ήδη σε Ένα Έγγραφο

Document.Sections επιστρέφει ένα SectionCollection που περιέχει κάθε Section στο έγγραφο, το καθένα ένα CompositeNode που είναι επίσης μέρος του συνολικού δένδρου κόμβων. Document.FirstSection και Document.LastSection παρέχουν άμεση πρόσβαση στις οριακές ενότητες χωρίς επανάληψη της συλλογής. Κάθε Section περιέχει ένα Body — προσεγγίζεται με τον ίδιο τρόπο όπως οποιοδήποτε άλλο Story — και, όταν υπάρχει, το περιεχόμενο κεφαλίδας και υποσέλιδου που προέρχεται μέσω Section.HeadersFooters.


Βήμα 4: Ξεκινήστε μια Νέα Ενότητα με Διακοπή Ενότητας

Call DocumentBuilder.InsertBreak(BreakType) στο δρομέα για να ξεκινήσετε μια νέα ενότητα. Περνάτε BreakType.SectionBreakNewPage όταν η νέα ενότητα πρέπει πάντα να ξεκινά σε καθαρή σελίδα, BreakType.SectionBreakContinuous όταν χρειάζεται μόνο αλλαγή στη ρύθμιση σελίδας (για παράδειγμα, αλλαγή σε κείμενο πολλαπλών στηλών) χωρίς να εξαναγκάζει διακοπή σελίδας, ή BreakType.SectionBreakNewColumn, SectionBreakEvenPage, και SectionBreakOddPage για τις άλλες συμπεριφορές έναρξης τμημάτων που υποστηρίζει το Word. Ένα διάλειμμα τμήματος μεταφέρει τη μορφοποίηση για το τμήμα που follows το, ώστε να ορίσετε PageSetup ιδιότητες στο νέο Section – όχι αυτό που προηγείται – μόλις το διάλειμμα εισαχθεί. DocumentBuilder.MoveToSection(sectionIndex) μετακινεί τον δρομέα στην αρχή του σώματος ενός συγκεκριμένου τμήματος, και PageSetup.SectionStart διαβάζει ή ορίζει το SectionStart τύπο διαλείμματος που έχει ήδη καταγραφεί σε ένα υπάρχον τμήμα.


Βήμα 5: Διαμορφώστε τις Διαστάσεις Σελίδας και τα Περιθώρια

Κάθε Section.PageSetup είναι μια παρουσία του PageSetup. Ορίστε τα PageWidth, PageHeight, LeftMargin, RightMargin, TopMargin, BottomMargin και Gutter για τις διαστάσεις και τα περιθώρια της σελίδας, ή εκχωρήστε μια προεπιλογή Margins απευθείας στο PageSetup.Margins. Τα Orientation και PaperSize ελέγχουν τον προσανατολισμό της σελίδας και το μέγεθος του χαρτιού. Τα περιγράμματα σελίδας διαμορφώνονται με το Borders (ένα BorderCollection), το BorderAppliesTo (PageBorderAppliesTo), το BorderDistanceFrom (PageBorderDistanceFrom), το BorderAlwaysInFront, το BorderSurroundsHeader και το BorderSurroundsFooter. Καλέστε το PageSetup.ClearFormatting() για να επαναφέρετε τη ρύθμιση σελίδας μιας ενότητας στις προεπιλογές πριν τη διαμορφώσετε από την αρχή.


Βήμα 6: Προσθέστε και Συνδέστε Κεφαλίδες και Υποσέλιδα

Section.HeadersFooters είναι ένα HeaderFooterCollection με τυποποιημένους προσπελάτες — HeaderPrimary, HeaderFirst, HeaderEven, FooterPrimary, FooterFirst, FooterEven — μαζί με το GetByHeaderFooterType() για αναζήτηση με HeaderFooterType και Add() ώστε να προσθέσετε ένα νέο. Κάθε HeaderFooter είναι ένα Story, σημαδοποιημένο IsHeader και IsLinkedToPrevious. Ενεργοποιήστε το PageSetup.DifferentFirstPageHeaderFooter ή το PageSetup.OddAndEvenPagesHeaderFooter πριν προσθέσετε την αντίστοιχη παραλλαγή HeaderFirst/FooterFirst ή HeaderEven/FooterEven — η σημαία και η παραλλαγή ισχύουν μόνο μαζί. Καλέστε το HeaderFooterCollection.LinkToPrevious() για να επανασυνδέσετε την κεφαλίδα ή το υποσέλιδο μιας ενότητας ώστε να κληρονομήσει το περιεχόμενο της προηγούμενης ενότητας, ή για να το αποσυνδέσετε ώστε η νέα ενότητα να ξεκινά με ανεξάρτητο περιεχόμενο.


Βήμα 7: Διάταξη κειμένου σώματος σε πολλαπλές στήλες

PageSetup.TextColumns επιστρέφει ένα TextColumnCollection για την ενότητα. Καλέστε το SetCount() με τον αριθμό των στηλών που πρέπει να ρέει το κείμενο του σώματος, έπειτα προσαρμόστε τα EvenlySpaced, Spacing, LineBetween και Width για να ελέγξετε πώς θα διατεθούν οι στήλες. Μόλις η συλλογή περιέχει περισσότερες από μία στήλες, τα μεμονωμένα TextColumn εκθέτουν τα δικά τους Width και SpaceAfter.


Βήμα 8: Εκκαθάριση ή μαζική επεξεργασία περιεχομένου ενότητας

Section.AppendContent() και PrependContent() αντιγράφουν το περιεχόμενο σώματος μιας άλλης ενότητας σε αυτήν· ClearContent() αδειάζει το σώμα μιας ενότητας μαζικά. ClearHeadersFooters() και DeleteHeaderFooterShapes() καθαρίζουν το περιεχόμενο της κεφαλίδας και του υποσέλιδου σε όλη την ενότητα χωρίς να αφαιρούν την ενότητα αυτή.

Συνηθισμένα προβλήματα και διορθώσεις

Η ρύθμιση της σελίδας μιας νέας ενότητας δεν ταιριάζει με αυτά που όρισα PageSetup ορίστηκε στο λάθος Section παράδειγμα. Ένα διάλειμμα ενότητας μεταφέρει τη μορφοποίηση για την ενότητα που ακολουθεί – ορίστε PageSetup στην ενότητα που ακολουθεί InsertBreak(), όχι αυτή πριν από αυτή.

Το περιεχόμενο της κεφαλίδας ή του υποσέλιδου από την προηγούμενη ενότητα εμφανίζεται απροσδόκητα σε μια νέα Η κεφαλίδα ή το υποσέλιδο της νέας ενότητας είναι ακόμα συνδεδεμένα με την προηγούμενη ενότητα. Καλέστε HeaderFooterCollection.LinkToPrevious(false), ή προσθέστε ξεχωριστό περιεχόμενο κεφαλίδας/υποσέλιδου στη νέα ενότητα, για να το αποσυνδέσετε.

Η κεφαλίδα/υποσέλιδο πρώτης σελίδας ή ζυγών σελίδων αγνοείται DifferentFirstPageHeaderFooter or OddAndEvenPagesHeaderFooter is false, ή η αντιστοιχία HeaderFooterType η παραλλαγή δεν υπάρχει στο Section.HeadersFooters. Ορίστε τη σημαία στο PageSetup και προσθέστε μαζί την αντίστοιχη παραλλαγή κεφαλίδας/υποσέλιδου.

Η διάταξη πολλαπλών στηλών δεν εφαρμόζεται TextColumns.SetCount() κλήθηκε με τιμή ενός, ή στην λάθος ενότητα PageSetup. Κλήση SetCount() με περισσότερες από μία στήλες στο τμήμα-στόχο PageSetup.TextColumns.

Διάλειμμα ενότητας εισήχθη στη λανθασμένη θέση του εγγράφου DocumentBuilder.InsertBreak(BreakType) εισάγει στην τρέχουσα θέση του δρομέα του builder. Χρησιμοποιήστε DocumentBuilder.MoveToSection() ή άλλα μέλη τοποθέτησης δρομέα του builder για να τοποθετήσετε τον δρομέα πριν από την κλήση InsertBreak().

Συχνές Ερωτήσεις

Πώς μπορώ να ξεκινήσω μια νέα ενότητα χωρίς να ξεκινήσω νέα σελίδα;

Εισάγετε μια διακοπή SectionBreakContinuous με DocumentBuilder.InsertBreak(BreakType.SectionBreakContinuous).

Πώς μπορώ να δώσω σε μια ενότητα τα δικά της περιθώρια και προσανατολισμό;

Εισάγετε μια διακοπή ενότητας, μετά ορίστε τα TopMargin, BottomMargin, LeftMargin, RightMargin, Orientation και PaperSize στο PageSetup της νέας ενότητας.

Πώς μπορώ να κάνω την πρώτη σελίδα μιας ενότητας να χρησιμοποιεί διαφορετική κεφαλίδα;

Ορίστε το PageSetup.DifferentFirstPageHeaderFooter = true σε αυτήν την ενότητα και προσθέστε ένα HeaderFooter τύπου HeaderFirst (και FooterFirst, εάν χρειάζεται) στη συλλογή HeadersFooters της.

Πώς μπορώ να διαμορφώσω το κύριο κείμενο μιας ενότητας σε δύο στήλες;

Καλέστε το PageSetup.TextColumns.SetCount(2) στην ενότητα, στη συνέχεια προσαρμόστε τις τιμές Spacing, EvenlySpaced ή τις μεμονωμένες τιμές TextColumn.Width όπως χρειάζεται.

Πώς μπορώ να έχω άμεση πρόσβαση στην πρώτη και στην τελευταία ενότητα;

Διαβάστε το Document.FirstSection και το Document.LastSection αντί να κάνετε ευρετηρίαση στο Document.Sections.

Δείτε επίσης

 Ελληνικά