Forms
Forms
Αυτή η σελίδα καλύπτει τη δημιουργία και διαχείριση διαδραστικών AcroForm πεδίων. Το Form, που προσεγγίζεται μέσω doc.Form, είναι η πρόσβαση για κάθε τύπο πεδίου· κάθε μέθοδος Add*() δημιουργεί ένα πεδίο συνδεδεμένο με μια σελίδα και ένα ορθογώνιο widget και επιστρέφει ένα τυποποιημένο χειριστή (TextField, CheckboxField, ChoiceField, ButtonField ή RadioField) που μοιράζεται τις κοινές ιδιότητες Field Value, ReadOnly, και Required.
Δημιουργία Πεδίων
Το Form.AddTextField(), Form.AddCheckbox(), Form.AddComboBox() και τα αδέλφια τους λαμβάνουν καθένα ένα αντικείμενο επιλογών που ονομάζει το στόχο page (από το 0), το widget rect, ένα πεδίο name, και στυλ όπως borderColor και backgroundColor.
const form = doc.Form;
const pageNum = page.Number;
form.AddTextField({
page: pageNum, rect: [200, 670, 450, 690], name: 'FullName', value: 'Alice Sample',
borderColor: [0.05, 0.1, 0.3], backgroundColor: [0.9, 0.93, 1], borderWidth: 1,
font: 'Helvetica', fontSize: 12,
});
form.AddCheckbox({
page: pageNum, rect: [200, 630, 218, 648], name: 'Subscribe',
checked: true, borderColor: [0.05, 0.1, 0.3], borderWidth: 1,
});
form.AddComboBox({
page: pageNum, rect: [200, 550, 350, 570], name: 'Country', value: 'US',
options: [
{ export: 'US', display: 'United States' },
{ export: 'UK', display: 'United Kingdom' },
{ export: 'DE', display: 'Germany' },
],
});Τα Page.AddTextField() και Page.AddCheckbox() δημιουργούν τους ίδιους τύπους πεδίων απευθείας σε μια σελίδα, χωρίς να ορίζουν το doc.Form ή έναν αριθμό page στο αντικείμενο επιλογών.
Ανάγνωση και Τροποποίηση Πεδίων
Το Form.Fields είναι ένας πίνακας με κάθε Field στο έγγραφο· το Form.Get() αναζητά ένα με το πλήρως προσδιορισμένο όνομά του. Το Value κάθε πεδίου μπορεί να διαβαστεί ή να εκχωρηθεί ξανά, και τα ReadOnly / Required είναι απλές ιδιότητες boolean.
const nameField = doc.Form.Get('FullName');
if (nameField) {
console.log(nameField.Value);
nameField.Value = 'Bob Sample';
}Ισοπεδίασμα Πεδίων
Κάθε μέθοδος Flatten() του τύπου πεδίου ενσωματώνει την τρέχουσα εμφάνισή του στο στατικό περιεχόμενο της σελίδας και την αφαιρεί από το AcroForm — το ίδιο μόνιμο, μη διαδραστικό αποτέλεσμα που έχει το Annotation.Flatten() για τις σημειώσεις.
const tb = form.AddTextField({
page: pageNum, rect: [210, 660, 460, 680], name: 'FlattenName', value: 'Alice Sample',
});
tb.Flatten();Συμβουλές και Καλές Πρακτικές
- Τροποποιήστε το αναγνωριστικό πεδίου που επιστρέφεται άμεσα από την κλήση
Add*(), ή ένα που έχει ανακτηθεί φρέσκο με τοForm.Get()— μια παλιά αναφορά δεν βλέπει τις αλλαγές που έγιναν αλλού. Form.RemoveField()δέχεται είτε ένα αναγνωριστικόFieldείτε μια συμβολοσειρά ονόματος πεδίου.- Καλέστε το
Form.GenerateAppearances()μετά την αλλαγή των τιμών των πεδίων μαζικά ώστε η εμφάνιση κάθε πεδίου στην οθόνη να παραμένει συγχρονισμένη με τοValueτου. - Τα κουτιά συνδυασμού και τα κουτιά λίστας αποθηκεύουν την επιλεγμένη τιμή
exportστο/V; το κείμενοdisplayείναι αυτό που εμφανίζει η παραγόμενη εμφάνιση.
Κοινά Προβλήματα
| Πρόβλημα | Αιτία | Διόρθωση |
|---|---|---|
Το πεδίο που προστέθηκε με Form.AddTextField() δεν εμφανίζεται στη σελίδα | Οι συντεταγμένες rect βρίσκονται εκτός των διαστάσεων της σελίδας-στόχου | Επιβεβαιώστε ότι το ορθογώνιο βρίσκεται εντός των ορίων της σελίδας |
Το πεδίο εξακολουθεί να εμφανίζεται διαδραστικό μετά το Flatten() | Flatten() κλήθηκε σε αντίγραφο αντί για το χειριστήριο Add*() / Form.Get() που επιστράφηκε | Κλήστε το Flatten() στο αντικείμενο που λαμβάνεται απευθείας από τη φόρμα |
| Η αλλαγή τιμής του πεδίου δεν είναι ορατή στην οθόνη | Η εμφάνιση του πεδίου δεν επαναδημιουργήθηκε μετά την αλλαγή της τιμής | Κλήστε το Form.GenerateAppearances(), ή το GenerateAppearance() του πεδίου |
FAQ
Πώς μπορώ να διαβάσω ή να αλλάξω την τιμή ενός πεδίου μετά τη δημιουργία του;
Αναζητήστε το με το Form.Get('fieldName') (ή χρησιμοποιήστε το αναγνωριστικό που επέστρεψε η κλήση Add*()) και διαβάστε ή αναθέστε άμεσα την ιδιότητα Value του.
Τι τύπους πεδίων υποστηρίζει η προσκηνία Form;
Πεδία κειμένου, πλαίσια ελέγχου, ομάδες ραδιοφύλων, συνδυαστικά κουτιά, λίστες και κουμπιά, μέσω Form.AddTextField(), Form.AddCheckbox(), Form.AddRadioGroup(), Form.AddComboBox(), Form.AddListBox() και Form.AddPushButton().
Πώς αφαιρώ ένα πεδίο;
Καλέστε το Form.RemoveField() με το αναγνωριστικό του πεδίου ή με το όνομά του.
Πώς γίνεται ένα πεδίο φόρμας μόνιμο και μη επεξεργάσιμο;
Κλήστε το Flatten() στον χειριστή πεδίου — το ίδιο μοτίβο που χρησιμοποιείται για τις σημειώσεις — το οποίο ενσωματώνει την τρέχουσα εμφάνισή του στη σελίδα και το αφαιρεί από το AcroForm.
API Reference Σύνοψη
| Κλάση/Μέθοδος | Περιγραφή |
|---|---|
Form | AcroForm πρόσοψη, προσεγγίζεται μέσω doc.Form |
Form.AddTextField() / Form.AddCheckbox() / Form.AddRadioGroup() / Form.AddComboBox() / Form.AddListBox() / Form.AddPushButton() | Δημιουργήστε ένα πεδίο του αντίστοιχου τύπου |
Form.Fields | Κάθε Field στο έγγραφο, ως πίνακας |
Form.Get() | Αναζητήστε ένα πεδίο με το πλήρως προσδιορισμένο όνομά του |
Form.RemoveField() | Καταργήστε ένα πεδίο με βάση το χειριστήριο ή το όνομα |
Form.GenerateAppearances() | Αναδημιουργήστε την εμφάνιση στην οθόνη για κάθε πεδίο |
TextField / CheckboxField / ChoiceField / ButtonField / RadioField | Το πληκτρολογημένο πεδίο χειρίζεται την κοινή χρήση Value, ReadOnly, Required |
Page.AddTextField() / Page.AddCheckbox() | Δημιουργήστε ένα πεδίο απευθείας σε μια σελίδα |