Forms

Forms

Cette page couvre la création et la gestion de champs interactifs AcroForm. Form, accessible via doc.Form, est la façade de chaque type de champ; chaque méthode Add*() crée un champ lié à une page et à un rectangle de widget et renvoie une poignée typée (TextField, CheckboxField, ChoiceField, ButtonField ou RadioField) qui partage les propriétés communes Field Value, ReadOnly et Required.


Création de champs

Form.AddTextField(), Form.AddCheckbox(), Form.AddComboBox() et leurs homologues prennent chacun un objet d’options nommant le page cible (indexé à partir de0), le widget rect, un champ name, ainsi que le style tel que borderColor et 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() et Page.AddCheckbox() créent les mêmes types de champs directement sur une page, sans nommer doc.Form ni un numéro page dans l’objet d’options.


Lecture et modification des champs

Form.Fields est un tableau de chaque Field du document; Form.Get() en recherche un par son nom pleinement qualifié. Le Value de chaque champ peut être lu ou réassigné, et ReadOnly / Required sont de simples propriétés booléennes.

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

Aplatir les champs

La méthode Flatten() de chaque type de champ intègre son apparence actuelle dans le contenu statique de la page et la supprime du AcroForm — le même effet permanent et non interactif que Annotation.Flatten() a pour les annotations.

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

Conseils et bonnes pratiques

  • Modifiez la poignée de champ renvoyée directement par l’appel Add*(), ou celle récupérée fraîchement avec Form.Get() — une référence obsolète ne voit pas les modifications effectuées ailleurs.
  • Form.RemoveField() accepte soit une poignée Field, soit une chaîne de nom de champ.
  • Appelez Form.GenerateAppearances() après avoir modifié les valeurs des champs en masse afin que l’apparence à l’écran de chaque champ reste synchronisée avec son Value.
  • Les boîtes combinées et les listes déroulantes stockent la valeur export sélectionnée dans /V ; le texte display est ce que l’apparence générée affiche.

Problèmes courants

ProblèmeCauseCorrection
Le champ ajouté avec Form.AddTextField() n’apparaît pas sur la pageLes coordonnées rect se situent en dehors des dimensions de la page cibleConfirmez que le rectangle se trouve à l’intérieur des limites de la page
Le champ apparaît toujours interactif après Flatten()Flatten() a été appelé sur une copie plutôt que sur la poignée Add*() / Form.Get() renvoyéeAppelez Flatten() sur l’objet obtenu directement du formulaire
Le changement de valeur du champ n’est pas visible à l’écranL’apparence du champ n’a pas été régénérée après le changement de valeurAppelez Form.GenerateAppearances(), ou le GenerateAppearance() du champ

FAQ

Comment lire ou modifier la valeur d’un champ après l’avoir créé?

Recherchez-le avec Form.Get('fieldName') (ou utilisez le handle renvoyé par l’appel Add*()) et lisez ou attribuez directement sa propriété Value.

Quels types de champs la façade Form prend-elle en charge?

Champs de texte, cases à cocher, groupes radio, boîtes combinées, listes déroulantes et boutons poussoirs, via Form.AddTextField(), Form.AddCheckbox(), Form.AddRadioGroup(), Form.AddComboBox(), Form.AddListBox() et Form.AddPushButton().

Comment supprimer un champ?

Appelez Form.RemoveField() avec soit le handle du champ, soit son nom.

Comment rendre un champ de formulaire permanent et non modifiable?

Appelez Flatten() sur la poignée du champ — le même modèle utilisé pour les annotations — qui intègre son apparence actuelle dans la page et la supprime du AcroForm.


API Reference Résumé

Classe/MéthodeDescription
Formfaçade AcroForm, atteinte via doc.Form
Form.AddTextField() / Form.AddCheckbox() / Form.AddRadioGroup() / Form.AddComboBox() / Form.AddListBox() / Form.AddPushButton()Créer un champ du type correspondant
Form.FieldsChaque Field du document, sous forme de tableau
Form.Get()Rechercher un champ par son nom entièrement qualifié
Form.RemoveField()Supprimer un champ par son identifiant ou son nom
Form.GenerateAppearances()Régénérez l’apparence à l’écran pour chaque champ
TextField / CheckboxField / ChoiceField / ButtonField / RadioFieldLe champ typé gère le partage de Value, ReadOnly, Required
Page.AddTextField() / Page.AddCheckbox()Créer un champ directement sur une page

Voir aussi

 Français