Sök…


Anmärkningar

iText 5 är ett bibliotek som har vuxit organiskt. Många utvecklare bidrog med kod. Till exempel: en utvecklare bidrog med kod för att skapa formulärfält från början med klasser som TextField och PdfFormField ; en annan utvecklare bidrog med kod för att ändra befintliga AcroField med AcroField klassen och en serie setFieldProperty() metoder setFieldProperty() .

I iText 5 kan klasserna som används för att skapa formulärfält inte användas för att ändra formfält, och vice versa. Det finns inget samband mellan de två klasserna. Det är förvirrande för många användare. Till exempel: vissa användare upptäcker TextField klassen och antar att de kan använda den klassen för att ändra egenskaperna för ett befintligt textfält. Detta är inte fallet, de måste använda AcroFields klassen istället.

Allt detta är fixat i iText 7. Vi skapade en ny uppsättning klasser som PdfFormField och dess underklass PdfTextField som kan användas för att skapa ett nytt fält samt för att uppdatera ett befintligt formulärfält.

Fältmetoderna iText 7 kan kedjas för att göra din kod mer kompakt, och de är mycket mer intuitiva än motsvarande metoder i iText 5. Att göra formfunktionaliteten mer elegant var ett av de viktigaste skälen att skriva om iText från början.

FormCreation.java (iText 5)

I detta iText 5-exempel skapar vi ett textfält och lägger till det i en PDF:

ange bildbeskrivning här

public void manipulatePdf(String src, String dest) throws DocumentException, IOException {
    PdfReader reader = new PdfReader(src);
    PdfStamper stamper = new PdfStamper(reader, new FileOutputStream(dest));
    TextField tf = new TextField(stamper.getWriter(),
        new Rectangle(110, 780, 180, 806), "text");
    tf.setBorderColor(BaseColor.BLUE);
    tf.setBorderWidth(2);
    tf.setTextColor(BaseColor.RED);
    tf.setFontSize(12);
    tf.setText("Text field");
    PdfFormField field = tf.getTextField();
    stamper.addAnnotation(field, 1);
    stamper.close();
    reader.close();
}

Källa: utvecklare.itextpdf.com

FormCreation.java (iText 7)

I detta iText 7-exempel skapar vi ett textfält och lägger till det i en PDF:

ange bildbeskrivning här

public void manipulatePdf(String src, String dest) throws IOException {
    PdfReader reader = new PdfReader(src);
    PdfDocument pdf = new PdfDocument(reader, new PdfWriter(dest));
    PdfAcroForm form = PdfAcroForm.getAcroForm(pdf, true);
    PdfFormField tf = PdfTextFormField.createText(
        pdf, new Rectangle(110, 780, 70, 26), "text", "Text Field")
        .setBorderColor(Color.BLUE)
        .setBorderWidth(2)
        .setColor(Color.RED)
        .setFontSize(12);
    form.addField(tf);
    pdf.close();
}

Källa: utvecklare.itextpdf.com

FormFilling.java (iText 5)

I detta iText 5-exempel kommer vi att ändra egenskaperna och värdet för ett textfält:

ange bildbeskrivning här

public void manipulatePdf(String src, String dest) throws DocumentException, IOException {
    PdfReader reader = new PdfReader(src);
    PdfStamper stamper = new PdfStamper(reader, new FileOutputStream(dest));
    AcroFields fields = stamper.getAcroFields();
    fields.setFieldProperty("text", "textcolor", BaseColor.BLUE, null);
    fields.setFieldProperty("text", "bordercolor", BaseColor.RED, null);
    fields.setFieldProperty("text", "fontsize", 14, null);
    fields.setField("text", "Field Text");
    stamper.close();
    reader.close();
}

Källa: utvecklare.itextpdf.com

FormFilling.java (iText 7)

I detta iText 7-exempel kommer vi att ändra egenskaperna och värdet för ett textfält:

ange bildbeskrivning här

public void manipulatePdf(String src, String dest) throws IOException {
    PdfReader reader = new PdfReader(src);
    PdfDocument pdf = new PdfDocument(reader, new PdfWriter(dest));
    PdfAcroForm form = PdfAcroForm.getAcroForm(pdf, true);
    PdfFormField tf = form.getFormFields().get("text");
    tf.setBorderColor(Color.RED)
        .setColor(Color.BLUE)
        .setFontSize(14)
        .setValue("Field Text");
    pdf.close();
}

Källa: utvecklare.itextpdf.com



Modified text is an extract of the original Stack Overflow Documentation
Licensierat under CC BY-SA 3.0
Inte anslutet till Stack Overflow