Wypełnij formularz PDF Java

W dzisiejszych czasach wiele danych jest gromadzonych za pomocą formularzy, a w tym kontekście warto wspomnieć o formularzach PDF z możliwością wypełniania. Są skutecznym sposobem gromadzenia i porządkowania informacji. Co więcej, formularze PDF do wypełnienia są obecnie standardowo stosowane przez różne instytucje. Na przykład jakiś sąd lub firma zaopatrzeniowa może skutecznie używać formularzy PDF do wypełnienia w celu ujednolicenia swoich procedur. Do tworzenia takich aplikacji najodpowiedniejszym API jest Aspose.PDF for Java API. Chcesz wiedzieć dlaczego? Przyjrzyjmy się następującym przypadkom użycia, w których będziemy programowo pracować z formularzami PDF.

Instalacja

Możesz przejść do sekcji New Releases, gdzie możesz skonfigurować API w celu wzbogacenia aplikacji Java i umożliwienia im przetwarzania dokumentów PDF lub możesz zdefiniować zależność w swojej aplikacji Maven w następujący sposób:

Magazyn:

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

Zależność:

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

Po pomyślnym skonfigurowaniu API przejdźmy do następujących przypadków użycia:

Twórz formularze PDF do wypełnienia przy użyciu języka Java

Możesz utworzyć formularz PDF do wypełnienia w aplikacjach Java, wykonując poniższe czynności:

  1. Utwórz plik PDF z pustą stroną
  2. Dodaj pole TextBox i pole RadioButton na stronie
  3. Zapisz wyjściowy plik PDF

Poniższy fragment kodu pokazuje, jak utworzyć formularz PDF do wypełnienia od podstaw przy użyciu języka Java:

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));
// Dodaj pola formularza do pierwszej strony dokumentu PDF            
pdfdoc.getForm().add(nameBox, 1);
pdfdoc.getForm().add(mrnBox, 1);

//Dodaj przyciski opcji w określonych współrzędnych pozycji w formacie PDF
com.aspose.pdf.Table table = new com.aspose.pdf.Table();
//Ustaw pozycję tutaj
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");

Wypełnij, zmodyfikuj lub usuń pola formularza w istniejącym pliku PDF przy użyciu języka Java

Nauczyliśmy się tworzyć od podstaw nowy plik PDF do wypełnienia. Przejdźmy do scenariuszy, w których przetwarzane są istniejące dokumenty PDF:

i) Wypełnij pole formularza w istniejącym pliku PDF za pomocą języka Java

Tak jak utworzyliśmy formularz PDF w powyższym przykładzie, przejdźmy do tego samego dokumentu i wypełnijmy pola formularza programowo przy użyciu języka Java. Możesz wypełnić utworzony formularz, wykonując poniższe czynności:

  1. Załaduj plik wejściowy
  2. Wypełnij wartości w polu TextBox.
  3. Wypełnij pola RadioButton, wybierając opcję
  4. Zapisz formularz PDF

Poniższy fragment kodu pokazuje, jak wypełniać formularze do wypełnienia przy użyciu języka Java:

// Otwórz dokument
com.aspose.pdf.Document pdfDocument = new com.aspose.pdf.Document(dataDir + "Fillable_PDF_Form.pdf");

// Zdobądź pola
TextBoxField textBoxField1 = (TextBoxField) pdfDocument.getForm().get("nameBox1");
TextBoxField textBoxField2 = (TextBoxField) pdfDocument.getForm().get("Box1");
// Wypełnij wartości pól formularza
textBoxField1.setValue("A quick brown fox jumped over a lazy dog.");
textBoxField2.setValue("A quick brown fox jumped over a lazy dog.");

// Pobierz pole przycisku radiowego
RadioButtonField radioField = (RadioButtonField) pdfDocument.getForm().get("radio");
// Określ indeks przycisku radiowego z grupy
radioField.setSelected(1);

dataDir = dataDir + "Fill_PDF_Form_Field.pdf";
// Zapisz zaktualizowany dokument
pdfDocument.save(dataDir);

ii) Zmodyfikuj pole formularza w dokumencie PDF za pomocą języka Java

Czasami musimy edytować lub aktualizować wartości pól w formularzu PDF. Możesz łatwo edytować formularz PDF do wypełnienia, wykonując poniższe czynności:

  1. Zainicjuj wejściowy plik PDF
  2. Uzyskaj odwołanie do pola formularza według jego nazwy
  3. Edytuj formularz PDF
  4. Zapisz edytowany formularz PDF

Poniższy fragment kodu pokazuje, jak zaktualizować lub edytować plik PDF do wypełnienia za pomocą języka Java:

// Otwórz dokument
com.aspose.pdf.Document pdfDocument = new com.aspose.pdf.Document(dataDir + "Fill_PDF_Form_Field.pdf");
// Zdobądź pole
TextBoxField textBoxField = (TextBoxField) pdfDocument.getForm().get("nameBox1");
// Zmodyfikuj wartość pola
textBoxField.setValue("Changed Value");
textBoxField.setReadOnly(true);
dataDir = dataDir + "ModifyFormField.pdf";
// Zapisz zaktualizowany dokument
pdfDocument.save(dataDir);

iii) Usuń pole formularza w istniejącym pliku PDF za pomocą języka Java

Możesz łatwo usunąć lub usunąć pole formularza w swoich aplikacjach Java. Możesz wykonać poniższe czynności:

  1. Zainicjuj formularz PDF
  2. Usuń pole formularza, używając jego nazwy
  3. Zapisz zaktualizowany formularz PDF

Poniższy fragment kodu pokazuje, jak usunąć pole formularza z formularza PDF za pomocą języka Java:

// Otwórz dokument
com.aspose.pdf.Document pdfDocument = new com.aspose.pdf.Document(dataDir + "Fill_PDF_Form_Field.pdf");
// Usuń określone pole według nazwy
pdfDocument.getForm().delete("nameBox1");
dataDir = dataDir + "Delete_Form_Field.pdf";
// Zapisz zmodyfikowany dokument
pdfDocument.save(dataDir);

Zachowaj rozszerzone prawa formularzy PDF przy użyciu języka Java

Możesz zauważyć, że niektóre formularze PDF mają rozszerzone uprawnienia. Stosowane są w celu uniknięcia modyfikacji oryginalnej treści i dozwolone jest jedynie wypełnianie formularzy. Rozszerzone prawa do plików PDF mogą zostać naruszone, gdy

Wypełniasz taki formularz i zapisujesz go w różnych miejscach na dysku. Dlatego musimy stopniowo zapisywać takie pliki, wykonując poniższe czynności:

  1. Zainicjuj formularz PDF
  2. Wypełnij pola
  3. Zapisz wypełniony dokument PDF

Poniższy fragment kodu pokazuje, jak zachować rozszerzone uprawnienia podczas wypełniania formularza PDF przy użyciu Javy:

// Utwórz instancję dokumentu
com.aspose.pdf.Document pdfDocument = new com.aspose.pdf.Document(dataDir + "Fill_PDF_Form_Field.pdf");
// Pobierz wartości ze wszystkich pól
for (com.aspose.pdf.Field formField : pdfDocument.getForm().getFields())
{
    // Jeśli pełna nazwa pola zawiera nameBox1, wykonaj operację
    if (formField.getFullName().contains("nameBox1"))
    {
        // Rzuć pole formularza jako TextBox
        TextBoxField textBoxField = (TextBoxField) formField;
        // Zmodyfikuj wartość pola
        textBoxField.setValue("Preserve Extended Features");
    }
}
// Zapisz zaktualizowany dokument
pdfDocument.save();

Użyj JavaScript w formularzu PDF za pomocą Java

Możesz wypełnić pola formularzy PDF, które można wypełnić, używając JavaScript z Aspose.PDF for Java. Powinieneś wykonać następujące kroki:

  1. Załaduj dokument PDF
  2. Dodaj pole w określonej lokalizacji strony
  3. Ustaw JavaScript i otwórz akcję dla dokumentu Zapisz plik PDF

Poniższy fragment kodu pokazuje, jak używać JavaScript w formularzach PDF do wypełnienia:

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 = nowa granica();
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));
// Dodaj pole do dokumentu
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");

Wniosek

Nauczyliśmy się tworzyć wypełnialne formularze PDF, a także wypełniać lub edytować pola formularzy za pomocą środowiska Java. Co więcej, zbadaliśmy również zachowanie rozszerzonych praw w dokumentach PDF oprócz używania JavaScript w działaniach związanych z dokumentami PDF. W przypadku jakichkolwiek wątpliwości lub problemów prosimy o kontakt na Free Support Forum.

Zobacz też