Forms
Forms
Ta strona opisuje tworzenie i zarządzanie interaktywnymi polami AcroForm. Form, dostępny poprzez doc.Form, jest fasadą dla każdego typu pola; każda metoda Add*() tworzy pole powiązane ze stroną i prostokątem widgetu oraz zwraca typowy uchwyt (TextField, CheckboxField, ChoiceField, ButtonField lub RadioField), który współdzieli wspólne właściwości Field Value, ReadOnly i Required.
Tworzenie pól
Form.AddTextField(), Form.AddCheckbox(), Form.AddComboBox() i ich odpowiedniki przyjmują obiekt opcji, w którym podaje się docelowy page (numerowany od 0), widget rect, pole name oraz stylizację, taką jak borderColor i 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() i Page.AddCheckbox() tworzą te same typy pól bezpośrednio na stronie, bez podawania doc.Form ani numeru page w obiekcie opcji.
Odczytywanie i modyfikowanie pól
Form.Fields jest tablicą wszystkich Field w dokumencie; Form.Get() wyszukuje jeden po jego w pełni kwalifikowanej nazwie. Value każdego pola można odczytać lub przypisać ponownie, a ReadOnly / Required to zwykłe właściwości typu boolean.
const nameField = doc.Form.Get('FullName');
if (nameField) {
console.log(nameField.Value);
nameField.Value = 'Bob Sample';
}Spłaszczanie pól
Każda metoda Flatten() typu pola zapisuje jego bieżący wygląd w statycznej treści strony i usuwa go z AcroForm — ten sam trwały, nieinteraktywny efekt, jaki Annotation.Flatten() ma dla adnotacji.
const tb = form.AddTextField({
page: pageNum, rect: [210, 660, 460, 680], name: 'FlattenName', value: 'Alice Sample',
});
tb.Flatten();Wskazówki i najlepsze praktyki
- Modyfikuj uchwyt pola zwrócony bezpośrednio przez wywołanie
Add*()lub uzyskany na nowo za pomocąForm.Get()— przestarzałe odwołanie nie widzi zmian wprowadzonych w innym miejscu. Form.RemoveField()przyjmuje albo uchwytField, albo ciąg znaków z nazwą pola.- Wywołaj
Form.GenerateAppearances()po masowej zmianie wartości pól, aby wygląd każdego pola na ekranie pozostał zsynchronizowany z jegoValue. - Listy rozwijane i pola listowe przechowują wybraną wartość
exportw/V; tekstdisplayto to, co wyświetla wygenerowany wygląd.
Typowe problemy
| Problem | Przyczyna | Naprawa |
|---|---|---|
Pole dodane przy użyciu Form.AddTextField() nie pojawia się na stronie | Współrzędne rect leżą poza wymiarami docelowej strony | Potwierdź, że prostokąt znajduje się w obrębie granic strony |
Pole nadal wydaje się interaktywne po Flatten() | Flatten() został wywołany na kopii, a nie na uchwycie Add*() / Form.Get() zwróconym | Wywołaj Flatten() na obiekcie uzyskanym bezpośrednio z formularza |
| Zmiana wartości pola nie jest widoczna na ekranie | Wygląd pola nie został odtworzony po zmianie wartości | Wywołaj Form.GenerateAppearances(), lub własny GenerateAppearance() pola |
FAQ
Jak odczytać lub zmienić wartość pola po jego utworzeniu?
Znajdź je za pomocą Form.Get('fieldName') (lub użyj uchwytu zwróconego przez wywołanie Add*()) i odczytaj lub przypisz jego właściwość Value bezpośrednio.
Jakie typy pól obsługuje fasada Form?
Pola tekstowe, pola wyboru, grupy przycisków radiowych, pola kombi, pola list i przyciski, za pośrednictwem Form.AddTextField(), Form.AddCheckbox(), Form.AddRadioGroup(), Form.AddComboBox(), Form.AddListBox() i Form.AddPushButton().
Jak usunąć pole?
Wywołaj Form.RemoveField() używając uchwytu pola lub jego nazwy.
Jak uczynić pole formularza trwałym i nieedytowalnym?
Wywołaj Flatten() na uchwycie pola — ten sam wzorzec używany dla adnotacji — który zapisuje jego bieżący wygląd na stronie i usuwa go z AcroForm.
API Reference Podsumowanie
| Klasa/Metoda | Opis |
|---|---|
Form | fasada AcroForm, osiągnięta przez doc.Form |
Form.AddTextField() / Form.AddCheckbox() / Form.AddRadioGroup() / Form.AddComboBox() / Form.AddListBox() / Form.AddPushButton() | Utwórz pole odpowiedniego typu |
Form.Fields | Każdy Field w dokumencie, jako tablica |
Form.Get() | Wyszukaj pole po w pełni kwalifikowanej nazwie |
Form.RemoveField() | Usuń pole po uchwycie lub nazwie |
Form.GenerateAppearances() | Wygeneruj ponownie wygląd na ekranie dla każdego pola |
TextField / CheckboxField / ChoiceField / ButtonField / RadioField | Pole wpisywane obsługuje udostępnianie Value, ReadOnly, Required |
Page.AddTextField() / Page.AddCheckbox() | Utwórz pole bezpośrednio na stronie |