Δημιουργία πεδίων με το FieldBuilder
Δημιουργία πεδίων με FieldBuilder
Αυτός ο οδηγός δείχνει πώς να δημιουργήσετε ένα πεδίο Word από το μηδέν στο Aspose.Words FOSS για .NET χρησιμοποιώντας FieldBuilder and FieldArgumentBuilder, αντί να εργάζεστε με ένα πεδίο που υπάρχει ήδη σε ένα έγγραφο. Για ανάγνωση, ενημέρωση ή αφαίρεση υπαρχόντων πεδίων, δείτε το Εργασία με Πεδία οδηγός.
Δημιουργία πεδίου με FieldBuilder
FieldBuilder δημιουργεί ένα πεδίο από διακριτικά κώδικα πεδίου — επιχειρήματα και διακόπτες. Δημιουργήστε ένα με new FieldBuilder(fieldType), περνώντας το FieldType του πεδίου που θέλετε να δημιουργήσετε. Προσθέστε επιχειρήματα με τη υπερφορτωμένη μέθοδο AddArgument(argument), η οποία δέχεται ένα string, int, double, ένα ένθετο FieldBuilder ή ένα FieldArgumentBuilder. Προσθέστε διακόπτες με τις υπερφορτωμένες μεθόδους AddSwitch(switchName), AddSwitch(switchName, switchArgument) (string) ή AddSwitch(switchName, switchArgument) (int/double).
Εισαγωγή του δημιουργημένου πεδίου
Μόλις ένα FieldBuilder έχει τα επιχειρήματα και τους διακόπτες του, καλέστε το BuildAndInsert(refNode) για να το εισάγετε στο έγγραφο — μια υπερφόρτωση δέχεται έναν κόμβο Inline και εισάγει το πεδίο πριν από αυτό, και μια άλλη δέχεται ένα Paragraph και εισάγει το πεδίο στο τέλος εκείνης της παραγράφου.
Σύνθεση σύνθετων επιχειρημάτων με FieldArgumentBuilder
FieldArgumentBuilder δημιουργεί ένα σύνθετο όρισμα πεδίου που αποτελείται από πεδία, κόμβους και απλό κείμενο, για περιπτώσεις όπου ένα μόνο όρισμα χρειάζεται περισσότερο από μια απλή συμβολοσειρά. Δημιουργήστε ένα με new FieldArgumentBuilder(), στη συνέχεια καλέστε AddText(text) για να προσθέσετε απλό κείμενο, AddNode(node) για να προσθέσετε έναν κόμβο Inline, ή AddField(fieldBuilder) για να ενσωματώσετε ένα άλλο πεδίο (δημιουργημένο με το δικό του FieldBuilder) μέσα στο όρισμα. Περάστε το ολοκληρωμένο FieldArgumentBuilder στο FieldBuilder.AddArgument(argument) για να το χρησιμοποιήσετε ως ένα από τα ορίσματα του εξωτερικού πεδίου.
Συμβουλές και βέλτιστες πρακτικές
- Χρησιμοποιήστε το
FieldBuilderόταν δημιουργείτε έναν τύπο πεδίου που δεν υποστηρίζεται από μία από τις αφιερωμένες κλάσεις πεδίου (όπωςFieldDateήFieldSymbol), ή όταν δημιουργείτε κώδικες πεδίου προγραμματιστικά από δεδομένα αντί να τους γράφετε χειροκίνητα. - Τοποθετήστε ένα παιδικό πεδίο μέσα σε ένα όρισμα εξωτερικού πεδίου με το
FieldBuilder.AddArgument(FieldBuilder)για μια απλή περίπτωση, ή δημιουργήστε ένα μεικτό όρισμα κειμένου, κόμβων και ενσωματωμένων πεδίων με τοFieldArgumentBuilderόταν το όρισμα είναι περισσότερα από ένα μόνο πεδίο. - Επιλέξτε την υπερφόρτωση
BuildAndInsert(refNode)που ταιριάζει με το σημείο όπου θέλετε να τοποθετηθεί το πεδίο — πριν από έναν συγκεκριμένο κόμβοInline, ή στο τέλος ενόςParagraph. - Μετά το
BuildAndInsert, αντιμετωπίστε το αποτέλεσμα όπως οποιοδήποτε άλλο πεδίο στο δέντρο — για παράδειγμα, καλέστε τοUpdate()σε αυτό αν ο τύπος πεδίου απαιτεί ρητή επανυπολογισμό.
Κοινά προβλήματα
| Πρόβλημα | Αιτία | Διόρθωση |
|---|---|---|
BuildAndInsert στοχεύει στην λάθος θέση | Χρησιμοποιήθηκε η λανθασμένη υπερφόρτωση για το προοριζόμενο σημείο εισαγωγής | Περάστε έναν κόμβο Inline για να εισάγετε πριν από αυτόν, ή έναν Paragraph για να εισάγετε στο τέλος του |
| Ένα όρισμα πεδίου δεν θα δεχθεί απλό κείμενο και έναν κόμβο μαζί | Το AddArgument κλήθηκε με ένα μόνο string/int/double αντί για συνθετικό όρισμα | Δημιουργήστε το μεικτό όρισμα με το FieldArgumentBuilder (AddText, AddNode, AddField) και περάστε το στο AddArgument |
| Η τιμή του διακόπτη δεν αναγνωρίζεται στον κώδικα του πεδίου που δημιουργήθηκε | Το AddSwitch(switchName) χρησιμοποιήθηκε όταν ο διακόπτης στην πραγματικότητα χρειάζεται ένα όρισμα | Χρησιμοποιήστε την υπερφόρτωση AddSwitch(switchName, switchArgument) με τη συμβολοσειρά, το int ή το double τιμή του διακόπτη |
FAQ
Πότε θα πρέπει να χρησιμοποιήσω το FieldBuilder αντί να εισάγω έναν προ-διαμορφωμένο κώδικα πεδίου;
Χρησιμοποιήστε το FieldBuilder όταν χρειάζεστε ρητό έλεγχο των ορισμάτων και των διακοπτών ενός πεδίου καθώς τα δημιουργείτε προγραμματιστικά, αντί να εισάγετε μια προ-διαμορφωμένη συμβολοσειρά κώδικα πεδίου.
Πώς μπορώ να προσθέσω περισσότερα από ένα όρισμα σε ένα πεδίο;
Καλέστε το AddArgument μία φορά ανά όρισμα — είναι υπερφορτωμένο για string, int, double, ένα ένθετο FieldBuilder και FieldArgumentBuilder.
Μπορώ να δημιουργήσω ένα πεδίο του οποίου το όρισμα περιέχει ένα μείγμα κειμένου και ενός άλλου πεδίου;
Ναι — χρησιμοποιήστε το FieldArgumentBuilder, καλώντας τα AddText, AddNode και AddField όπως απαιτείται, και έπειτα περάστε το στο FieldBuilder.AddArgument.
Πώς μπορώ πραγματικά να τοποθετήσω το κατασκευασμένο πεδίο στο έγγραφο;
Καλέστε το BuildAndInsert(refNode), περνώντας είτε έναν κόμβο Inline (εισάγει πριν από αυτόν) είτε έναν Paragraph (εισάγει στο τέλος του).
API Reference Περίληψη
| Κλάση/Μέθοδος | Περιγραφή |
|---|---|
FieldBuilder | Δημιουργεί ένα πεδίο από διακριτικά κώδικα πεδίου (ορίσματα και διακόπτες) |
FieldBuilder(fieldType) | Κατασκευαστής που παίρνει το FieldType για να δημιουργήσει |
FieldBuilder.AddArgument(argument) | Προσθέτει ένα όρισμα (string, int, double, FieldBuilder ή FieldArgumentBuilder) |
FieldBuilder.AddSwitch(switchName) / AddSwitch(switchName, switchArgument) | Προσθέτει έναν διακόπτη πεδίου, με ή χωρίς τιμή |
FieldBuilder.BuildAndInsert(refNode) | Εισάγει το κατασκευασμένο πεδίο πριν από έναν κόμβο Inline ή στο τέλος ενός Paragraph |
FieldArgumentBuilder | Δημιουργεί ένα σύνθετο όρισμα πεδίου από κείμενο, κόμβους και ενσωματωμένα πεδία |
FieldArgumentBuilder.AddText(text) | Προσθέτει απλό κείμενο στο όρισμα |
FieldArgumentBuilder.AddNode(node) | Προσθέτει έναν κόμβο Inline στο όρισμα |
FieldArgumentBuilder.AddField(fieldBuilder) | Ενσωματώνει ένα πεδίο που δημιουργήθηκε από το FieldBuilder στο όρισμα |