Vyplňte formulář PDF Java

V dnešní moderní době se spousta dat sbírá pomocí formulářů a za zmínku v této souvislosti stojí vyplnitelné PDF formuláře. Jsou efektivním způsobem sběru a uspořádání informací. Kromě toho jsou nyní různé instituce standardně používány vyplnitelné formuláře PDF. Například některé soudy nebo dodavatelské firmy mohou efektivně používat vyplnitelné formuláře PDF ke standardizaci svých postupů. Pro vytváření takových aplikací je nejvhodnějším API Aspose.PDF for Java API. Chcete vědět proč? Podívejme se na následující případy použití, kdy budeme s formuláři PDF pracovat programově.

Instalace

Můžete přejít do sekce Nové verze, kde můžete nakonfigurovat API tak, aby obohatilo vaše Java aplikace a umožnilo jim zpracovávat dokumenty PDF, nebo můžete definovat závislost ve vaší aplikaci Maven takto:

úložiště:

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

Závislost:

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

Po úspěšné konfiguraci rozhraní API přejdeme k následujícím případům použití:

Vytvářejte vyplnitelné formuláře PDF pomocí Java

Vyplnitelný formulář PDF můžete vytvořit v aplikacích Java podle následujících kroků:

  1. Vytvořte soubor PDF s prázdnou stránkou
  2. Přidejte na stránku pole TextBox a pole RadioButton
  3. Uložte výstupní soubor PDF

Níže uvedený úryvek kódu ukazuje, jak vytvořit vyplnitelný formulář PDF od začátku pomocí 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));
// Přidejte pole formuláře na první stránku dokumentu PDF            
pdfdoc.getForm().add(nameBox, 1);
pdfdoc.getForm().add(mrnBox, 1);

//Přidejte přepínací tlačítka na konkrétní souřadnice polohy v PDF
com.aspose.pdf.Table table = new com.aspose.pdf.Table();
//Zde nastavte pozici
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");

Vyplňte, upravte nebo odstraňte pole formuláře ve existujícím PDF pomocí Java

Naučili jsme se vytvářet nový vyplnitelný soubor PDF od začátku. Pokračujme scénáři, kde se zpracovávají existující dokumenty PDF:

i) Vyplňte pole formuláře ve existujícím souboru PDF pomocí Java

Stejně jako jsme vytvořili formulář PDF ve výše uvedeném příkladu, pokračujte se stejným dokumentem a vyplňte pole formuláře programově pomocí Java. Vytvořený formulář můžete vyplnit níže uvedenými kroky:

  1. Načíst vstupní soubor
  2. Vyplňte hodnoty do pole TextBox
  3. Vyplňte pole RadioButton výběrem možnosti
  4. Uložte formulář PDF

Níže uvedený fragment kódu ukazuje, jak vyplnit vyplnitelné formuláře pomocí Java:

// Otevřete dokument
com.aspose.pdf.Document pdfDocument = new com.aspose.pdf.Document(dataDir + "Fillable_PDF_Form.pdf");

// Získejte pole
TextBoxField textBoxField1 = (TextBoxField) pdfDocument.getForm().get("nameBox1");
TextBoxField textBoxField2 = (TextBoxField) pdfDocument.getForm().get("Box1");
// Vyplňte hodnoty polí formuláře
textBoxField1.setValue("A quick brown fox jumped over a lazy dog.");
textBoxField2.setValue("A quick brown fox jumped over a lazy dog.");

// Získat pole přepínače
RadioButtonField radioField = (RadioButtonField) pdfDocument.getForm().get("radio");
// Zadejte index přepínacího tlačítka ze skupiny
radioField.setSelected(1);

dataDir = dataDir + "Fill_PDF_Form_Field.pdf";
// Uložit aktualizovaný dokument
pdfDocument.save(dataDir);

ii) Upravte pole formuláře v dokumentu PDF pomocí Java

Někdy potřebujeme upravit nebo aktualizovat hodnoty polí ve formuláři PDF. Vyplnitelný formulář PDF můžete snadno upravit pomocí následujících kroků:

  1. Inicializujte vstupní PDF
  2. Získejte odkaz na pole formuláře podle jeho názvu
  3. Upravte formulář PDF
  4. Uložte upravený formulář PDF

Níže uvedený fragment kódu ukazuje, jak aktualizovat nebo upravit vyplnitelný soubor PDF pomocí Java:

// Otevřete dokument
com.aspose.pdf.Document pdfDocument = new com.aspose.pdf.Document(dataDir + "Fill_PDF_Form_Field.pdf");
// Získejte pole
TextBoxField textBoxField = (TextBoxField) pdfDocument.getForm().get("nameBox1");
// Upravit hodnotu pole
textBoxField.setValue("Changed Value");
textBoxField.setReadOnly(true);
dataDir = dataDir + "ModifyFormField.pdf";
// Uložit aktualizovaný dokument
pdfDocument.save(dataDir);

iii) Odstraňte pole formuláře ze stávajícího souboru PDF pomocí Java

Pole formuláře můžete ve svých aplikacích Java snadno odstranit nebo odstranit. Můžete postupovat podle následujících kroků:

  1. Inicializujte formulář PDF
  2. Odstraňte pole formuláře s jeho názvem
  3. Uložit aktualizovaný formulář PDF

Níže uvedený fragment kódu ukazuje, jak odstranit pole formuláře z formuláře PDF pomocí Java:

// Otevřete dokument
com.aspose.pdf.Document pdfDocument = new com.aspose.pdf.Document(dataDir + "Fill_PDF_Form_Field.pdf");
// Odstraňte konkrétní pole podle názvu
pdfDocument.getForm().delete("nameBox1");
dataDir = dataDir + "Delete_Form_Field.pdf";
// Uložte upravený dokument
pdfDocument.save(dataDir);

Zachovejte rozšířená práva na formuláře PDF pomocí Java

Můžete si všimnout, že některé formuláře PDF mají rozšířená práva. Používají se k zamezení úprav původního obsahu a je povoleno pouze vyplňování formulářů. Rozšířená práva souborů PDF mohou být ovlivněna, když

Takový formulář vyplníte a uložíte na různá místa na disku. Proto musíme tyto soubory ukládat postupně pomocí následujících kroků:

  1. Inicializujte formulář PDF
  2. Vyplňte pole
  3. Uložte vyplněný dokument PDF

Níže uvedený fragment kódu ukazuje, jak zachovat rozšířená práva při vyplňování formuláře PDF pomocí Java:

// Instancia dokumentu instance
com.aspose.pdf.Document pdfDocument = new com.aspose.pdf.Document(dataDir + "Fill_PDF_Form_Field.pdf");
// Získejte hodnoty ze všech polí
for (com.aspose.pdf.Field formField : pdfDocument.getForm().getFields())
{
    // Pokud celý název pole obsahuje nameBox1, proveďte operaci
    if (formField.getFullName().contains("nameBox1"))
    {
        // Přenést pole formuláře jako textové pole
        TextBoxField textBoxField = (TextBoxField) formField;
        // Upravit hodnotu pole
        textBoxField.setValue("Preserve Extended Features");
    }
}
// Uložte aktualizovaný dokument
pdfDocument.save();

Použijte JavaScript ve formuláři PDF pomocí Java

Vyplnitelná pole formuláře PDF můžete vyplnit pomocí Javascriptu pomocí Aspose.PDF for Java. Měli byste postupovat podle následujících kroků:

  1. Načíst dokument PDF
  2. Přidejte pole na konkrétní umístění stránky
  3. Nastavte JavaScript a akci otevření pro dokument Uložit soubor PDF

Následující úryvek kódu ukazuje, jak používat JavaScript ve vyplnitelných formulářích PDF:

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));
// Přidejte 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");

Závěr

Naučili jsme se vytvářet vyplnitelné formuláře PDF a také vyplňovat nebo upravovat pole formuláře pomocí prostředí Java. Kromě toho jsme také prozkoumali zachování rozšířených práv v dokumentech PDF kromě použití JavaScriptu na akci dokumentu PDF. V případě jakýchkoli obav nebo problémů nás neváhejte kontaktovat na Free Support Forum.

Viz také