Füllen Sie das PDF-Formular Java aus

In der heutigen Zeit werden viele Daten über Formulare gesammelt und in diesem Zusammenhang sind ausfüllbare PDF-Formulare erwähnenswert. Sie sind eine effiziente Möglichkeit, Informationen zu sammeln und zu ordnen. Darüber hinaus werden ausfüllbare PDF-Formulare inzwischen von verschiedenen Institutionen standardmäßig verwendet. Beispielsweise können einige Gerichte oder ein Beschaffungsunternehmen ausfüllbare PDF-Formulare effizient verwenden, um ihre Verfahren zu standardisieren. Zum Erstellen solcher Anwendungen ist Aspose.PDF for Java API die am besten geeignete API. Neugierig warum? Lassen Sie uns die folgenden Anwendungsfälle untersuchen, in denen wir programmgesteuert mit PDF-Formularen arbeiten werden.

Installation

Sie können zum Abschnitt Neue Versionen gehen, wo Sie die API konfigurieren können, um Ihre Java Anwendungen zu erweitern und ihnen die Verarbeitung von PDF Dokumenten zu ermöglichen, oder Sie können die Abhängigkeit in Ihrer Maven Anwendung wie folgt definieren:

Repository:

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

Abhängigkeit:

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

Lassen Sie uns nach erfolgreicher Konfiguration der API zu den folgenden Anwendungsfällen übergehen:

Erstellen Sie ausfüllbare PDF-Formulare mit Java

Sie können ausfüllbare PDF-Formulare in Java Anwendungen erstellen, indem Sie die folgenden Schritte ausführen:

  1. Erstellen Sie eine PDF Datei mit einer leeren Seite
  2. Fügen Sie das Feld TextBox und das Feld RadioButton auf der Seite hinzu
  3. Speichern Sie die ausgegebene PDF Datei

Das folgende code snippet zeigt, wie Sie mit Java ein ausfüllbares PDF-Formular von Grund auf neu erstellen:

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));
// Formularfelder zur ersten Seite des PDF Dokuments hinzufügen            
pdfdoc.getForm().add(nameBox, 1);
pdfdoc.getForm().add(mrnBox, 1);

//Radiobuttons an bestimmten Positionskoordinaten in PDF hinzufügen
com.aspose.pdf.Table table = new com.aspose.pdf.Table();
//Stellen Sie hier die Position ein
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");

Füllen, ändern oder löschen Sie Formularfelder in bestehenden PDFs mit Java

Wir haben gelernt, eine neue ausfüllbare PDF Datei von Grund auf neu zu erstellen. Lassen Sie uns zu Szenarien übergehen, in denen vorhandene PDF Dokumente verarbeitet werden:

i) Füllen Sie ein Formularfeld in einer vorhandenen PDF Datei mit Java aus

So wie wir das PDF-Formular im obigen Beispiel erstellt haben, lassen Sie uns mit demselben Dokument fortfahren und die Formularfelder programmgesteuert mit Java ausfüllen. Sie können das erstellte Formular mit den folgenden Schritten ausfüllen:

  1. Eingabedatei laden
  2. Geben Sie Werte in das Feld TextBox ein
  3. Füllen Sie RadioButton-Felder aus, indem Sie eine Option auswählen
  4. PDF-Formular speichern

Das folgende code snippet zeigt, wie ausfüllbare Formulare mit Java ausgefüllt werden:

// Dokument öffnen
com.aspose.pdf.Document pdfDocument = new com.aspose.pdf.Document(dataDir + "Fillable_PDF_Form.pdf");

// Holen Sie sich die Felder
TextBoxField textBoxField1 = (TextBoxField) pdfDocument.getForm().get("nameBox1");
TextBoxField textBoxField2 = (TextBoxField) pdfDocument.getForm().get("Box1");
// Füllen Sie die Werte der Formularfelder aus
textBoxField1.setValue("A quick brown fox jumped over a lazy dog.");
textBoxField2.setValue("A quick brown fox jumped over a lazy dog.");

// Optionsfeld abrufen
RadioButtonField radioField = (RadioButtonField) pdfDocument.getForm().get("radio");
// Geben Sie den Index des Optionsfelds aus der Gruppe an
radioField.setSelected(1);

dataDir = dataDir + "Fill_PDF_Form_Field.pdf";
// Aktualisiertes Dokument speichern
pdfDocument.save(dataDir);

ii) Ändern Sie ein Formularfeld in einem PDF Dokument mit Java

Manchmal müssen wir Feldwerte in einem PDF-Formular bearbeiten oder aktualisieren. Sie können ein ausfüllbares PDF-Formular ganz einfach mit den folgenden Schritten bearbeiten:

  1. Eingabe PDF initialisieren
  2. Holen Sie sich einen Verweis auf das Formularfeld anhand seines Namens
  3. Bearbeiten Sie das PDF-Formular
  4. Bearbeitetes PDF-Formular speichern

Das folgende code snippet zeigt, wie Sie eine ausfüllbare PDF Datei mit Java aktualisieren oder bearbeiten:

// Dokument öffnen
com.aspose.pdf.Document pdfDocument = new com.aspose.pdf.Document(dataDir + "Fill_PDF_Form_Field.pdf");
// Holen Sie sich ein Feld
TextBoxField textBoxField = (TextBoxField) pdfDocument.getForm().get("nameBox1");
// Feldwert ändern
textBoxField.setValue("Changed Value");
textBoxField.setReadOnly(true);
dataDir = dataDir + "ModifyFormField.pdf";
// Aktualisiertes Dokument speichern
pdfDocument.save(dataDir);

iii) Löschen Sie ein Formularfeld in einer vorhandenen PDF Datei mit Java

Sie können ein Formularfeld einfach in Ihren Java Anwendungen entfernen oder löschen. Sie können die folgenden Schritte ausführen:

  1. Initialisieren Sie ein PDF-Formular
  2. Löschen Sie das Formularfeld mit seinem Namen
  3. Aktualisiertes PDF-Formular speichern

Das folgende code snippet zeigt, wie Sie ein Formularfeld aus einem PDF-Formular mit Java löschen:

// Dokument öffnen
com.aspose.pdf.Document pdfDocument = new com.aspose.pdf.Document(dataDir + "Fill_PDF_Form_Field.pdf");
// Löschen Sie ein bestimmtes Feld nach Namen
pdfDocument.getForm().delete("nameBox1");
dataDir = dataDir + "Delete_Form_Field.pdf";
// Geändertes Dokument speichern
pdfDocument.save(dataDir);

Bewahren Sie erweiterte Rechte von PDF-Formularen mit Java

Möglicherweise stellen Sie fest, dass einige PDF-Formulare erweiterte Rechte haben. Sie werden verwendet, um Änderungen am ursprünglichen Inhalt zu vermeiden, und es ist nur das Ausfüllen von Formularen erlaubt. Erweiterte Rechte von PDF Dateien können davon betroffen sein

Sie füllen ein solches Formular aus und speichern es an verschiedenen Orten auf der Festplatte. Daher müssen wir solche Dateien inkrementell mit den folgenden Schritten speichern:

  1. PDF-Formular initialisieren
  2. Füllen Sie die Felder aus
  3. Speichern Sie das ausgefüllte PDF Dokument

Das folgende code snippet zeigt, wie erweiterte Rechte beim Ausfüllen von PDF-Formularen mit Java beibehalten werden:

// Dokumentinstanz instanziieren
com.aspose.pdf.Document pdfDocument = new com.aspose.pdf.Document(dataDir + "Fill_PDF_Form_Field.pdf");
// Holen Sie sich Werte aus allen Feldern
for (com.aspose.pdf.Field formField : pdfDocument.getForm().getFields())
{
    // Wenn der vollständige Name des Felds nameBox1 enthält, führen Sie die Operation aus
    if (formField.getFullName().contains("nameBox1"))
    {
        // Formularfeld als TextBox umwandeln
        TextBoxField textBoxField = (TextBoxField) formField;
        // Feldwert ändern
        textBoxField.setValue("Preserve Extended Features");
    }
}
// Speichern Sie das aktualisierte Dokument
pdfDocument.save();

Verwenden Sie JavaScript im PDF-Formular mit Java

Sie können die ausfüllbaren PDF-Formularfelder mit Javascript mit Aspose.PDF for Java ausfüllen. Sie sollten die folgenden Schritte befolgen:

  1. PDF Dokument laden
  2. Fügen Sie ein Feld an einer bestimmten Seitenposition hinzu
  3. Stellen Sie JavaScript ein und öffnen Sie die Aktion für das Dokument PDF Datei speichern

Das folgende code snippet zeigt, wie JavaScript in ausfüllbaren PDF-Formularen verwendet wird:

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 = new Border();
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));
// Feld zum Dokument hinzufügen
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");

Fazit

Wir haben gelernt, wie man ausfüllbare PDF-Formulare erstellt und die Formularfelder mithilfe der Java-Umgebung ausfüllt oder bearbeitet. Darüber hinaus haben wir neben der Verwendung von JavaScript für eine PDF Dokumentaktion auch die Beibehaltung der erweiterten Rechte in PDF Dokumenten untersucht. Bei Bedenken oder Problemen können Sie sich gerne unter Free Support Forum an uns wenden.

Siehe auch