Zoeken…


Opmerkingen

iText 5 is een bibliotheek die organisch is gegroeid. Veel ontwikkelaars hebben code bijgedragen. Bijvoorbeeld: een ontwikkelaar heeft code bijgedragen om formuliervelden helemaal opnieuw te maken, met behulp van klassen zoals TextField en PdfFormField ; een andere ontwikkelaar heeft code bijgedragen om bestaande formuliervelden te wijzigen, met behulp van de klasse AcroField en een reeks methoden setFieldProperty() .

In iText 5 kunnen de klassen die worden gebruikt om formuliervelden te maken niet worden gebruikt om formuliervelden te wijzigen, en omgekeerd. Er is geen enkele relatie tussen de twee klassen. Dat is verwarrend voor veel gebruikers. Bijvoorbeeld: sommige gebruikers ontdekken de TextField en nemen aan dat ze die klasse kunnen gebruiken om de eigenschappen van een bestaand tekstveld te wijzigen. Dit is niet het geval, ze moeten in plaats daarvan de klasse AcroFields gebruiken.

Dit alles is opgelost in iText 7. We hebben een nieuwe set klassen gemaakt, zoals PdfFormField en de subklasse PdfTextField die kunnen worden gebruikt om een nieuw veld te maken en om een bestaand formulierveld bij te werken.

De iText 7-formulierveldmethoden kunnen worden gekoppeld om uw code compacter te maken en ze zijn veel intuïtiever dan de overeenkomstige methoden in iText 5. Het eleganter maken van de formulierfunctionaliteit was een van de belangrijkste redenen om iText helemaal opnieuw te schrijven.

FormCreation.java (iText 5)

In dit iText 5-voorbeeld maken we een tekstveld en voegen we het toe aan een PDF:

voer hier de afbeeldingsbeschrijving in

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();
}

Bron: developers.itextpdf.com

FormCreation.java (iText 7)

In dit iText 7-voorbeeld maken we een tekstveld en voegen we het toe aan een PDF:

voer hier de afbeeldingsbeschrijving in

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();
}

Bron: developers.itextpdf.com

FormFilling.java (iText 5)

In dit iText 5-voorbeeld zullen we de eigenschappen en de waarde van een tekstveld wijzigen:

voer hier de afbeeldingsbeschrijving in

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();
}

Bron: developers.itextpdf.com

FormFilling.java (iText 7)

In dit iText 7-voorbeeld zullen we de eigenschappen en de waarde van een tekstveld wijzigen:

voer hier de afbeeldingsbeschrijving in

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();
}

Bron: developers.itextpdf.com



Modified text is an extract of the original Stack Overflow Documentation
Licentie onder CC BY-SA 3.0
Niet aangesloten bij Stack Overflow