Remplir le formulaire PDF Java

En ces temps modernes, de nombreuses données sont collectées à l’aide de formulaires et les formulaires PDF à remplir méritent d’être mentionnés dans ce contexte. Ils constituent un moyen efficace de collecter et d’organiser les informations. De plus, les formulaires PDF à remplir sont maintenant utilisés comme norme par différentes institutions. Par exemple, certains tribunaux ou une entreprise d’approvisionnement peuvent utiliser efficacement des formulaires PDF à remplir pour normaliser leurs procédures. Pour créer de telles applications, l’API Aspose.PDF for Java est l’API la plus appropriée. Curieux de savoir pourquoi ? Explorons les cas d’utilisation suivants où nous travaillerons avec des formulaires PDF par programmation.

Installation

Vous pouvez vous diriger vers la section New Releases où vous pouvez configurer l’API pour enrichir vos applications Java et leur permettre de traiter des documents PDF, ou vous pouvez définir la dépendance dans votre application Maven comme suit :

Repository:

<repository>
    <id>AsposeJavaAPI</id>
    <name>Aspose Java API</name>
    <url>https://repository.aspose.com/repo/</url>
</repository

Dependency:

<dependency>
    <groupId>com.aspose</groupId>
    <artifactId>aspose-pdf</artifactId>
    <version>20.7</version>
</dependency>

Après avoir configuré l’API avec succès, passons aux cas d’utilisation suivants :

Créer des formulaires PDF remplissables à l’aide de Java

Vous pouvez créer un formulaire PDF à remplir dans les applications Java en suivant les étapes ci-dessous :

  1. Créer un fichier PDF avec une page vierge
  2. Ajouter le champ TextBox et le champ RadioButton sur la page
  3. Enregistrez le fichier PDF de sortie

L’extrait de code ci-dessous montre comment créer un formulaire PDF remplissable à partir de zéro en utilisant Java :

com.aspose.pdf.Document pdfdoc = new com.aspose.pdf.Document();
com.aspose.pdf.Page page = pdfdoc.getPages().add();
TextBoxField nameBox = new TextBoxField(pdfdoc, new com.aspose.pdf.Rectangle(275, 740, 440, 770));
nameBox.setPartialName("nameBox1");
nameBox.getDefaultAppearance().setFontSize(10);
nameBox.setMultiline(true);
com.aspose.pdf.Border nameBorder = new com.aspose.pdf.Border(nameBox);
nameBorder.setWidth(1);
nameBox.setBorder(nameBorder);
nameBox.getCharacteristics().setBorder(java.awt.Color.BLACK);
nameBox.setColor(com.aspose.pdf.Color.fromRgb(Color.RED));
TextBoxField mrnBox = new TextBoxField(pdfdoc, new com.aspose.pdf.Rectangle(275, 718, 440, 738));
mrnBox.setPartialName("Box1");
mrnBox.getDefaultAppearance().setFontSize(10);
com.aspose.pdf.Border mrnBorder = new com.aspose.pdf.Border(mrnBox);
mrnBorder.setWidth(1);
mrnBox.setBorder(mrnBorder);
mrnBox.getCharacteristics().setBorder(java.awt.Color.BLACK);
mrnBox.setColor(com.aspose.pdf.Color.fromRgb(Color.RED));
// Ajouter des champs de formulaire à la première page du document PDF            
pdfdoc.getForm().add(nameBox, 1);
pdfdoc.getForm().add(mrnBox, 1);

//Ajouter des boutons radio à des coordonnées de position spécifiques dans le PDF
com.aspose.pdf.Table table = new com.aspose.pdf.Table();
//Définir la position ici
table.setLeft(200);
table.setTop(300);
table.setColumnWidths("120");
page.getParagraphs().add(table);
com.aspose.pdf.Row r1 = table.getRows().add();
com.aspose.pdf.Row r2 = table.getRows().add();
com.aspose.pdf.Cell c1 = r1.getCells().add();
com.aspose.pdf.Cell c2 = r2.getCells().add();
com.aspose.pdf.RadioButtonField rf = new com.aspose.pdf.RadioButtonField(page);
rf.setPartialName("radio");
pdfdoc.getForm().add(rf, 1);
com.aspose.pdf.RadioButtonOptionField opt1 = new com.aspose.pdf.RadioButtonOptionField();
com.aspose.pdf.RadioButtonOptionField opt2 = new com.aspose.pdf.RadioButtonOptionField();
opt1.setOptionName("Yes");
opt2.setOptionName("No");
opt1.setWidth(15);
opt1.setHeight(15);
opt2.setWidth(15);
opt2.setHeight(15);
rf.add(opt1);
rf.add(opt2);
opt1.setBorder(new com.aspose.pdf.Border(opt1));
opt1.getBorder().setWidth(1);
opt1.getBorder().setStyle(com.aspose.pdf.BorderStyle.Solid);
opt1.getCharacteristics().setBorder(java.awt.Color.BLACK);
opt1.getDefaultAppearance().setTextColor(java.awt.Color.RED);
opt1.setCaption(new com.aspose.pdf.TextFragment("Yes"));
opt2.setBorder(new com.aspose.pdf.Border(opt1));
opt2.getBorder().setWidth(1);
opt2.getBorder().setStyle(com.aspose.pdf.BorderStyle.Solid);
opt2.getCharacteristics().setBorder(java.awt.Color.BLACK);
opt2.getDefaultAppearance().setTextColor(java.awt.Color.RED);
opt2.setCaption(new com.aspose.pdf.TextFragment("No"));
c1.getParagraphs().add(opt1);
c2.getParagraphs().add(opt2);
pdfdoc.save(dataDir + "Fillable_PDF_Form.pdf");

Remplir, modifier ou supprimer des champs de formulaire dans un PDF existant à l’aide de Java

Nous avons appris à créer un nouveau fichier PDF remplissable à partir de zéro. Passons aux scénarios où des documents PDF existants sont traités :

i) Remplir un champ de formulaire dans un fichier PDF existant à l’aide de Java

Comme nous avons créé le formulaire PDF dans l’exemple ci-dessus, continuons avec le même document et remplissons les champs du formulaire par programmation à l’aide de Java. Vous pouvez remplir le formulaire créé avec les étapes ci-dessous :

  1. Charger le fichier d’entrée
  2. Remplir les valeurs dans le champ TextBox
  3. Remplissez les champs RadioButton en sélectionnant une option
  4. Enregistrer le formulaire PDF

L’extrait de code ci-dessous montre comment remplir des formulaires à remplir à l’aide de Java :

// Ouvrir le document
com.aspose.pdf.Document pdfDocument = new com.aspose.pdf.Document(dataDir + "Fillable_PDF_Form.pdf");

// Obtenir les champs
TextBoxField textBoxField1 = (TextBoxField) pdfDocument.getForm().get("nameBox1");
TextBoxField textBoxField2 = (TextBoxField) pdfDocument.getForm().get("Box1");
// Remplir les valeurs des champs du formulaire
textBoxField1.setValue("A quick brown fox jumped over a lazy dog.");
textBoxField2.setValue("A quick brown fox jumped over a lazy dog.");

// Obtenir le champ du bouton radio
RadioButtonField radioField = (RadioButtonField) pdfDocument.getForm().get("radio");
// Spécifiez l'index du bouton radio du groupe
radioField.setSelected(1);

dataDir = dataDir + "Fill_PDF_Form_Field.pdf";
// Enregistrer le document mis à jour
pdfDocument.save(dataDir);

ii) Modifier un champ de formulaire dans un document PDF à l’aide de Java

Parfois, nous devons modifier ou mettre à jour des valeurs de champ dans un formulaire PDF. Vous pouvez facilement modifier un formulaire PDF à remplir en suivant les étapes ci-dessous :

  1. Initialiser le PDF d’entrée
  2. Obtenir une référence au champ de formulaire par son nom
  3. Modifier le formulaire PDF
  4. Enregistrer le formulaire PDF modifié

L’extrait de code ci-dessous montre comment mettre à jour ou modifier un fichier PDF remplissable à l’aide de Java :

// Ouvrir le document
com.aspose.pdf.Document pdfDocument = new com.aspose.pdf.Document(dataDir + "Fill_PDF_Form_Field.pdf");
// Obtenir un champ
TextBoxField textBoxField = (TextBoxField) pdfDocument.getForm().get("nameBox1");
// Modifier la valeur du champ
textBoxField.setValue("Changed Value");
textBoxField.setReadOnly(true);
dataDir = dataDir + "ModifyFormField.pdf";
// Enregistrer le document mis à jour
pdfDocument.save(dataDir);

iii) Supprimer un champ de formulaire dans un fichier PDF existant à l’aide de Java

Vous pouvez supprimer ou supprimer facilement un champ de formulaire dans vos applications Java. Vous pouvez suivre les étapes ci-dessous :

  1. Initialiser un formulaire PDF
  2. Supprimer le champ de formulaire en utilisant son nom
  3. Enregistrer le formulaire PDF mis à jour

L’extrait de code ci-dessous montre comment supprimer un champ de formulaire d’un formulaire PDF à l’aide de Java :

// Ouvrir le document
com.aspose.pdf.Document pdfDocument = new com.aspose.pdf.Document(dataDir + "Fill_PDF_Form_Field.pdf");
// Supprimer un champ particulier par son nom
pdfDocument.getForm().delete("nameBox1");
dataDir = dataDir + "Delete_Form_Field.pdf";
// Enregistrer le document modifié
pdfDocument.save(dataDir);

Préserver les droits étendus des formulaires PDF à l’aide de Java

Vous remarquerez peut-être que certains formulaires PDF ont des droits étendus. Ils sont utilisés pour éviter les modifications du contenu original et seul le remplissage de formulaires est autorisé. Les droits étendus des fichiers PDF peuvent être affectés lorsque

Vous remplissez un tel formulaire et l’enregistrez à différents endroits du disque. Par conséquent, nous devons enregistrer ces fichiers progressivement avec les étapes ci-dessous :

  1. Initialiser le formulaire PDF
  2. Remplissez les champs
  3. Enregistrez le document PDF rempli

L’extrait de code ci-dessous montre comment conserver les droits étendus lors du remplissage d’un formulaire PDF, à l’aide de Java :

// Instancier l'instance de document
com.aspose.pdf.Document pdfDocument = new com.aspose.pdf.Document(dataDir + "Fill_PDF_Form_Field.pdf");
// Obtenir des valeurs de tous les champs
for (com.aspose.pdf.Field formField : pdfDocument.getForm().getFields())
{
    // Si le nom complet du champ contient nameBox1, effectuez l'opération
    if (formField.getFullName().contains("nameBox1"))
    {
        // Convertir le champ de formulaire en TextBox
        TextBoxField textBoxField = (TextBoxField) formField;
        // Modifier la valeur du champ
        textBoxField.setValue("Preserve Extended Features");
    }
}
// Enregistrer le document mis à jour
pdfDocument.save();

Utiliser JavaScript dans un formulaire PDF à l’aide de Java

Vous pouvez remplir les champs de formulaire PDF à remplir en utilisant Javascript avec Aspose.PDF for Java. Vous devez suivre les étapes suivantes :

  1. Charger le document PDF
  2. Ajouter un champ à un emplacement de page spécifique
  3. Définir JavaScript et ouvrir l’action pour le document Enregistrer le fichier PDF

L’extrait de code suivant montre comment utiliser JavaScript dans des formulaires PDF à remplir :

com.aspose.pdf.Document pdfdoc = new com.aspose.pdf.Document();
pdfdoc.getPages().add();
TextBoxField textBoxField = new TextBoxField(pdfdoc.getPages().get_Item(1), new com.aspose.pdf.Rectangle(85, 750, 215, 770));
textBoxField.setPartialName("textbox1");
textBoxField.setValue("Text Box");
//TextBoxField.Border = nouvelle bordure();
com.aspose.pdf.Border border = new com.aspose.pdf.Border(textBoxField);
border.setWidth(2);
border.setDash(new com.aspose.pdf.Dash(1, 1));
textBoxField.setBorder(border);
textBoxField.getDefaultAppearance().setFontSize(10);
textBoxField.setColor(com.aspose.pdf.Color.fromRgb(java.awt.Color.GREEN));
// Ajouter un champ au document
pdfdoc.getForm().add(textBoxField, 1);
String JS = "var w = this.getField('" + textBoxField.getPartialName() + "'); var today = new Date(); w.value = today.toLocaleString();";
pdfdoc.setOpenAction(new com.aspose.pdf.JavascriptAction(JS));
pdfdoc.save(dataDir + "JS_Form.pdf");

Conclusion

Nous avons appris à créer des formulaires PDF à remplir, ainsi qu’à remplir ou à modifier les champs du formulaire à l’aide de l’environnement Java. De plus, nous avons également exploré la préservation des droits étendus dans les documents PDF en plus d’utiliser JavaScript sur une action de document PDF. En cas de problème ou de problème, n’hésitez pas à nous contacter sur Forum d’assistance gratuit.

Voir également