Example usage for com.lowagie.text.pdf PdfStamper setFormFlattening

List of usage examples for com.lowagie.text.pdf PdfStamper setFormFlattening

Introduction

In this page you can find the example usage for com.lowagie.text.pdf PdfStamper setFormFlattening.

Prototype

public void setFormFlattening(boolean flat) 

Source Link

Document

Determines if the fields are flattened on close.

Usage

From source file:com.multimedianetwork.gliding.core.generators.pdf.MembershipRequestPDFGenerator.java

public synchronized void generateMembershipRequestPDF(MembershipRequest membershipRequest) {
    try {//from w  ww  . ja  va  2s.  c o  m

        HttpServletRequest request = (HttpServletRequest) FacesContext.getCurrentInstance().getExternalContext()
                .getRequest();

        String templateFilename = request.getRealPath(FILES_FOLDER + LOCAL_TEMPLATE_PATH_FULL);
        if (membershipRequest.isTemporaryMembership()) {
            templateFilename = request.getRealPath(FILES_FOLDER + LOCAL_TEMPLATE_PATH_TEMP);
        }

        String newfilename = request.getRealPath(FILES_FOLDER + "req" + membershipRequest.getId() + ".pdf");

        //Reads in the pdf Template
        PdfReader reader = new PdfReader(templateFilename);

        PdfStamper stamp = new PdfStamper(reader, new FileOutputStream(newfilename));
        AcroFields form = stamp.getAcroFields();

        //set the field values in the pdf form
        form.setField("lastName", membershipRequest.getLastName());
        form.setField("firstName", membershipRequest.getFirstName());
        form.setField("citizenship", membershipRequest.getCitizenship());
        form.setField("icSerie", membershipRequest.getIcSerie());
        form.setField("icNumber", membershipRequest.getIcNumber());
        form.setField("pasportNumber", membershipRequest.getPasportNumber());
        form.setField("cnp", membershipRequest.getCnp());
        form.setField("addressNumber", membershipRequest.getAddressNumber());
        form.setField("addressCity", membershipRequest.getAddressCity());
        form.setField("addressStreet", membershipRequest.getAddressStreet());
        form.setField("addressFlat", membershipRequest.getAddressFlat());
        form.setField("addressSc", membershipRequest.getAddressSc());
        form.setField("addressFloor", membershipRequest.getAddressFloor());
        form.setField("addressApartment", membershipRequest.getAddressApartment());
        form.setField("addressCode", membershipRequest.getAddressCode());
        form.setField("addressCounty", membershipRequest.getAddressCounty());
        form.setField("addressCountry", membershipRequest.getAddressCountry());
        form.setField("telephone", membershipRequest.getTelephone());
        form.setField("email", membershipRequest.getEmail());
        form.setField("birthDateDay", String.valueOf(membershipRequest.getBirthDateDay()));
        form.setField("birthDateMonth", String.valueOf(membershipRequest.getBirthDateMonth()));
        form.setField("birthDateYear", String.valueOf(membershipRequest.getBirthDateYear()));
        form.setField("birthPlaceCity", membershipRequest.getBirthPlaceCity());
        form.setField("birthPlaceCounty", membershipRequest.getBirthPlaceCounty());
        form.setField("birthPlaceCountry", membershipRequest.getBirthPlaceCountry());

        form.setField("licenseNumber", membershipRequest.getLicenseNumber());
        if (membershipRequest.getExperienceNrHours() != null) {
            form.setField("experienceNrHours", String.valueOf(membershipRequest.getExperienceNrHours()));
        }
        if (membershipRequest.getExperienceNrTakeoffs() != null) {
            form.setField("experienceNrTakeoffs", String.valueOf(membershipRequest.getExperienceNrTakeoffs()));
        }
        if (membershipRequest.getExperienceNrKm() != null) {
            form.setField("experienceNrKm", String.valueOf(membershipRequest.getExperienceNrKm()));
        }

        if (membershipRequest.isBAcrobaticFlight()) {
            form.setField("BAcrobaticFlight", "On");
        }
        if (membershipRequest.isBControlFlight()) {
            form.setField("BControlFlight", "On");
        }
        if (membershipRequest.isBGliderLicense()) {
            form.setField("BGliderLicense", "On");
        }
        if (membershipRequest.isBInCloudsFlight()) {
            form.setField("BInCloudsFlight", "On");
        }
        if (membershipRequest.isBInstructor()) {
            form.setField("BInstructor", "On");
        }
        if (membershipRequest.isBMotorgliderLicense()) {
            form.setField("BMotorgliderLicense", "On");
        }
        if (membershipRequest.isBNightFlight()) {
            form.setField("BNightFlight", "On");
        }
        if (membershipRequest.isBTestPilot()) {
            form.setField("BTestPilot", "On");
        }
        if (membershipRequest.isBTowingPlane()) {
            form.setField("BTowingPlane", "On");
        }
        if (membershipRequest.isBTowingSelf()) {
            form.setField("BTowingSelf", "On");
        }
        if (membershipRequest.isBTowingWinch()) {
            form.setField("BTowingWinch", "On");
        }

        stamp.setFormFlattening(true);
        stamp.close();
        reader.close();

    } catch (IOException ex) {
        Logger.getLogger(MembershipRequestPDFGenerator.class.getName()).log(Level.SEVERE, null, ex);
    } catch (DocumentException ex) {
        Logger.getLogger(MembershipRequestPDFGenerator.class.getName()).log(Level.SEVERE, null, ex);
    }

}

From source file:com.openkm.util.PDFUtils.java

License:Open Source License

/**
 * Fill PDF form/* www. j a  va2 s .  c  o  m*/
 */
@SuppressWarnings("rawtypes")
public static void fillForm(InputStream input, Map<String, Object> values, OutputStream output)
        throws FileNotFoundException, DocumentException, TemplateException, IOException {
    log.debug("fillForm({}, {}, {})", new Object[] { input, values, output });
    PdfReader reader = new PdfReader(input);
    PdfStamper stamper = new PdfStamper(reader, output);
    AcroFields fields = stamper.getAcroFields();
    PRAcroForm form = reader.getAcroForm();
    boolean formFlattening = false;

    if (form != null) {
        for (Iterator it = form.getFields().iterator(); it.hasNext();) {
            PRAcroForm.FieldInformation field = (PRAcroForm.FieldInformation) it.next();
            String fieldValue = fields.getField(field.getName());
            log.debug("Field: {}, Value: '{}'", field.getName(), fieldValue);

            if (fieldValue != null && !fieldValue.isEmpty()) {
                // if (values.containsKey(field.getName())) {
                String result = TemplateUtils.replace("PDF_FILL_FORM", fieldValue, values);
                log.debug("Field '{}' set to '{}' (by expression)", field.getName(), result);
                fields.setFieldProperty(field.getName(), "textfont", getBaseFont(), null);
                fields.setField(field.getName(), result);
                stamper.partialFormFlattening(field.getName());
                formFlattening = true;
                // } else {
                // log.warn("Field '{}' (expression ignored because not included in map)", field.getName());
                // }
            } else {
                Object value = values.get(field.getName());

                if (value != null) {
                    log.debug("Field '{}' set to '{}' (by field name)", field.getName(), value);
                    fields.setFieldProperty(field.getName(), "textfont", getBaseFont(), null);
                    fields.setField(field.getName(), value.toString());
                    stamper.partialFormFlattening(field.getName());
                    formFlattening = true;
                } else {
                    log.warn("Field '{}' (value ignored because not included in map)", field.getName());
                }
            }
        }
    }

    stamper.setFormFlattening(formFlattening);
    stamper.close();
    reader.close();
}

From source file:com.servoy.extensions.plugins.pdf_output.PDFProvider.java

License:Open Source License

/**
 * Convert a protected PDF form to a PDF document.
 *
 * @sample//  www  . ja v  a  2 s  . co m
 * var pdfform = plugins.file.readFile('c:/temp/1040a-form.pdf');
 * //var field_values = plugins.file.readFile('c:/temp/1040a-data.fdf');//read adobe fdf values or
 * var field_values = new Array()//construct field values
 * field_values[0] = 'f1-1=John C.J.'
 * field_values[1] = 'f1-2=Longlasting'
 * var result_pdf_doc = plugins.pdf_output.convertProtectedPDFFormToPDFDocument(pdfform, 'pdf_password', field_values)
 * if (result_pdf_doc != null)
 * {
 *    plugins.file.writeFile('c:/temp/1040a-flatten.pdf', result_pdf_doc)
 * }
 *
 * @param pdf_form the PDF Form to convert
 * @param pdf_password the password to use
 * @param field_values the field values to use
 */
public byte[] js_convertProtectedPDFFormToPDFDocument(byte[] pdf_form, String pdf_password,
        Object field_values) {
    try {
        ByteArrayOutputStream baos = new ByteArrayOutputStream();
        PdfReader reader = new PdfReader(pdf_form, pdf_password != null ? pdf_password.getBytes() : null);
        PdfStamper stamp = new PdfStamper(reader, baos);
        if (field_values != null) {
            AcroFields form = stamp.getAcroFields();
            if (field_values instanceof String) {
                FdfReader fdf = new FdfReader((String) field_values);
                form.setFields(fdf);
            } else if (field_values instanceof byte[]) {
                FdfReader fdf = new FdfReader((byte[]) field_values);
                form.setFields(fdf);
            } else if (field_values instanceof Object[]) {
                for (int i = 0; i < ((Object[]) field_values).length; i++) {
                    Object obj = ((Object[]) field_values)[i];
                    if (obj instanceof Object[]) {
                        Object[] row = (Object[]) obj;
                        if (row.length >= 2) {
                            Object field = row[0];
                            Object value = row[1];
                            if (field != null && value != null) {
                                form.setField(field.toString(), value.toString());
                            }
                        }
                        //                     else if (row.length >= 3)
                        //                     {
                        //                            form.setField(field, value);
                        //                     }
                    } else if (obj instanceof String) {
                        String s = (String) obj;
                        int idx = s.indexOf('=');
                        form.setField(s.substring(0, idx), s.substring(idx + 1));
                    }
                }
            }
        }
        stamp.setFormFlattening(true);
        stamp.close();
        return baos.toByteArray();
    } catch (Exception e) {
        Debug.error(e);
        throw new RuntimeException("Error converting pdf form to pdf document", e); //$NON-NLS-1$
    }
}

From source file:com.urservices.urerp.ecole.views.PdfReportView.java

@Override
protected void buildPdfDocument(Map<String, Object> model, Document document, PdfWriter pdfWriter,
        HttpServletRequest request, HttpServletResponse response) throws Exception {

    try {// ww  w.  ja  v  a  2s.  co m

        PdfReader pdfTemplate = new PdfReader((InputStream) model.get("template"));
        PdfStamper stamper = new PdfStamper(pdfTemplate, response.getOutputStream());
        stamper.setFormFlattening(true);

        stamper.getAcroFields().setField("txtNom", "Kamdoum");
        stamper.getAcroFields().setField("txtPrenom", "Samuel");

        stamper.close();
        pdfTemplate.close();

        System.out.println("This PDF has " + pdfTemplate.getNumberOfPages() + " pages.");

    } catch (Exception e) {
        System.out.println("PdfReportView.buildPdfDocument() " + e.getMessage());
    }
}

From source file:erando.controllers.InterfaceRandoController.java

void genererpdf() throws IOException, FileNotFoundException, DocumentException {

    PdfReader pdfTemplate = new PdfReader("templatefacture.pdf");
    RandonneService rando = new RandonneService();
    Randonne r = new Randonne();
    r = rando.findById(RecupererIdRando.getIdRando());
    FileOutputStream fileOutputStream = new FileOutputStream("test.pdf");
    ByteArrayOutputStream out = new ByteArrayOutputStream();
    PdfStamper stamper = new PdfStamper(pdfTemplate, fileOutputStream);
    stamper.setFormFlattening(true);

    stamper.getAcroFields().setField("name", r.getTitre());
    stamper.getAcroFields().setField("montant", String.valueOf(r.getPrix()));
    stamper.getAcroFields().setField("depart", r.getPointDepart());
    stamper.getAcroFields().setField("arrivee", r.getDestination());
    stamper.getAcroFields().setField("date", String.valueOf(r.getDate()));
    stamper.close();//from w ww .  j  av a  2 s  .  c o m
    pdfTemplate.close();

}

From source file:erando.controllers.ReservationByuserController.java

void genererpdf() throws IOException, FileNotFoundException, DocumentException {

    PdfReader pdfTemplate = new PdfReader("templatefacture.pdf");
    FileOutputStream fileOutputStream = new FileOutputStream("test.pdf");
    ByteArrayOutputStream out = new ByteArrayOutputStream();
    PdfStamper stamper = new PdfStamper(pdfTemplate, fileOutputStream);
    stamper.setFormFlattening(true);

    stamper.getAcroFields().setField("name", titre);
    stamper.getAcroFields().setField("montant", String.valueOf(prix));
    stamper.getAcroFields().setField("depart", depart);
    stamper.getAcroFields().setField("arrivee", destination);
    stamper.getAcroFields().setField("date", String.valueOf(date));
    stamper.close();//from   www.  ja  va2  s.c o  m
    pdfTemplate.close();

}

From source file:erando.services.impl.pdfCreation.java

public void genererpdf(String titre, float prix, String imageName, int id, String description)
        throws IOException, FileNotFoundException, DocumentException {

    PdfReader pdfTemplate = new PdfReader("template.pdf");
    FileOutputStream fileOutputStream = new FileOutputStream(id + ".pdf");
    ByteArrayOutputStream out = new ByteArrayOutputStream();
    PdfStamper stamper = new PdfStamper(pdfTemplate, fileOutputStream);
    stamper.setFormFlattening(true);
    stamper.getAcroFields().setField("titre", titre.toUpperCase());
    stamper.getAcroFields().setField("description", description);
    stamper.getAcroFields().setField("prix", "" + prix);

    stamper.close();/*from   ww w . ja v a  2  s  .  c  o  m*/
    pdfTemplate.close();

}

From source file:hornet.framework.export.fdf.FDF.java

License:CeCILL license

/**
 * Thread-safe utility method for PDF generation, based on a FDF template stream and a data object to
 * merge. Fields defined in FDF that can't be merged (not corresponding field in data object) are stored
 * in FDF Result./*w w  w .j a v a2s. c o m*/
 *
 * @param in
 *            input stream of PDF/FDF (template)
 * @param out
 *            output stream of final PDF
 * @param data
 *            a javabean or a java.util.Map. Nested properties are allowed this field names access pattern
 *            : "propA:propB:propC".
 * @return FDF result object (not null)
 */
public static FDFRes export(final InputStream in, final OutputStream out, final Object data) {

    PdfReader pdfIn = null;
    PdfStamper stamper = null;
    final FDFRes res = new FDFRes();

    try {
        pdfIn = new PdfReader(in);
        stamper = new PdfStamper(pdfIn, out);
        final AcroFields form = stamper.getAcroFields();

        // fusion champs FDF avec le bean
        for (final Object nomField : form.getFields().keySet()) {
            fusionChamp(data, stamper, res, form, nomField);
        }

        // la ligne suivante supprime le formulaire
        stamper.setFormFlattening(true);

    } catch (final IOException ex) {
        throw new FDFExportException(ex);
    } catch (final DocumentException ex) {
        throw new FDFExportException(ex);
    } finally {
        try {
            stamper.close();
        } catch (final Exception ex) {
            LOG.error("Erreur", ex);
        }
    }

    return res;
}

From source file:it.jugpadova.blo.ParticipantBadgeBo.java

License:Apache License

/**
 * Build a PDF with the badges of confirmed participants.
 *//*from   w w  w .jav a 2s . co  m*/
public byte[] buildPDFBadges(Event event) throws IOException, DocumentException {
    List<Participant> participants = participantDao
            .findConfirmedParticipantsByEventIdOrderByLastNameAndFirstName(event.getId());
    int participantsPerPage = getParticipantsPerPage(event);
    int pages = (participants.size() / participantsPerPage) + 2; // prints a more page with empty badges
    ByteArrayOutputStream pdfMergedBaos = new ByteArrayOutputStream();
    PdfCopyFields pdfMerged = new PdfCopyFields(pdfMergedBaos);
    int newIndex = 1;
    for (int i = 0; i < pages; i++) {
        InputStream templateIs = getBadgePageTemplateInputStream(event);
        RandomAccessFileOrArray rafa = new RandomAccessFileOrArray(templateIs);
        PdfReader template = new PdfReader(rafa, null);
        ByteArrayOutputStream pdfPageBaos = new ByteArrayOutputStream();
        PdfStamper pdfPage = new PdfStamper(template, pdfPageBaos);
        AcroFields pdfPageForm = pdfPage.getAcroFields();
        for (int j = 1; j <= participantsPerPage; j++) {
            pdfPageForm.renameField("title" + j, "title" + newIndex);
            pdfPageForm.renameField("firstName" + j, "firstName" + newIndex);
            pdfPageForm.renameField("lastName" + j, "lastName" + newIndex);
            pdfPageForm.renameField("firm" + j, "firm" + newIndex);
            pdfPageForm.renameField("role" + j, "role" + newIndex);
            newIndex++;
        }
        pdfPage.close();
        template.close();
        pdfMerged.addDocument(new PdfReader(pdfPageBaos.toByteArray()));
    }
    pdfMerged.close();
    ByteArrayOutputStream resultBaos = new ByteArrayOutputStream();
    PdfReader mergedReader = new PdfReader(pdfMergedBaos.toByteArray());
    PdfStamper mergedStamper = new PdfStamper(mergedReader, resultBaos);
    AcroFields mergedForm = mergedStamper.getAcroFields();
    int count = 1;
    for (int i = 0; i < pages; i++) {
        for (int j = 1; j <= participantsPerPage; j++) {
            mergedForm.setField("title" + count, event.getTitle());
            count++;
        }
    }
    count = 1;
    for (Participant participant : participants) {
        mergedForm.setField("firstName" + count, participant.getFirstName());
        mergedForm.setField("lastName" + count, participant.getLastName());
        count++;
    }
    mergedStamper.setFormFlattening(true);
    mergedStamper.close();
    return resultBaos.toByteArray();
}

From source file:mpv5.utils.export.PDFFile.java

License:Open Source License

@Override
public void run() {

    Log.Debug(this, "All fields:");
    for (Iterator<String> it = getData().keySet().iterator(); it.hasNext();) {
        String k = it.next();/* w ww  .  j  a v  a  2 s  . c o  m*/
        Log.Debug(this, "Key: " + k + " [" + getData().get(k) + "]");
    }
    try {
        Log.Debug(this, "Running export for template file: " + getPath() + "  to file: " + getTarget());
        try {
            template = new PdfReader(getPath());
        } catch (Exception iOException) {
            Log.Debug(iOException);
        }
        Log.Debug(this, "Checking PDF File: " + getPath());
        acroFields = template.getAcroFields();
        Log.Debug(this, "Creating PDF File: " + getTarget().getPath());
        PdfStamper pdfStamper = new PdfStamper(template, new FileOutputStream(getTarget().getPath()));
        pdfStamper.setFormFlattening(true);
        acroFields = pdfStamper.getAcroFields();
        HashMap PDFFields = acroFields.getFields();
        for (Iterator it = PDFFields.keySet().iterator(); it.hasNext();) {
            Object object = it.next();
            String keyt = String.valueOf(object);
            if (getData().get(keyt) != null) {
                Log.Debug(this, "Filling Field: " + object + " [" + getData().get(keyt) + "]");
                if (!keyt.startsWith("image")) {
                    acroFields.setField(keyt, String.valueOf(getData().get(keyt)));
                } else {
                    setImage(pdfStamper, keyt, ((MPIcon) getData().get(keyt)).getImage());
                }
            }
            if (getData().get(keyt.replace("_", ".")) != null) {
                Log.Debug(this, "Filling Field: " + object + " [" + getData().get(keyt) + "]");
                if (!keyt.startsWith("image")) {
                    acroFields.setField(keyt, String.valueOf(getData().get(keyt.replace("_", "."))));
                } else {
                    setImage(pdfStamper, keyt, ((MPIcon) getData().get(keyt)).getImage());
                }
            }
        }

        Log.Debug(this, "Looking for tables in: " + getName());
        for (Iterator<String> it = getData().keySet().iterator(); it.hasNext();) {
            String key = it.next();
            if (key.contains(TableHandler.KEY_TABLE)) {//Table found
                @SuppressWarnings("unchecked")
                List<String[]> value = (List<String[]>) getData().get(key);
                for (int i = 0; i < value.size(); i++) {
                    String[] strings = value.get(i);
                    if (getTemplate() != null) {
                        strings = refactorRow(getTemplate(), strings);
                    }
                    for (int j = 0; j < strings.length; j++) {
                        String cellValue = strings[j];
                        String fieldname = "col" + j + "row" + i;
                        Log.Debug(this, "Filling Field: " + fieldname + " [" + getData().get(cellValue) + "]");
                        acroFields.setField(fieldname, cellValue);
                    }
                }
            }
        }

        pdfStamper.close();
        Log.Debug(this, "Done file: " + getTarget().getPath());
    } catch (Exception ex) {
        Log.Debug(ex);
    }
}