PDF-Formularfelder, auch als interaktive Felder bezeichnet, werden hauptsächlich zum Sammeln von Benutzerinformationen verwendet. Zu den allgemeinen Formularfeldern gehören Optionsfelder, Kontrollkästchen, Listenfelder und Kombinationsfelder. Dieser Text zeigt Ihnen, wie Sie mit Free Spire.PDF für Java PDF-Formularfelder in Ihrem Java-Programm erstellen.
** JAR-Paket importieren ** ** Methode 1: ** Laden Sie Free Spire.PDF für Java herunter, entpacken Sie es und legen Sie es im lib-Ordner ab Importieren Sie das JAR-Paket als Abhängigkeit direkt in Ihre Java-Anwendung.
** Methode 2: ** Installieren Sie das JAR-Paket aus dem Maven-Repository und konfigurieren Sie den Code in der Datei pom.xml wie folgt:
<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>
** Java-Code **
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 {
//Erstellen Sie ein PdfDocument-Objekt
PdfDocument doc = new PdfDocument();
//Seite hinzufügen
PdfPageBase page = doc.getPages().add();
//Positionsvariablen initialisieren
float baseX = 100;
float baseY = 0;
//Erstellen Sie ein Pinselobjekt
PdfSolidBrush brush1 = new PdfSolidBrush(new PdfRGBColor(Color.BLUE));
PdfSolidBrush brush2 = new PdfSolidBrush(new PdfRGBColor(Color.black));
//Erstellen Sie eine TrueType-Schriftart
PdfTrueTypeFont font= new PdfTrueTypeFont(new Font("MS Mincho",Font.PLAIN,12),true);
//Kontrollkästchen hinzufügen
page.getCanvas().drawString("Kontrollkästchen:", 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;
//Listenfeld hinzufügen
page.getCanvas().drawString("Listenfeld:", 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("Gegenstand 1", "item1"));
listBoxField.getItems().add(new PdfListFieldItem("Punkt 2", "item2"));
listBoxField.getItems().add(new PdfListFieldItem("Punkt 3", "item3"));;
listBoxField.setBounds(rec);
listBoxField.setFont(font);
listBoxField.setSelectedIndex(0);
doc.getForm().getFields().add(listBoxField);
baseY += 60;
//Optionsfeld hinzufügen
page.getCanvas().drawString("Radio knopf:", 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;
//Kombinationsfeld hinzufügen
page.getCanvas().drawString("Kombinationsfeld:", 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("Gegenstand 1", "item1"));
comboBoxField.getItems().add(new PdfListFieldItem("Punkt 2", "itme2"));
comboBoxField.getItems().add(new PdfListFieldItem("Punkt 3", "item3"));
comboBoxField.getItems().add(new PdfListFieldItem("Punkt 4", "item4"));
comboBoxField.setSelectedIndex(0);
comboBoxField.setFont(font);
doc.getForm().getFields().add(comboBoxField);
baseY += 25;
//Signaturfeld hinzufügen
page.getCanvas().drawString("Signierdomäne:", 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;
//Schaltfläche Hinzufügen
page.getCanvas().drawString("Senden-Schaltfläche:", 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("senden");
buttonField.setFont(font);
doc.getForm().getFields().add(buttonField);
//Speichern Sie das Dokument
doc.saveToFile("AddFormField.pdf", FileFormat.PDF);
}
}
Recommended Posts