Fyll i PDF-formulär Java

I dessa moderna tider samlas mycket data in med hjälp av formulär och ifyllbara PDF-formulär är värda att nämna i sammanhanget. De är ett effektivt sätt att samla in och ordna information. Dessutom används nu ifyllbara PDF-formulär som standard av olika institutioner. Till exempel kan en domstol eller ett upphandlingsföretag effektivt använda ifyllbara PDF-formulär för att standardisera sina förfaranden. För att skapa sådana applikationer är Aspose.PDF för Java API det mest lämpliga API:et. Nyfiken på varför? Låt oss utforska följande användningsfall där vi kommer att arbeta med PDF-formulär programmatiskt.

Installation

Du kan gå till avsnittet New Releases där du kan konfigurera API:et för att berika dina Java-applikationer och göra det möjligt för dem att bearbeta PDF-dokument, eller så kan du definiera beroendet i din Maven-applikation enligt:

Förvar:

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

Beroende:

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

Efter att ha lyckats konfigurera API:t, låt oss gå vidare till följande användningsfall:

Skapa ifyllbara PDF-formulär med Java

Du kan skapa ett ifyllbart PDF-formulär i Java-applikationer genom att följa stegen nedan:

  1. Skapa en PDF-fil med en tom sida
  2. Lägg till fältet TextBox och fältet RadioButton på sidan
  3. Spara den utgående PDF-filen

Kodavsnittet nedan visar hur du skapar ett ifyllbart PDF-formulär från början med 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));
// Lägg till formulärfält på första sidan i PDF-dokumentet            
pdfdoc.getForm().add(nameBox, 1);
pdfdoc.getForm().add(mrnBox, 1);

//Lägg till radioknappar vid specifika positionskoordinater i PDF
com.aspose.pdf.Table table = new com.aspose.pdf.Table();
//Ställ in position här
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");

Fyll, ändra eller ta bort formulärfält i befintlig PDF med Java

Vi har lärt oss att skapa en ny ifyllbar PDF-fil från grunden. Låt oss gå vidare till scenarier där befintliga PDF-dokument bearbetas:

i) Fyll i ett formulärfält i befintlig PDF-fil med Java

Liksom vi har skapat PDF-formuläret i exemplet ovan, låt oss fortsätta med samma dokument och fylla i formulärfälten programmatiskt med Java. Du kan fylla i det skapade formuläret med följande steg:

  1. Ladda indatafil
  2. Fyll i värden i fältet TextBox
  3. Fyll i fälten RadioButton genom att välja ett alternativ
  4. Spara PDF-formulär

Kodavsnittet nedan visar hur du fyller ifyllbara formulär med Java:

// Öppna dokumentet
com.aspose.pdf.Document pdfDocument = new com.aspose.pdf.Document(dataDir + "Fillable_PDF_Form.pdf");

// Få fälten
TextBoxField textBoxField1 = (TextBoxField) pdfDocument.getForm().get("nameBox1");
TextBoxField textBoxField2 = (TextBoxField) pdfDocument.getForm().get("Box1");
// Fyll i formulärfältens värden
textBoxField1.setValue("A quick brown fox jumped over a lazy dog.");
textBoxField2.setValue("A quick brown fox jumped over a lazy dog.");

// Hämta alternativknappsfält
RadioButtonField radioField = (RadioButtonField) pdfDocument.getForm().get("radio");
// Ange indexet för alternativknappen från gruppen
radioField.setSelected(1);

dataDir = dataDir + "Fill_PDF_Form_Field.pdf";
// Spara uppdaterat dokument
pdfDocument.save(dataDir);

ii) Ändra ett formulärfält i PDF-dokument med Java

Ibland behöver vi redigera eller uppdatera fältvärden i ett PDF-formulär. Du kan enkelt redigera ett ifyllbart PDF-formulär med stegen nedan:

  1. Initiera indata-PDF
  2. Få en referens till formulärfältet med dess namn
  3. Redigera PDF-formuläret
  4. Spara redigerat PDF-formulär

Kodavsnittet nedan visar hur man uppdaterar eller redigerar en ifyllbar PDF-fil med Java:

// Öppna dokumentet
com.aspose.pdf.Document pdfDocument = new com.aspose.pdf.Document(dataDir + "Fill_PDF_Form_Field.pdf");
// Skaffa ett fält
TextBoxField textBoxField = (TextBoxField) pdfDocument.getForm().get("nameBox1");
// Ändra fältvärdet
textBoxField.setValue("Changed Value");
textBoxField.setReadOnly(true);
dataDir = dataDir + "ModifyFormField.pdf";
// Spara uppdaterat dokument
pdfDocument.save(dataDir);

iii) Ta bort ett formulärfält i befintlig PDF-fil med Java

Du kan enkelt ta bort eller ta bort ett formulärfält i dina Java-applikationer. Du kan följa stegen nedan:

  1. Initiera ett PDF-formulär
  2. Ta bort formulärfältet med dess namn
  3. Spara uppdaterat PDF-formulär

Nedan kodavsnitt visar hur man tar bort ett formulärfält från PDF-formulär med Java:

// Öppna dokumentet
com.aspose.pdf.Document pdfDocument = new com.aspose.pdf.Document(dataDir + "Fill_PDF_Form_Field.pdf");
// Ta bort ett visst fält efter namn
pdfDocument.getForm().delete("nameBox1");
dataDir = dataDir + "Delete_Form_Field.pdf";
// Spara ändrat dokument
pdfDocument.save(dataDir);

Bevara utökade rättigheter för PDF-formulär med Java

Du kanske märker att vissa PDF-formulär har utökade rättigheter. De används för att undvika ändringar i originalinnehållet och endast ifyllning av formulär är tillåtet. Utökade rättigheter för PDF-filer kan påverkas när

Du fyller i ett sådant formulär och sparar det på olika platser på disken. Därför måste vi spara sådana filer stegvis med följande steg:

  1. Initiera PDF-formulär
  2. Fyll i fälten
  3. Spara det ifyllda PDF-dokumentet

Kodavsnittet nedan visar hur du bevarar utökade rättigheter när du fyller i PDF-formulär med Java:

// Instantiera dokumentinstans
com.aspose.pdf.Document pdfDocument = new com.aspose.pdf.Document(dataDir + "Fill_PDF_Form_Field.pdf");
// Få värden från alla fält
for (com.aspose.pdf.Field formField : pdfDocument.getForm().getFields())
{
    // Om fältets fullständiga namn innehåller nameBox1, utför åtgärden
    if (formField.getFullName().contains("nameBox1"))
    {
        // Cast formulärfält som TextBox
        TextBoxField textBoxField = (TextBoxField) formField;
        // Ändra fältvärdet
        textBoxField.setValue("Preserve Extended Features");
    }
}
// Spara det uppdaterade dokumentet
pdfDocument.save();

Använd JavaScript i PDF-format med Java

Du kan fylla i de ifyllbara PDF-formulärfälten med Javascript med Aspose.PDF för Java. Du bör följa följande steg:

  1. Ladda PDF-dokument
  2. Lägg till ett fält på specifik sidplats
  3. Ställ in JavaScript och öppna åtgärden för dokumentet Spara PDF-fil

Följande kodavsnitt visar hur du använder JavaScript i ifyllbara PDF-formulär:

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));
// Lägg till fält i dokumentet
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");

Slutsats

Vi har lärt oss hur man skapar ifyllbara PDF-formulär, samt fyller eller redigerar formulärfälten med hjälp av Java-miljön. Dessutom har vi också utforskat hur vi kan bevara de utökade rättigheterna i PDF-dokument förutom att använda JavaScript på en PDF-dokumentåtgärd. Om du har några problem eller problem, var god kontakta oss på Free Support Forum.

Se även