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
- Wypełnij pole formularza w istniejącym pliku PDF za pomocą języka Java
- Zmodyfikuj pole formularza w dokumencie PDF za pomocą języka Java
- Usuń pole formularza w istniejącym pliku PDF za pomocą języka Java
- Zachowaj rozszerzone prawa formularzy PDF przy użyciu języka Java
- Użyj JavaScript w formularzu PDF za pomocą Java
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:
- Utwórz plik PDF z pustą stroną
- Dodaj pole TextBox i pole RadioButton na stronie
- 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:
- Załaduj plik wejściowy
- Wypełnij wartości w polu TextBox.
- Wypełnij pola RadioButton, wybierając opcję
- 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:
- Zainicjuj wejściowy plik PDF
- Uzyskaj odwołanie do pola formularza według jego nazwy
- Edytuj formularz PDF
- 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:
- Zainicjuj formularz PDF
- Usuń pole formularza, używając jego nazwy
- 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:
- Zainicjuj formularz PDF
- Wypełnij pola
- 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:
- Załaduj dokument PDF
- Dodaj pole w określonej lokalizacji strony
- 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.