Java fügt Formularfelder zu PDF hinzu

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);
    }
}

p

Recommended Posts

Java fügt Formularfelder zu PDF hinzu
Java fügt PDF eine Tabelle hinzu
Java fügt vorhandenen PDF-Dokumenten Seitenzahlen hinzu
Java zum Extrahieren von PDF-Textinhalten
Java fügt PowerPoint SmartArt-Grafiken hinzu
Java fügt Hyperlinks zu Word-Dokumenten hinzu
Fügen Sie dem PDF-Dokument ein Wasserzeichen zu Java hinzu
[Java] Einführung in Java
Einführung in Java
So verbergen Sie Nullfelder als Antwort in Java
Java fügt PowerPoint-Folien ein Textfeld hinzu
So greifen Sie auf Java Private-Methoden und -Felder zu
[Java] PDF-Version konvertieren
Änderungen von Java 8 zu Java 11
Summe von Java_1 bis 100
Java-komprimiertes PDF-Dokument
[Java] Stellen Sie eine Verbindung zu MySQL her
Kotlins Verbesserungen an Java
[Java] PDF-Anzeigeeinstellungen
Java-Anwendungen konvertieren Word-Dokumente (DOC / DOCX) in PDF
Von Java zu Ruby !!
Einführung in den Java-Befehl
So simulieren Sie das Hochladen von Post-Object-Formularen in OSS in Java
So senken Sie die Java-Version
Migration von Cobol nach JAVA
[Java] Verwendung von Map
So deinstallieren Sie Java 8 (Mac)
Java zum Spielen mit Function
Java - So erstellen Sie JTable
Verwendung von Java Optional
Neue Funktionen von Java7 bis Java8
So minimieren Sie Java-Images
Wie schreibe ich einen Java-Kommentar
Stellen Sie eine Verbindung von Java zu PostgreSQL her
[Java] Verwendung von removeAll ()
Java verwandelt Excel in PDF
[Java] Einführung in den Lambda-Ausdruck
Shell zum Beenden von Java-Prozessen
Verwendung von Java Map
Stellen Sie mit Java eine Verbindung zur Datenbank her
Stellen Sie mit Java eine Verbindung zu MySQL 8 her
[Java] Einführung in die Stream-API
Java8 startet jetzt ~ Optional ~
So konvertieren Sie Java Base
[Java] Konvertiert ArrayList in Array
Java-Thread locker zu verstehen
[Java] So implementieren Sie Multithreading
Von ineffektivem Java zu effektivem Java
So initialisieren Sie ein Java-Array
Selenium Musterbuchungsformular (Java)
[Einführung in Janken (ähnliche) Spiele] Java
Eingabe in die Java-Konsole
Ich habe versucht, das Java-kompatible FaaS-Formular "Fn Project" auszuführen.