Forms

Forms

Deze pagina behandelt het maken en beheren van interactieve AcroForm velden. Form, bereikbaar via doc.Form, is de façade voor elk veldtype; elke Add*() methode maakt een veld dat is gekoppeld aan een pagina en een widget-rechthoek en retourneert een getypeerde handle (TextField, CheckboxField, ChoiceField, ButtonField of RadioField) die de gemeenschappelijke Field eigenschappen Value, ReadOnly en Required deelt.


Velden maken

Form.AddTextField(), Form.AddCheckbox(), Form.AddComboBox() en hun verwanten nemen elk een opties-object dat de doel-page (0-gebaseerd), de widget rect, een veld name, en styling zoals borderColor en backgroundColor benoemt.

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() en Page.AddCheckbox() maken dezelfde veldtypen direct op een pagina, zonder doc.Form of een page nummer te benoemen in het opties-object.


Velden lezen en wijzigen

Form.Fields is een array van elke Field in het document; Form.Get() zoekt er één op via de volledig gekwalificeerde naam. De Value van elk veld kan worden gelezen of opnieuw toegewezen, en ReadOnly / Required zijn eenvoudige booleaanse eigenschappen.

const nameField = doc.Form.Get('FullName');
if (nameField) {
  console.log(nameField.Value);
  nameField.Value = 'Bob Sample';
}

Vlak maken van velden

Elke veldtype’s Flatten() methode bakt zijn huidige weergave in de statische inhoud van de pagina en verwijdert het uit de AcroForm — hetzelfde permanente, niet-interactieve effect dat Annotation.Flatten() heeft voor annotaties.

const tb = form.AddTextField({
  page: pageNum, rect: [210, 660, 460, 680], name: 'FlattenName', value: 'Alice Sample',
});
tb.Flatten();

Tips en best practices

  • Wijzig de veldhandle die rechtstreeks wordt geretourneerd door de Add*() oproep, of een die vers wordt opgezocht met Form.Get() — een verouderde referentie ziet de elders aangebrachte wijzigingen niet.
  • Form.RemoveField() accepteert ofwel een Field handle of een veldnaam-string.
  • Roep Form.GenerateAppearances() aan na het massaal wijzigen van veldwaarden zodat de weergave van elk veld op het scherm synchroon blijft met zijn Value.
  • Comboboxen en lijstvakjes slaan de geselecteerde export waarde op in /V; de display tekst is wat de gegenereerde weergave toont.

Veelvoorkomende problemen

ProbleemOorzaakOplossing
Veld toegevoegd met Form.AddTextField() verschijnt niet op de paginaDe rect coördinaten vallen buiten de afmetingen van de doelpaginaBevestig dat het rechthoek binnen de grenzen van de pagina ligt
Veld blijft interactief verschijnen na Flatten()Flatten() werd aangeroepen op een kopie in plaats van de handle Add*() / Form.Get() die werd geretourneerdRoep Flatten() aan op het object dat rechtstreeks uit het formulier is verkregen
Wijziging van veldwaarde is niet zichtbaar op het schermHet uiterlijk van het veld werd niet opnieuw gegenereerd nadat de waarde was gewijzigdRoep Form.GenerateAppearances() aan, of het eigen GenerateAppearance() van het veld

FAQ

Hoe lees of wijzig ik de waarde van een veld nadat ik het heb aangemaakt?

Zoek het op met Form.Get('fieldName') (of gebruik de handle die de Add*()-aanroep heeft geretourneerd) en lees of wijs de Value-eigenschap direct toe.

Welke veldtypes ondersteunt de Form-facade?

Tekstvelden, selectievakjes, radiogroepen, comboboxen, lijstvakken en drukknoppen, via Form.AddTextField(), Form.AddCheckbox(), Form.AddRadioGroup(), Form.AddComboBox(), Form.AddListBox() en Form.AddPushButton().

Hoe verwijder ik een veld?

Roep Form.RemoveField() aan met de handle of de naam van het veld.

Hoe wordt een formulierveld permanent en niet-bewerkbaar gemaakt?

Roep Flatten() op de veldhandvat — hetzelfde patroon dat voor annotaties wordt gebruikt — die de huidige weergave in de pagina verwerkt en het verwijdert uit de AcroForm.


API Reference Samenvatting

Klasse/MethodeBeschrijving
FormAcroForm facade, bereikt via doc.Form
Form.AddTextField() / Form.AddCheckbox() / Form.AddRadioGroup() / Form.AddComboBox() / Form.AddListBox() / Form.AddPushButton()Maak een veld van het overeenkomstige type
Form.FieldsElke Field in het document, als een array
Form.Get()Zoek een veld op via zijn volledig gekwalificeerde naam
Form.RemoveField()Verwijder een veld op basis van handle of naam
Form.GenerateAppearances()Genereer de weergave op het scherm opnieuw voor elk veld
TextField / CheckboxField / ChoiceField / ButtonField / RadioFieldGetypt veld behandelt het delen van Value, ReadOnly, Required
Page.AddTextField() / Page.AddCheckbox()Maak een veld direct op een pagina

Zie ook

 Nederlands