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