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

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

Introduction

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

Prototype

public PdfStamper(PdfReader reader, OutputStream os) throws DocumentException, IOException 

Source Link

Document

Starts the process of adding extra content to an existing PDF document.

Usage

From source file:com.iana.dver.controller.DverUserController.java

License:Open Source License

private void sendChangePwdEmail(DverUserVO dverUser, DverConfigVO dverConfig, String newPwd)
        throws IOException, DocumentException, AddressException {

    try {//  ww w .j a va  2s.  c o m
        PdfReader reader = new PdfReader(
                servletContext.getResourceAsStream("/WEB-INF/email_templates/DVER_CHANGE_PWD_FORM.pdf"));

        File tempFile = File.createTempFile("DVER_CHANGE_PWD_" + securityObj.getUserName(), ".pdf");

        PdfStamper filledOutForm = new PdfStamper(reader, new FileOutputStream(tempFile));
        AcroFields form = filledOutForm.getAcroFields();
        DateFormat dateFormat = new SimpleDateFormat("MM/dd/yyyy HH:mm:ss");
        Date date = new Date();

        form.setField("topmostSubform[0].Page1[0].notif_dt[0]", dateFormat.format(date));
        form.setField("topmostSubform[0].Page1[0].contact_nm[0]",
                dverUser.getFirstName() + " " + dverUser.getLastName());
        form.setField("topmostSubform[0].Page1[0].company[0]", dverUser.getCompanyName());
        form.setField("topmostSubform[0].Page1[0].address[0]",
                dverUser.getAddress1() + " " + dverUser.getAddress2());
        form.setField("topmostSubform[0].Page1[0].city[0]",
                dverUser.getCity() + ", " + dverUser.getState() + " " + dverUser.getZipCode());

        form.setField("topmostSubform[0].Page1[0].scac[0]", dverUser.getScac());
        form.setField("topmostSubform[0].Page1[0].pwd[0]", newPwd);

        filledOutForm.setFormFlattening(Boolean.TRUE);
        filledOutForm.close();

        DVERUtil.sendEmailWithAttachments("admin@dver.intermodal.org", "DVER - Password Change Confirmation",
                new InternetAddress[] { new InternetAddress(dverUser.getEmail()) },
                "Please see attached to know about your changed password.", tempFile);

        if (!dverConfig.getEmail().equals(dverUser.getEmail())) {

            PdfReader reader1 = new PdfReader(
                    servletContext.getResourceAsStream("/WEB-INF/email_templates/DVER_CHANGE_PWD_FORM.pdf"));
            File tempFile1 = File.createTempFile("DVER_CHANGE_PWD_NOTIF_" + securityObj.getUserName(), ".pdf");

            PdfStamper filledOutForm1 = new PdfStamper(reader1, new FileOutputStream(tempFile1));
            AcroFields form1 = filledOutForm1.getAcroFields();

            form1.setField("topmostSubform[0].Page1[0].notif_dt[0]", dateFormat.format(date));
            form1.setField("topmostSubform[0].Page1[0].contact_nm[0]",
                    dverConfig.getFirstName() + " " + dverConfig.getLastName());
            form1.setField("topmostSubform[0].Page1[0].company[0]", dverUser.getCompanyName());
            form1.setField("topmostSubform[0].Page1[0].address[0]",
                    dverUser.getAddress1() + " " + dverUser.getAddress2());
            form1.setField("topmostSubform[0].Page1[0].city[0]",
                    dverUser.getCity() + ", " + dverUser.getState() + " " + dverUser.getZipCode());

            form1.setField("topmostSubform[0].Page1[0].scac[0]", dverUser.getScac());
            form1.setField("topmostSubform[0].Page1[0].pwd[0]", newPwd);

            filledOutForm1.setFormFlattening(Boolean.TRUE);
            filledOutForm1.close();

            DVERUtil.sendEmailWithAttachments("admin@dver.intermodal.org",
                    "DVER - Password Change Confirmation",
                    new InternetAddress[] { new InternetAddress(dverConfig.getEmail()) },
                    "Please see attached to know about your changed password.", tempFile1);
        }

        tempFile.deleteOnExit();

    } catch (Exception ex) {

        logger.error("Error in sendForgotPwdEmail....." + ex);

        DVERUtil.sendExceptionEmails("sendChangePwdEmail method of DverUserController \n " + ex);

    }
}

From source file:com.iana.dver.controller.LoginController.java

License:Open Source License

private void sendForgotPwdEmail(DverUsers dverUser, DverConfig dverConfig, UserLogin dverUserLogin)
        throws IOException, DocumentException, AddressException {

    try {//from   w  w w  .j ava2 s.c  o  m
        PdfReader reader = new PdfReader(
                servletContext.getResourceAsStream("/WEB-INF/email_templates/DVER_FORGOT_PWD_FORM.pdf"));

        File tempFile = File.createTempFile("DVER_FORGOT_PWD_" + dverUserLogin.getUserName(), ".pdf");

        PdfStamper filledOutForm = new PdfStamper(reader, new FileOutputStream(tempFile));
        AcroFields form = filledOutForm.getAcroFields();
        DateFormat dateFormat = new SimpleDateFormat("MM/dd/yyyy HH:mm:ss");
        Date date = new Date();

        form.setField("topmostSubform[0].Page1[0].notif_dt[0]", dateFormat.format(date));
        form.setField("topmostSubform[0].Page1[0].contact_nm[0]",
                dverUser.getFname() + " " + dverUser.getLname());
        form.setField("topmostSubform[0].Page1[0].company[0]", dverUser.getCompanyName());
        form.setField("topmostSubform[0].Page1[0].address[0]", dverUser.getAddr1() + " " + dverUser.getAddr2());
        form.setField("topmostSubform[0].Page1[0].city[0]",
                dverUser.getCity() + ", " + dverUser.getState() + " " + dverUser.getZip());

        form.setField("topmostSubform[0].Page1[0].scac[0]", dverUser.getScac());
        form.setField("topmostSubform[0].Page1[0].pwd[0]", dverUserLogin.getPassword());

        filledOutForm.setFormFlattening(Boolean.TRUE);
        filledOutForm.close();

        DVERUtil.sendEmailWithAttachments("admin@dver.intermodal.org", "DVER - Password Recovery",
                new InternetAddress[] { new InternetAddress(dverUser.getEmail()) },
                "Please see attached to know your forgotten password.", tempFile);

        if (!dverUser.getEmail().equals(dverConfig.getEmail())) {

            PdfReader reader1 = new PdfReader(
                    servletContext.getResourceAsStream("/WEB-INF/email_templates/DVER_FORGOT_PWD_FORM.pdf"));
            File tempFile1 = File.createTempFile("DVER_FORGOT_PWD_NOTIF_" + dverUserLogin.getUserName(),
                    ".pdf");

            PdfStamper filledOutForm1 = new PdfStamper(reader1, new FileOutputStream(tempFile1));
            AcroFields form1 = filledOutForm1.getAcroFields();

            form1.setField("topmostSubform[0].Page1[0].notif_dt[0]", dateFormat.format(date));
            form1.setField("topmostSubform[0].Page1[0].contact_nm[0]",
                    dverConfig.getFname() + " " + dverConfig.getLname());
            form1.setField("topmostSubform[0].Page1[0].company[0]", dverUser.getCompanyName());
            form1.setField("topmostSubform[0].Page1[0].address[0]",
                    dverUser.getAddr1() + " " + dverUser.getAddr2());
            form1.setField("topmostSubform[0].Page1[0].city[0]",
                    dverUser.getCity() + ", " + dverUser.getState() + " " + dverUser.getZip());

            form1.setField("topmostSubform[0].Page1[0].scac[0]", dverUser.getScac());
            form1.setField("topmostSubform[0].Page1[0].pwd[0]", dverUserLogin.getPassword());

            filledOutForm1.setFormFlattening(Boolean.TRUE);
            filledOutForm1.close();

            DVERUtil.sendEmailWithAttachments("admin@dver.intermodal.org", "DVER - Password Recovery",
                    new InternetAddress[] { new InternetAddress(dverConfig.getEmail()) },
                    "Please see attached to know your forgotten password.", tempFile1);
        }

        tempFile.deleteOnExit();

    } catch (Exception ex) {

        logger.error("Error in sendForgotPwdEmail....." + ex);

        DVERUtil.sendExceptionEmails("sendForgotPwdEmail method of LoginController \n " + ex);

    }
}

From source file:com.iana.dver.controller.RegistrationController.java

License:Open Source License

private void sendRegDetailEmail(DverUserVO dverUserVO, DverUserLoginVO dverUserLoginVO,
        DverConfigVO dverConfigVO) throws IOException, DocumentException, AddressException {

    logger.info("Send Registration Email.....");
    try {/*  w w  w  . jav  a 2 s .c  o m*/
        PdfReader reader = new PdfReader(
                servletContext.getResourceAsStream("/WEB-INF/email_templates/DVER_REGISTRATION_FORM.pdf"));

        File tempFile = File.createTempFile("DVER_REGISTRATION_" + dverUserVO.getUsDOT(), ".pdf");
        PdfStamper filledOutForm = new PdfStamper(reader, new FileOutputStream(tempFile));
        AcroFields form = filledOutForm.getAcroFields();
        DateFormat dateFormat = new SimpleDateFormat("MM/dd/yyyy HH:mm:ss");
        Date date = new Date();

        form.setField("topmostSubform[0].Page1[0].notif_dt[0]", dateFormat.format(date));
        form.setField("topmostSubform[0].Page1[0].contact_nm[0]",
                dverUserVO.getFirstName() + " " + dverUserVO.getLastName());
        form.setField("topmostSubform[0].Page1[0].company[0]", dverUserVO.getCompanyName());
        form.setField("topmostSubform[0].Page1[0].address[0]",
                dverUserVO.getAddress1() + " " + dverUserVO.getAddress2());
        form.setField("topmostSubform[0].Page1[0].city[0]",
                dverUserVO.getCity() + ", " + dverUserVO.getState() + " " + dverUserVO.getZipCode());

        form.setField("topmostSubform[0].Page1[0].scac[0]", dverUserVO.getScac());
        form.setField("topmostSubform[0].Page1[0].pwd[0]", dverUserLoginVO.getPassword());

        filledOutForm.setFormFlattening(Boolean.TRUE);
        filledOutForm.close();

        DVERUtil.sendEmailWithAttachments("admin@dver.intermodal.org", "DVER Registration Confirmation",
                new InternetAddress[] { new InternetAddress(dverUserVO.getEmail()) },
                "Please see attached for your registration details.", tempFile);

        if (!dverUserVO.getEmail().equals(dverConfigVO.getEmail())) {

            PdfReader reader1 = new PdfReader(
                    servletContext.getResourceAsStream("/WEB-INF/email_templates/DVER_REGISTRATION_FORM.pdf"));
            File tempFile1 = File.createTempFile("DVER_REGISTRATION_NOTIF_" + dverUserVO.getUsDOT(), ".pdf");

            PdfStamper filledOutForm1 = new PdfStamper(reader1, new FileOutputStream(tempFile1));
            AcroFields form1 = filledOutForm1.getAcroFields();

            form1.setField("topmostSubform[0].Page1[0].notif_dt[0]", dateFormat.format(date));
            form1.setField("topmostSubform[0].Page1[0].contact_nm[0]",
                    dverConfigVO.getFirstName() + " " + dverConfigVO.getLastName());
            form1.setField("topmostSubform[0].Page1[0].company[0]", dverUserVO.getCompanyName());
            form1.setField("topmostSubform[0].Page1[0].address[0]",
                    dverUserVO.getAddress1() + " " + dverUserVO.getAddress2());
            form1.setField("topmostSubform[0].Page1[0].city[0]",
                    dverUserVO.getCity() + ", " + dverUserVO.getState() + " " + dverUserVO.getZipCode());

            form1.setField("topmostSubform[0].Page1[0].scac[0]", dverUserVO.getScac());
            form1.setField("topmostSubform[0].Page1[0].pwd[0]", dverUserLoginVO.getPassword());

            filledOutForm1.setFormFlattening(Boolean.TRUE);
            filledOutForm1.close();

            DVERUtil.sendEmailWithAttachments("admin@dver.intermodal.org", "DVER Registration Confirmation",
                    new InternetAddress[] { new InternetAddress(dverConfigVO.getEmail()) },
                    "Please see attached for your registration details.", tempFile1);
        }

        tempFile.deleteOnExit();
    } catch (Exception ex) {
        logger.error("Error in sendRegDetailEmail....." + ex);
        DVERUtil.sendExceptionEmails("sendRegDetailEmail method of RegistrationController \n " + ex);
    }
}

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

License:Open Source License

/**
 * Fill PDF form/*w  w w  .  j  a v  a 2  s  .  co  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.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.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.ikon.util.PDFUtils.java

License:Open Source License

public static void stampImage(InputStream input, byte[] image, int layer, float opacity, String exprX,
        String exprY, OutputStream output)
        throws FileNotFoundException, DocumentException, EvalError, IOException {
    log.debug("stampImage({}, {}, {}, {}, {}, {}, {})", new Object[] { input, image, Integer.valueOf(layer),
            Float.valueOf(opacity), exprX, exprY, output });
    Image img = Image.getInstance(image);
    PdfReader reader = new PdfReader(input);
    PdfStamper stamper = new PdfStamper(reader, output);
    PdfGState gs = new PdfGState();
    gs.setFillOpacity(opacity);//w w w. ja  v a  2  s .c  om
    gs.setStrokeOpacity(opacity);
    int numPages = reader.getNumberOfPages();
    int count = 0;

    while (count++ < numPages) {
        int pageCenter = (int) reader.getPageSizeWithRotation(count).getWidth() / 2;
        int pageMiddle = (int) reader.getPageSizeWithRotation(count).getHeight() / 2;

        Interpreter i = new Interpreter();
        i.set("IMAGE_WIDTH", (int) img.getWidth());
        i.set("IMAGE_HEIGHT", (int) img.getHeight());
        i.set("PAGE_WIDTH", (int) reader.getPageSizeWithRotation(count).getWidth());
        i.set("PAGE_HEIGHT", (int) reader.getPageSizeWithRotation(count).getHeight());
        i.set("PAGE_CENTER", pageCenter);
        i.set("PAGE_MIDDLE", pageMiddle);
        Integer evalX = (Integer) i.eval(exprX);
        Integer evalY = (Integer) i.eval(exprY);

        if (evalX == null)
            evalX = Integer.valueOf(pageCenter);
        if (evalY == null) {
            evalY = Integer.valueOf(pageMiddle);
        }
        log.debug("evalX: {}", evalX);
        log.debug("evalY: {}", evalY);

        img.setAbsolutePosition(evalX.intValue(), evalY.intValue());
        PdfContentByte cb = null;

        if (layer == LAYER_UNDER_CONTENT)
            cb = stamper.getUnderContent(count);
        else if (layer == LAYER_OVER_CONTENT)
            cb = stamper.getOverContent(count);
        else {
            throw new IllegalArgumentException();
        }

        cb.saveState();
        cb.setGState(gs);
        cb.addImage(img);
        cb.restoreState();
    }

    stamper.close();
}

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

License:Open Source License

public static void stampText(InputStream input, String text, int layer, float opacity, int size, Color color,
        int rotation, int align, String exprX, String exprY, OutputStream output)
        throws FileNotFoundException, DocumentException, EvalError, IOException {
    log.debug("stampText({}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {})",
            new Object[] { input, text, Integer.valueOf(layer), Float.valueOf(opacity), Integer.valueOf(size),
                    color, Integer.valueOf(rotation), Integer.valueOf(align), exprX, exprY, output });

    BaseFont bf = getBaseFont();/*from   w  w w .j  a  va 2  s. c o  m*/
    PdfReader reader = new PdfReader(input);
    PdfStamper stamper = new PdfStamper(reader, output);
    PdfGState gs = new PdfGState();
    gs.setFillOpacity(opacity);
    gs.setStrokeOpacity(opacity);
    int numPages = reader.getNumberOfPages();
    int count = 0;

    while (count++ < numPages) {
        int pageCenter = (int) reader.getPageSizeWithRotation(count).getWidth() / 2;
        int pageMiddle = (int) reader.getPageSizeWithRotation(count).getHeight() / 2;

        Interpreter i = new Interpreter();
        i.set("PAGE_WIDTH", (int) reader.getPageSizeWithRotation(count).getWidth());
        i.set("PAGE_HEIGHT", (int) reader.getPageSizeWithRotation(count).getHeight());
        i.set("PAGE_CENTER", pageCenter);
        i.set("PAGE_MIDDLE", pageMiddle);
        Integer evalX = (Integer) i.eval(exprX);
        Integer evalY = (Integer) i.eval(exprY);

        if (evalX == null)
            evalX = Integer.valueOf(pageCenter);
        if (evalY == null) {
            evalY = Integer.valueOf(pageMiddle);
        }
        log.debug("evalX: {}", evalX);
        log.debug("evalY: {}", evalY);

        PdfContentByte cb = null;

        if (layer == LAYER_UNDER_CONTENT)
            cb = stamper.getUnderContent(count);
        else if (layer == LAYER_OVER_CONTENT)
            cb = stamper.getOverContent(count);
        else {
            throw new IllegalArgumentException();
        }

        cb.saveState();
        cb.setColorFill(color);
        cb.setGState(gs);
        cb.beginText();
        cb.setFontAndSize(bf, size);
        cb.showTextAligned(align, text, evalX.intValue(), evalY.intValue(), rotation);
        cb.endText();
        cb.restoreState();
    }

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

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

public synchronized void generateMembershipRequestPDF(MembershipRequest membershipRequest) {
    try {// w w  w .  j av a 2  s .  c  om

        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/*from ww  w  . ja  v  a2  s  . com*/
 */
@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.openkm.util.PDFUtils.java

License:Open Source License

/**
 * Mark PDF to be printed./*from ww w  . j a v  a  2s . co m*/
 */
public static File markToPrint(File input) throws DocumentException, IOException {
    File tmpPrint = File.createTempFile("okm", ".pdf");
    InputStream is = null;

    try {
        is = new FileInputStream(input);
        PdfReader pdfReader = new PdfReader(is);
        OutputStream out = new FileOutputStream(tmpPrint);
        PdfStamper stamper = new PdfStamper(pdfReader, out);
        PdfWriter stamperWriter = stamper.getWriter();
        stamperWriter.addJavaScript("this.print(false);");
        stamper.close();
        pdfReader.close();
    } finally {
        IOUtils.closeQuietly(is);
    }

    return tmpPrint;
}

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

License:Open Source License

/**
 * Encrypt a document and set permissions
 *
 * If a PDF is encrypted using an owner password but no user password, anyone can open the PDF and is restricted by the permissions
 * selected during encryption. Only someone opening that PDF with its owner password is permitted has unlimited access to the PDF.
 *//* w ww. j  a  v a  2s.  c o m*/
public static void encrypt(InputStream input, String userPassword, String ownerPassword, int permissions,
        OutputStream output) throws DocumentException, IOException {
    PdfReader pdfReader = new PdfReader(input);
    PdfStamper stamper = new PdfStamper(pdfReader, output);
    stamper.setEncryption(userPassword != null ? userPassword.getBytes() : null,
            ownerPassword != null ? ownerPassword.getBytes() : null, permissions, true);
    stamper.close();
    pdfReader.close();
}