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 uchwyt Field, 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 jego Value.
  • Listy rozwijane i pola listowe przechowują wybraną wartość export w /V; tekst display to to, co wyświetla wygenerowany wygląd.

Typowe problemy

ProblemPrzyczynaNaprawa
Pole dodane przy użyciu Form.AddTextField() nie pojawia się na stronieWspółrzędne rect leżą poza wymiarami docelowej stronyPotwierdź, ż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óconymWywołaj Flatten() na obiekcie uzyskanym bezpośrednio z formularza
Zmiana wartości pola nie jest widoczna na ekranieWygląd pola nie został odtworzony po zmianie wartościWywoł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/MetodaOpis
Formfasada 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.FieldsKaż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 / RadioFieldPole wpisywane obsługuje udostępnianie Value, ReadOnly, Required
Page.AddTextField() / Page.AddCheckbox()Utwórz pole bezpośrednio na stronie

Zobacz także

 Polski