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

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

Introduction

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

Prototype

public PdfReader(PdfReader reader) 

Source Link

Document

Creates an independent duplicate.

Usage

From source file:com.mirth.connect.connectors.doc.DocumentMessageDispatcher.java

License:Open Source License

private void writeDocument(String template, File file, MessageObject messageObject) throws Exception {
    // add tags to the template to create a valid HTML document
    StringBuilder contents = new StringBuilder();
    if (template.lastIndexOf("<html") < 0) {
        contents.append("<html>");
        if (template.lastIndexOf("<body") < 0) {
            contents.append("<body>");
            contents.append(template);/*  ww  w .j ava 2  s  . c om*/
            contents.append("</body>");
        } else {
            contents.append(template);
        }
        contents.append("</html>");
    } else {
        contents.append(template);
    }

    if (connector.getDocumentType().toLowerCase().equals("pdf")) {
        FileOutputStream renderFos = null;

        try {
            DocumentBuilder builder = DocumentBuilderFactory.newInstance().newDocumentBuilder();
            org.w3c.dom.Document document = builder
                    .parse(new InputSource(new StringReader(contents.toString())));

            ITextRenderer renderer = new ITextRenderer();
            renderer.setDocument(document, null);
            renderFos = new FileOutputStream(file);
            renderer.layout();
            renderer.createPDF(renderFos, true);
        } catch (Throwable e) {
            throw new Exception(e);
        } finally {
            if (renderFos != null) {
                renderFos.close();
            }
        }

        if (connector.isEncrypt() && (connector.getPassword() != null)) {
            FileInputStream encryptFis = null;
            FileOutputStream encryptFos = null;

            try {
                encryptFis = new FileInputStream(file);
                PdfReader reader = new PdfReader(encryptFis);
                encryptFos = new FileOutputStream(file);
                PdfEncryptor.encrypt(reader, encryptFos, true,
                        replacer.replaceValues(connector.getPassword(), messageObject), null,
                        PdfWriter.ALLOW_PRINTING | PdfWriter.ALLOW_COPY);
            } catch (Exception e) {
                throw e;
            } finally {
                if (encryptFis != null) {
                    encryptFis.close();
                }

                if (encryptFos != null) {
                    encryptFos.close();
                }
            }
        }
    } else if (connector.getDocumentType().toLowerCase().equals("rtf")) {
        com.lowagie.text.Document document = null;

        try {
            document = new com.lowagie.text.Document();
            ByteArrayInputStream bais = new ByteArrayInputStream(contents.toString().getBytes());
            RtfWriter2.getInstance(document, new FileOutputStream(file));
            document.open();
            HtmlParser parser = new HtmlParser();
            parser.go(document, bais);
        } finally {
            if (document != null) {
                document.close();
            }
        }
    }
}

From source file:com.moss.check.us.CheckPdfRenderer.java

License:Open Source License

public void render(CheckModel model, OutputStream out) throws Exception {

    Document document = new Document();
    document.setPageSize(new Rectangle(PAGE_WIDTH, PAGE_HEIGHT));

    PdfWriter writer = PdfWriter.getInstance(document, out);
    document.open();/*from ww w  .  j a  v a 2 s.  c om*/

    PdfContentByte cb = writer.getDirectContent();

    Check check = new Check();
    check.defaultFont = BaseFont.createFont("Helvetica", BaseFont.WINANSI, BaseFont.NOT_EMBEDDED);
    check.defaultFontSize = 8;
    check.defaultFontLeading = 10;
    check.largeFontSize = 9;
    check.largeFontLeading = 12;
    check.fixedWidthFont = createFixedFont();
    check.fixedWidthFontSize = 8;
    check.voidFont = BaseFont.createFont("Helvetica-Bold", BaseFont.WINANSI, BaseFont.NOT_EMBEDDED);
    check.voidFontSize = 14;
    check.micrFont = createMicrFont();
    check.micrFontSize = 12;
    check.model = model;
    check.x = 0;
    check.y = 0;
    check.renderMode = CheckRenderMode.CHECK;

    check.render(cb);

    if (StubPrintMode.CHECK_DUPLICATE == model.stubPrintMode) {
        check.renderMode = CheckRenderMode.STUB;
        check.y = document.top() - (8.2f * POINTS_IN_A_CM);
        check.render(cb);
    } else if (StubPrintMode.CUSTOM == model.stubPrintMode) {
        PdfReader reader = new PdfReader(model.customStubPdf);
        PdfImportedPage customPage = writer.getImportedPage(reader, 1);
        cb.addTemplate(customPage, 0f, 0f);
    } else {
        throw new RuntimeException("Unknown stub print mode: " + model.stubPrintMode);
    }

    document.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();//from  www.  j a  v  a  2 s.  com

    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 {/* w  w  w  . ja v a  2 s. co 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.nabla.wapp.report.server.ReportTemplate.java

License:Apache License

public PdfReader generatePdf(final Connection conn, final Map<String, Object> parameters, final Locale locale)
        throws InternalErrorException {
    try {/*from  www  .j  a va2s. co  m*/
        return new PdfReader(render(conn, parameters, ReportFormats.PDF, locale));
    } catch (IOException e) {
        throw new InternalErrorException(Util.formatInternalErrorDescription(e));
    }
}

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

License:Open Source License

/**
 * Fill PDF form/*from   www  .  j  a  v  a2s .c om*/
 */
@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

/**
 * Merge several PDFs into a new one/*from ww w .ja v  a  2 s .c o  m*/
 */
public static void merge(List<InputStream> inputs, OutputStream output) throws IOException, DocumentException {
    Document document = new Document();

    try {
        PdfSmartCopy copy = new PdfSmartCopy(document, output);
        document.open();

        for (InputStream is : inputs) {
            PdfReader reader = new PdfReader(is);

            for (int i = 1; i <= reader.getNumberOfPages(); i++) {
                copy.addPage(copy.getImportedPage(reader, i));
            }
        }

        output.flush();
        document.close();
    } finally {
        IOUtils.closeQuietly(output);
    }
}

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

License:Open Source License

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

From source file:com.orange.atk.atkUI.corecli.utils.PdfUtilities.java

License:Apache License

private void signDocument(String pdfFileName) {
    try {//w  w w  .  jav  a  2 s .c  om
        // 1. copy
        File tmpPDFFile = new File(tmpDir, "tmp2PDF.pdf");
        copyFile(new File(pdfFileName), tmpPDFFile);
        // 2. sign
        KeyStore ks = KeyStore.getInstance(typeKeystore);
        FileInputStream fis = new FileInputStream(keystore);
        ks.load(fis, passwordKeystore.toCharArray());
        PrivateKey key = (PrivateKey) ks.getKey(aliasCertificate, passwordKeystore.toCharArray());
        Certificate[] chain = ks.getCertificateChain(aliasCertificate);
        PdfReader reader = new PdfReader(tmpPDFFile.getAbsolutePath());
        FileOutputStream fout = new FileOutputStream(pdfFileName);
        PdfStamper stp = PdfStamper.createSignature(reader, fout, '\0');
        PdfSignatureAppearance sap = stp.getSignatureAppearance();
        sap.setCrypto(key, chain, null, PdfSignatureAppearance.WINCER_SIGNED);
        sap.setVisibleSignature(new Rectangle(450, 730, 550, 780), 1, null);
        stp.close();
        fis.close();
    } catch (Exception e) {
        e.printStackTrace(Out.log);
    }
}