Εργασία με Στυλ

Εργασία με Στυλ

Αυτός ο οδηγός δείχνει πώς να εργάζεστε με στυλ παραγράφου, χαρακτήρα, πίνακα και λίστας σε Aspose.Words FOSS για .NET — αναζήτηση και εφαρμογή ενσωματωμένων και προσαρμοσμένων στυλ, καθώς και διαμόρφωση υπό-περιοχικής υπό-συνθήκης μορφοποίησης στα στυλ πίνακα.

Ένα αντικείμενο Style αντιπροσωπεύει ένα ενιαίο ενσωματωμένο ή ορισμένο από το χρήστη στυλ — τη ονομαστική συλλογή μορφοποίησης παραγράφου, γραμματοσειράς και λίστας που το Word εφαρμόζει όταν μια παράγραφος ή run του ανατεθεί αυτό το στυλ. Κάθε έγγραφο εκθέτει τα στυλ του μέσω της ιδιότητας Document.Styles, η οποία επιστρέφει ένα StyleCollection. Τα στυλ πίνακα αναπαρίστανται από TableStyle, μια υποκατηγορία του Style που προσθέτει μορφοποίηση ειδική για πίνακες και διαλεκτική μορφοποίηση ανά περιοχή μέσω του ConditionalStyleCollection.


Τύποι Στυλ και Αναγνώριση

Κάθε Style διαθέτει μια ιδιότητα Type τύπου StyleType, η οποία είναι μία από τις Paragraph, Character, Table ή List — αντιστοιχώντας στους τέσσερις τύπους στυλ που υποστηρίζει το Word. Τα ενσωματωμένα στυλ διαθέτουν επίσης μια ανεξάρτητη από τη γλώσσα τιμή enum StyleIdentifier (για παράδειγμα τιμές που αντιστοιχούν σε στυλ επικεφαλίδων, έμφασης και υπερσυνδέσμων) ώστε ο κώδικας να μπορεί να αναζητήσει ένα ενσωματωμένο στυλ χωρίς να εξαρτάται από το εμφανιζόμενο όνομά του σε συγκεκριμένη γλώσσα. Το ανθρώπινα αναγνώσιμο όνομα ενός στυλ είναι διαθέσιμο μέσω του Style.Name, ενώ το Style.Aliases επιστρέφει τυχόν εναλλακτικά ονόματα που το Word αναγνωρίζει για το ίδιο στυλ. Το Style.BuiltIn αναφέρει αν το στυλ περιλαμβάνεται στο ίδιο το Word σε αντίθεση με το ότι ορίζεται στο έγγραφο, και το Style.IsHeading αναφέρει αν το στυλ είναι ένα από τα ενσωματωμένα στυλ επικεφαλίδων.

Πρόσβαση και Διαχείριση της Συλλογής Στυλ

StyleCollection είναι η συλλογή όλων των αντικειμένων Style — ενσωματωμένων και προσαρμοσμένων — που συνδέονται με ένα έγγραφο, προσβάσιμη μέσω του Document.Styles. Ανακτήστε ένα στυλ με το εμφανιζόμενο όνομά του χρησιμοποιώντας τον δείκτη StyleCollection — styles[name] — ή ανακτήστε ένα ενσωματωμένο στυλ με το ανεξάρτητο από τη γλώσσα StyleIdentifier χρησιμοποιώντας τον ίδιο δείκτη — styles[sti] — που είναι πιο αξιόπιστο από την αναζήτηση με όνομα σε έγγραφα που δημιουργήθηκαν σε διαφορετικές γλώσσες. Νέα στυλ δημιουργούνται με το StyleCollection.Add(type, name), καθορίζοντας το StyleType και ένα όνομα, και ένα υπάρχον στυλ μπορεί να αντιγραφεί στη συλλογή με το StyleCollection.AddCopy(style). Το StyleCollection.Count αναφέρει πόσα στυλ περιέχει το έγγραφο, και η συλλογή εκθέτει επίσης τα DefaultFont και DefaultParagraphFormat, που περιγράφουν τη προεπιλεγμένη μορφοποίηση σε όλο το έγγραφο που κληρονομείται από νέο περιεχόμενο πριν εφαρμοστεί οποιοδήποτε ρητό στυλ. Το StyleCollection.ClearQuickStyleGallery() αφαιρεί όλα τα στυλ από τη γκαλερί γρήγορων στυλ του UI του Word χωρίς να διαγράφει τα ίδια τα στυλ.

Εφαρμογή Στυλ σε Παραγράφους και Runs

Τα αντικείμενα μορφοποίησης που μπορούν να φέρουν ένα στυλ εκθέτουν τόσο μια ιδιότητα Style (το ίδιο το αντικείμενο Style) όσο και μια ιδιότητα StyleName (μια συντόμευση που επιλύει ή δημιουργεί στυλ με βάση το όνομα). Τα ParagraphFormat.Style και ParagraphFormat.StyleName εφαρμόζουν στυλ παραγράφου, ενώ τα Font.Style και Font.StyleName εφαρμόζουν στυλ χαρακτήρα στην μορφοποίηση ενός run. Οι δικές της ιδιότητες LinkedStyleName, BaseStyleName και NextParagraphStyleName ενός στυλ περιγράφουν πώς σχετίζεται με άλλα στυλ: το BaseStyleName ορίζει το στυλ από το οποίο κληρονομεί μη ορισμένη μορφοποίηση, το LinkedStyleName ορίζει ένα ζευγάρεισμένο στυλ παράγραφος/χαρακτήρα (όπως κάνει το Word για ενσωματωμένα στυλ όπως Επικεφαλίδα 1 και το συνδεδεμένο στυλ χαρακτήρα), και το NextParagraphStyleName ορίζει το στυλ που το Word αναθέτει σε νέα παράγραφο που πληκτρολογείται μετά από μία που χρησιμοποιεί αυτό το στυλ.

Στυλ Πινάκων και Μορφοποίηση με Συνθήκες

TableStyle επεκτείνει το Style με ιδιότητες διάταξης πίνακα όπως Alignment, CellSpacing, LeftIndent, Shading, VerticalAlignment και padding (LeftPadding, RightPadding, TopPadding, BottomPadding), καθώς και RowStripe και ColumnStripe, που ελέγχουν σε πόσες γραμμές ή στήλες επαναλαμβάνεται ένα μοτίβο λωρίδας. Πέρα από την ομοιόμορφη μορφοποίηση πίνακα, το TableStyle.ConditionalStyles επιστρέφει ένα ConditionalStyleCollection που περιέχει ένα ConditionalStyle ανά περιοχή πίνακα — FirstRow, LastRow, FirstColumn, LastColumn, OddRowBanding, EvenRowBanding, OddColumnBanding, EvenColumnBanding, και τα τέσσερα κελιά γωνίας (TopLeftCell, TopRightCell, BottomLeftCell, BottomRightCell). Κάθε ConditionalStyle διαθέτει τις δικές του Font, ParagraphFormat, Shading, Borders, και padding κελιού, και η ιδιότητα Type του αναφέρει ποια περιοχή ConditionalStyleType αντιπροσωπεύει. Τα ConditionalStyle.ClearFormatting() και ConditionalStyleCollection.ClearFormatting() επαναφέρουν τη μορφοποίηση για μία περιοχή ή για όλο το σύνολο των περιοχών με συνθήκες.

Μεταδεδομένα Στυλ και Σημαίες Συμπεριφοράς

Πολλές λογικές και αριθμητικές ιδιότητες στο Style ελέγχουν πώς το Word αντιμετωπίζει ένα στυλ στη διεπαφή χρήστη αντί για το πώς το αποδίδει: το Locked αποτρέπει την αλλαγή του στυλ όταν η προστασία μορφοποίησης είναι ενεργή, το IsQuickStyle ελέγχει αν εμφανίζεται στη γκαλερί γρήγορων στυλ, το AutomaticallyUpdate κάνει το στυλ να επανακαθορίζεται από τη χειροκίνητη άμεση μορφοποίηση, τα SemiHidden και UnhideWhenUsed ελέγχουν την ορατότητα στη λίστα στυλ πριν και μετά την πρώτη χρήση, και το Priority επηρεάζει τη σειρά ταξινόμησης στη γκαλερί. Ένα στυλ εκθέτει επίσης τις ιδιότητες List και ListFormat όταν ορίζει αρίθμηση λίστας, και το Style.Remove() διαγράφει το στυλ από το StyleCollection του.


Συμβουλές και Καλές Πρακτικές

  • Προτιμήστε τον ευρετήριο StyleCollection με μια τιμή StyleIdentifier αντί για αναζήτηση κατά όνομα όταν εντοπίζετε ένα ενσωματωμένο στυλ — τα ονόματα είναι τοπικοποιημένα, αλλά οι τιμές StyleIdentifier δεν είναι.
  • Ορίστε το BaseStyleName για τη δημιουργία ιεραρχιών στυλ (για παράδειγμα, ένα σύνολο στυλ επικεφαλίδων που όλα κληρονομούν τις επιλογές γραμματοσειράς από ένα βασικό στυλ) αντί να επαναλαμβάνετε τη μορφοποίηση σε κάθε στυλ.
  • Κατά την αντιγραφή ενός στυλ μεταξύ εγγράφων, χρησιμοποιήστε το StyleCollection.AddCopy(style) αντί να διαβάζετε και να εφαρμόζετε χειροκίνητα κάθε ιδιότητα μορφοποίησης.
  • Διαμορφώστε τις περιοχές TableStyle.ConditionalStyles για πίνακες με λωρίδες αντί να μορφοποιείτε χειροκίνητα εναλλασσόμενες γραμμές στον κώδικα — η μορφοποίηση κάθε περιοχής ConditionalStyle εφαρμόζεται βάσει του ConditionalStyleType της, αντί να ορίζετε άμεση μορφοποίηση σε ξεχωριστές γραμμές.
  • Ελέγξτε το Style.BuiltIn πριν αφαιρέσετε ή μετονομάσετε ένα στυλ προγραμματιστικά· τα ενσωματωμένα στυλ συνήθως αναφέρονται με όνομα αλλού στο έγγραφο.

Συχνά προβλήματα

ΠρόβλημαΑιτίαΔιόρθωση
StyleCollection indexer επιστρέφει null για αναζήτηση ονόματοςΤο όνομα του στυλ δεν υπάρχει σε αυτό το έγγραφο, ή ένα ενσωματωμένο στυλ δεν έχει χρησιμοποιηθεί ακόμη, έτσι το Word δεν το έχει υλοποιήσει.Ελέγξτε το Style.Aliases για εναλλακτικά ονόματα ή χρησιμοποιήστε τον StyleCollection ευρετηριοποιητή με ένα StyleIdentifier για ενσωματωμένα στυλ αντί αυτού
Ο ορισμός του StyleName δημιουργεί απροσδόκητα ένα νέο στυλΤο StyleName δημιουργεί το ονομασμένο στυλ εάν δεν υπάρχει ήδη στη συλλογήΧρησιμοποιήστε πρώτα τον StyleCollection ευρετηριοποιητή για να επιβεβαιώσετε ότι το στυλ υπάρχει, ή εκχωρήστε το αντικείμενο Style άμεσα μέσω της ιδιότητας Style
Το ζώνημα του πίνακα δεν εμφανίζεται μετά την εφαρμογή ενός TableStyleΟι περιοχές υπό όρους μορφοποίησης (OddRowBanding, EvenRowBanding κ.λπ.) δεν ρυθμίστηκαν ποτέ στο TableStyle.ConditionalStylesΟρίστε τη μορφοποίηση στις σχετικές καταχωρήσεις ConditionalStyle στο ConditionalStyleCollection
Η αλλαγή στυλ δεν επηρεάζει το περιεχόμενο που ήδη χρησιμοποιεί το στυλΆμεση (χειροκίνητη) μορφοποίηση εφαρμόστηκε πάνω από το στυλ και έχει προτεραιότηταΚαθαρίστε την άμεση μορφοποίηση στα επηρεαζόμενα τμήματα/παραγράφους, ή ορίστε Style.AutomaticallyUpdate

FAQ

Πώς μπορώ να λάβω τη συλλογή όλων των στυλ σε ένα έγγραφο;

Διαβάστε το Document.Styles, το οποίο επιστρέφει ένα StyleCollection που περιέχει όλα τα ενσωματωμένα και τα προσαρμοσμένα Style σε εκείνο το έγγραφο.

Ποια είναι η διαφορά μεταξύ Style και StyleIdentifier;

Style είναι το πραγματικό αντικείμενο στυλ με τη μορφοποίησή του; StyleIdentifier είναι μια ανεξάρτητη από την τοπική ρύθμιση τιμή enum που χρησιμοποιείται για την ανάκτηση ενός συγκεκριμένου ενσωματωμένου στυλ ανεξάρτητα από τη γλώσσα του εγγράφου, μέσω του StyleCollection ευρετηρίου.

Πώς διαφέρουν τα στυλ πίνακα από τα στυλ παραγράφου ή χαρακτήρα;

TableStyle είναι μια υποκλάση του Style που προσθέτει ιδιότητες διάταξης πίνακα (Alignment, CellSpacing, padding) και μια συλλογή ConditionalStyles για μορφοποίηση ειδική περιοχής, όπως ζώνες γραμμών, γραμμές κεφαλίδας και γωνιακά κελιά — έννοιες μορφοποίησης που δεν εφαρμόζονται στα στυλ παραγράφου ή χαρακτήρα.

Μπορώ να δημιουργήσω ένα ολοκαίνουργιο στυλ αντί να τροποποιήσω ένα υπάρχον;

Ναι — καλέστε το StyleCollection.Add(type, name) με το επιθυμητό StyleType και ένα νέο όνομα για να δημιουργήσετε ένα κενό στυλ, έπειτα ορίστε τις ιδιότητες μορφοποίησής του (Font, ParagraphFormat και ούτω καθεξής για στυλ παραγράφου/χαρακτήρα).

Πώς μπορώ να αντιγράψω ένα στυλ, συμπεριλαμβανομένου από άλλο έγγραφο;

Χρησιμοποιήστε το StyleCollection.AddCopy(style), περνώντας ένα αντικείμενο Style (που μπορεί να προέρχεται από το Document’s StyleCollection) για να προσθέσετε ένα αντίγραφό του στη συλλογή-στόχο.


API Reference Σύνοψη

Κλάση/ΜέθοδοςΠεριγραφή
StyleΈνα ενσωματωμένο ή ορισμένο από τον χρήστη στυλ παραγράφου, χαρακτήρα, πίνακα ή λίστας
StyleCollectionΗ συλλογή όλων των στυλ σε ένα έγγραφο, προσβάσιμη μέσω Document.Styles
StyleCollection indexer με βάση το όνομαΑναζήτηση στυλ με το εμφανιζόμενο όνομά του, π.χ. styles["Heading 1"]
StyleCollection indexer με αναγνωριστικόΑναζήτηση ενσωματωμένου στυλ με αναγνωριστικό ανεξάρτητο από την τοπική ρύθμιση, π.χ. styles[StyleIdentifier.Heading1]
StyleCollection.Add(type, name)Δημιουργήστε ένα νέο, κενό στυλ του δεδομένου StyleType
StyleCollection.AddCopy(style)Αντιγράψτε ένα υπάρχον στυλ σε αυτή τη συλλογή
StyleTypeEnum που διακρίνει τα στυλ Paragraph, Character, Table και List
StyleIdentifierΑναγνωριστικό ανεξάρτητο από τοπικές ρυθμίσεις για ενσωματωμένο στυλ
TableStyleΥποκατηγορία Style για μορφοποίηση πινάκων, συμπεριλαμβανομένου του υπό όρους στυλιζαρίσματος ανά περιοχή
ConditionalStyleCollectionΤο σύνολο των ανά-περιοχή ConditionalStyle καταχωρίσεων σε ένα TableStyle
ConditionalStyleΜορφοποίηση (γραμματοσειρά, μορφή παραγράφου, σκίαση, περιγράμματα, εσωτερικά περιθώρια) για μία περιοχή πίνακα
ConditionalStyleTypeΑπαρίθμηση που προσδιορίζει σε ποια περιοχή πίνακα εφαρμόζεται το ConditionalStyle

Δείτε επίσης

 Ελληνικά