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 avecForm.Get()— une référence obsolète ne voit pas les modifications effectuées ailleurs. Form.RemoveField()accepte soit une poignéeField, 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 sonValue. - Les boîtes combinées et les listes déroulantes stockent la valeur
exportsélectionnée dans/V; le textedisplayest ce que l’apparence générée affiche.
Problèmes courants
| Problème | Cause | Correction |
|---|---|---|
Le champ ajouté avec Form.AddTextField() n’apparaît pas sur la page | Les coordonnées rect se situent en dehors des dimensions de la page cible | Confirmez 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ée | Appelez Flatten() sur l’objet obtenu directement du formulaire |
| Le changement de valeur du champ n’est pas visible à l’écran | L’apparence du champ n’a pas été régénérée après le changement de valeur | Appelez 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éthode | Description |
|---|---|
Form | faç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.Fields | Chaque 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 / RadioField | Le champ typé gère le partage de Value, ReadOnly, Required |
Page.AddTextField() / Page.AddCheckbox() | Créer un champ directement sur une page |