Example usage for com.lowagie.text.pdf PdfReader close

List of usage examples for com.lowagie.text.pdf PdfReader close

Introduction

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

Prototype

public void close() 

Source Link

Document

Closes the reader

Usage

From source file:br.gov.jfrj.itextpdf.Documento.java

License:Open Source License

public static int getNumberOfPages(byte[] abPdf) throws IOException {
    final PdfReader reader = new PdfReader(abPdf);
    final int n = reader.getNumberOfPages();
    reader.close();
    return n;//from   w  w w .j a  va2  s .c  o m
}

From source file:com.homesoft.component.report.pdf.PdfWrappedStamper.java

License:Open Source License

private ByteArrayOutputStream stampInputStream(InputStream is) {
    ByteArrayOutputStream os = new ByteArrayOutputStream();
    PdfReader reader = null;
    PdfStamper stamp = null;/* w w  w.j a v  a2s. co m*/
    try {
        reader = new PdfReader(is);
        stamp = new PdfStamper(reader, os);
    } catch (DocumentException e) {
        log.error(e.getMessage(), e);
    } catch (IOException e) {
        log.error(e.getMessage(), e);
    }

    if (reader == null || stamp == null) {
        return null;
    }

    int total = reader.getNumberOfPages();
    for (int i = 1; i <= total; i++) {
        PdfContentByte over = stamp.getOverContent(i);

        boolean fixedImageEnabled = GlobalConfig.getInstance().getStamperFixedImageEnabled();
        boolean dynamicImageEnabled = GlobalConfig.getInstance().getStamperDynamicImageEnabled();
        if (imageEnabled && fixedImageEnabled) {
            image.setRotationDegrees(GlobalConfig.getInstance().getStamperFixedImageRotationDegree());
            image.setAbsolutePosition(GlobalConfig.getInstance().getStamperFixedImagePositionX(),
                    GlobalConfig.getInstance().getStamperFixedImagePositionY());// position
            over.setGState(gsFixed);
            try {
                over.addImage(image);
            } catch (DocumentException e) {
                log.error(e.getMessage(), e);
            }
        }

        if (imageEnabled && dynamicImageEnabled) {
            int jx = GlobalConfig.getInstance().getStamperDynamicImagePositionXStart();
            int jy = GlobalConfig.getInstance().getStamperDynamicImagePositionYStart();
            while (jy < 800) {
                // img.setRotation(30);
                image.setRotationDegrees(GlobalConfig.getInstance().getStamperDynamicImageRotationDegree());
                image.setAbsolutePosition(jx, jy);
                over.setGState(gsDynamic);
                try {
                    over.addImage(image);
                } catch (DocumentException e) {
                    log.error(e.getMessage(), e);
                }
                jx += GlobalConfig.getInstance().getStamperDynamicImagePositionXStep();
                jy += GlobalConfig.getInstance().getStamperDynamicImagePositionYStep();
            }
        }
    }

    try {
        stamp.close();
    } catch (DocumentException e) {
        log.error(e.getMessage(), e);
    } catch (IOException e) {
        log.error(e.getMessage(), e);
    }
    reader.close();
    return os;
}

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

License:Open Source License

/**
 * Fill PDF form//from  w w  w .j a v  a 2 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.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

/**
 * List form fields/*from w  w w  .  j  a  v  a2  s .  co m*/
 */
@SuppressWarnings("rawtypes")
public static List<String> listFormFields(String input)
        throws FileNotFoundException, DocumentException, IOException {
    log.debug("listFormFields({})", input);
    List<String> formFields = new ArrayList<String>();
    PdfReader reader = new PdfReader(input);
    PRAcroForm form = reader.getAcroForm();

    if (form != null) {
        for (Iterator it = form.getFields().iterator(); it.hasNext();) {
            PRAcroForm.FieldInformation field = (PRAcroForm.FieldInformation) it.next();
            formFields.add(field.getName());
        }
    }

    reader.close();
    log.debug("listFormFields: {}", formFields);
    return formFields;
}

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();/* ww w.ja va 2  s  . com*/
    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.moss.pdf.template.core.Renderer.java

License:Open Source License

public void render(InputStream in, List<? extends PropertyMapping> fields, OutputStream out) throws Exception {

    PdfReader reader = new PdfReader(in);

    Document document = new Document(reader.getPageSizeWithRotation(1));

    PdfWriter writer = PdfWriter.getInstance(document, out);

    document.open();//  w  w  w.j av  a 2  s  .co m

    for (int i = 1; i <= reader.getNumberOfPages(); i++) {

        PdfContentByte cb = writer.getDirectContent();

        PdfImportedPage customPage = writer.getImportedPage(reader, i);

        /*
         * add the page to our new document, turning this page to its 
         * original rotation
         */
        int pageRotation = reader.getPageRotation(i);

        if (pageRotation > 0) {

            System.out.println("page rotation found: " + pageRotation);

            double angle = -((2 * Math.PI) * pageRotation / 360);
            //         double angle = -(Math.PI / 2);

            cb.addTemplate(customPage, (float) Math.cos(angle), (float) Math.sin(angle),
                    (float) -Math.sin(angle), (float) Math.cos(angle), 0f, // x
                    document.top() + document.topMargin() // y
            );
        } else {
            cb.addTemplate(customPage, 0f, 0f);
        }

        Map<FontName, BaseFont> fonts = new HashMap<FontName, BaseFont>();

        for (PropertyMapping field : fields) {

            if (field.getPageNumber() != i) {
                continue;
            }

            /*
             * Only builtin fonts are supported at the moment
             */
            BaseFont font;
            int fontSize;
            int alignment;
            String text;
            float x, y;
            float rotation;

            {
                font = fonts.get(field.getFontName());

                if (font == null) {

                    FontName e = field.getFontName();
                    String name = null;

                    if (FontName.COURIER == e) {
                        name = BaseFont.COURIER;
                    } else if (FontName.COURIER_BOLD == e) {
                        name = BaseFont.COURIER_BOLD;
                    } else if (FontName.COURIER_BOLD_OBLIQUE == e) {
                        name = BaseFont.COURIER_BOLDOBLIQUE;
                    } else if (FontName.COURIER_OBLIQUE == e) {
                        name = BaseFont.COURIER_OBLIQUE;
                    } else if (FontName.HELVETICA == e) {
                        name = BaseFont.HELVETICA;
                    } else if (FontName.HELVETICA_BOLD == e) {
                        name = BaseFont.HELVETICA_BOLD;
                    } else if (FontName.HELVETICA_BOLD_OBLIQUE == e) {
                        name = BaseFont.HELVETICA_BOLDOBLIQUE;
                    } else if (FontName.HELVETICA_OBLIQUE == e) {
                        name = BaseFont.HELVETICA_OBLIQUE;
                    } else if (FontName.TIMES_BOLD == e) {
                        name = BaseFont.TIMES_BOLD;
                    } else if (FontName.TIMES_BOLD_ITALIC == e) {
                        name = BaseFont.TIMES_BOLDITALIC;
                    } else if (FontName.TIMES_ITALIC == e) {
                        name = BaseFont.TIMES_ITALIC;
                    } else if (FontName.TIMES_ROMAN == e) {
                        name = BaseFont.TIMES_ROMAN;
                    }

                    if (name == null) {
                        throw new RuntimeException("Unknown font type: " + e);
                    }

                    font = BaseFont.createFont(name, BaseFont.WINANSI, BaseFont.NOT_EMBEDDED);
                    fonts.put(field.getFontName(), font);
                }

                fontSize = field.getFontSize();

                if (TextAlignment.LEFT == field.getAlignment()) {
                    alignment = PdfContentByte.ALIGN_LEFT;
                } else if (TextAlignment.CENTER == field.getAlignment()) {
                    alignment = PdfContentByte.ALIGN_CENTER;
                } else if (TextAlignment.RIGHT == field.getAlignment()) {
                    alignment = PdfContentByte.ALIGN_RIGHT;
                } else {
                    alignment = PdfContentByte.ALIGN_LEFT;
                }

                Object value = p.eval(field.getExpr());

                if (value == null) {
                    text = "";
                } else {
                    text = value.toString();
                }

                x = field.getX() * POINTS_IN_A_CM;
                y = field.getY() * POINTS_IN_A_CM;

                rotation = 0;
            }

            cb.beginText();

            cb.setFontAndSize(font, fontSize);

            cb.showTextAligned(alignment, text, x, y, rotation);

            cb.endText();
        }

        document.newPage();
    }

    reader.close();
    document.close();
}

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

public synchronized void generateMembershipRequestPDF(MembershipRequest membershipRequest) {
    try {//from  w  w w  .  j a va 2s.com

        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   w  ww . j  av a  2  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.openkm.util.PDFUtils.java

License:Open Source License

/**
 * Mark PDF to be printed.//from  w w  w  .j a v a  2 s.c o  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.
 *///from www  . j a  v a2 s .  co  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();
}