Les champs de formulaire PDF, également appelés champs interactifs, sont principalement utilisés pour collecter des informations sur les utilisateurs. Les champs de formulaire courants comprennent les boutons radio, les cases à cocher, les zones de liste et les zones de liste déroulante. Ce texte vous montrera comment utiliser Free Spire.PDF pour Java pour créer des champs de formulaire PDF dans votre programme Java.
** Importer le package JAR ** ** Méthode 1: ** Téléchargez Free Spire.PDF pour Java, décompressez-le et dans le dossier lib Importez le package jar directement dans votre application Java en tant que dépendance.
** Méthode 2: ** Installez le package jar à partir du référentiel Maven et configurez le code dans le fichier pom.xml comme suit:
<repositories>
   <repository>
      <id>com.e-iceblue</id>
      <name>e-iceblue</name>
      <url>http://repo.e-iceblue.com/nexus/content/groups/public/</url>
   </repository>
</repositories>
<dependencies>
   <dependency>
      <groupId>e-iceblue</groupId>
      <artifactId>spire.pdf.free</artifactId>
      <version>2.6.3</version>
   </dependency>
</dependencies>
** Code Java **
import java.awt.*;
import java.awt.geom.Point2D;
import java.awt.geom.Rectangle2D;
import com.spire.pdf.FileFormat;
import com.spire.pdf.PdfDocument;
import com.spire.pdf.PdfPageBase;
import com.spire.pdf.fields.*;
import com.spire.pdf.graphics.*;
public class AddFormFields {
    public static void main(String[] args) throws Exception {
        //Créer un objet PdfDocument
        PdfDocument doc = new PdfDocument();
        //Ajouter une page
        PdfPageBase page = doc.getPages().add();
        //Initialiser les variables de position
        float baseX = 100;
        float baseY = 0;
        //Créer un objet pinceau
        PdfSolidBrush brush1 = new PdfSolidBrush(new PdfRGBColor(Color.BLUE));
        PdfSolidBrush brush2 = new PdfSolidBrush(new PdfRGBColor(Color.black));
        //Créer une police TrueType
        PdfTrueTypeFont font= new PdfTrueTypeFont(new Font("MS Mincho",Font.PLAIN,12),true);
        //Ajouter une case à cocher
        page.getCanvas().drawString("Case à cocher:", font, brush1, new Point2D.Float(0, baseY));
        java.awt.geom.Rectangle2D.Float rec1 = new java.awt.geom.Rectangle2D.Float(baseX, baseY, 15, 15);
        PdfCheckBoxField checkBoxField = new PdfCheckBoxField(page, "CheckBox1");
        checkBoxField.setBounds(rec1);
        checkBoxField.setChecked(false);
        page.getCanvas().drawString("Option 2", font, brush2, new Point2D.Float(baseX + 20, baseY));
        java.awt.geom.Rectangle2D.Float rec2 = new java.awt.geom.Rectangle2D.Float(baseX + 70, baseY, 15, 15);
        PdfCheckBoxField checkBoxField1 = new PdfCheckBoxField(page, "CheckBox2");
        checkBoxField1.setBounds(rec2);
        checkBoxField1.setChecked(false);
        page.getCanvas().drawString("Option 2", font,  brush2, new Point2D.Float(baseX+90, baseY));
        doc.getForm().getFields().add(checkBoxField);
        baseY += 25;
        //Ajouter une zone de liste
        page.getCanvas().drawString("zone de liste:", font, brush1, new Point2D.Float(0, baseY));
        java.awt.geom.Rectangle2D.Float rec = new java.awt.geom.Rectangle2D.Float(baseX, baseY, 150, 50);
        PdfListBoxField listBoxField = new PdfListBoxField(page, "ListBox");
        listBoxField.getItems().add(new PdfListFieldItem("Objet 1", "item1"));
        listBoxField.getItems().add(new PdfListFieldItem("Point 2", "item2"));
        listBoxField.getItems().add(new PdfListFieldItem("Point 3", "item3"));;
        listBoxField.setBounds(rec);
        listBoxField.setFont(font);
        listBoxField.setSelectedIndex(0);
        doc.getForm().getFields().add(listBoxField);
        baseY += 60;
        //Ajouter un bouton radio
        page.getCanvas().drawString("Boutons radio:", font, brush1, new Point2D.Float(0, baseY));
        PdfRadioButtonListField radioButtonListField = new PdfRadioButtonListField(page, "Radio");
        PdfRadioButtonListItem radioItem1 = new PdfRadioButtonListItem("Item1");
        radioItem1.setBounds(new Rectangle2D.Float(baseX, baseY, 15, 15));
        page.getCanvas().drawString("Option 1", font, brush2, new Point2D.Float(baseX + 20, baseY));
        PdfRadioButtonListItem radioItem2 = new PdfRadioButtonListItem("Item2");
        radioItem2.setBounds(new Rectangle2D.Float(baseX + 70, baseY, 15, 15));
        page.getCanvas().drawString("Option 2", font, brush2, new Point2D.Float(baseX + 90, baseY));
        radioButtonListField.getItems().add(radioItem1);radioButtonListField.getItems().add(radioItem2);
        radioButtonListField.setSelectedIndex(0);
        doc.getForm().getFields().add(radioButtonListField);
        baseY += 25;
        //Ajouter une zone de liste déroulante
        page.getCanvas().drawString("boîte combo:", font, brush1, new Point2D.Float(0, baseY));
        Rectangle2D.Float cmbBounds = new Rectangle2D.Float(baseX, baseY, 150, 15);
        PdfComboBoxField comboBoxField = new PdfComboBoxField(page, "ComboBox");
        comboBoxField.setBounds(cmbBounds);
        comboBoxField.getItems().add(new PdfListFieldItem("Objet 1", "item1"));
        comboBoxField.getItems().add(new PdfListFieldItem("Point 2", "itme2"));
        comboBoxField.getItems().add(new PdfListFieldItem("Point 3", "item3"));
        comboBoxField.getItems().add(new PdfListFieldItem("Point 4", "item4"));
        comboBoxField.setSelectedIndex(0);
        comboBoxField.setFont(font);
        doc.getForm().getFields().add(comboBoxField);
        baseY += 25;
        //Ajouter un champ de signature
        page.getCanvas().drawString("Domaine de signature:", font, brush1, new Point2D.Float(0, baseY));
        PdfSignatureField sgnField= new PdfSignatureField(page,"sgnField");
        Rectangle2D.Float sgnBounds = new Rectangle2D.Float(baseX, baseY, 150, 80);
        sgnField.setBounds(sgnBounds);
        doc.getForm().getFields().add(sgnField);
        baseY += 90;
        //Ajouter un bouton
        page.getCanvas().drawString("Bouton de soumission:", font, brush1, new Point2D.Float(0, baseY));
        Rectangle2D.Float btnBounds = new Rectangle2D.Float(baseX, baseY, 50, 15);
        PdfButtonField buttonField = new PdfButtonField(page, "Button");
        buttonField.setBounds(btnBounds);buttonField.setText("envoyer");
        buttonField.setFont(font);
        doc.getForm().getFields().add(buttonField);
        //Sauvegarder le document
        doc.saveToFile("AddFormField.pdf", FileFormat.PDF);
    }
}

Recommended Posts