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.benfante.minimark.blo.AssessmentPdfBuilder.java

License:Apache License

/**
 * Build the contatenated PDF for a list of assessments.
 *
 * @param assessments The assessments//from w ww . jav a 2 s.co  m
 * @param baseUrl The base URL for retrieving images and resource. If null it will not be set.
 * @param locale The locale for producing the document. Id null, the default locale will be used.
 * @return The PDF document.
 */
public byte[] buildPdf(List<AssessmentFilling> assessments, String baseUrl, Locale locale) throws Exception {
    ByteArrayOutputStream pdfos = new ByteArrayOutputStream();
    List master = new ArrayList();
    Document document = null;
    PdfCopy writer = null;
    PdfOutline rootOutline = null;
    try {
        int f = 0;
        int pageOffset = 0;
        for (AssessmentFilling assessment : assessments) {
            // we create a reader for a certain document
            PdfReader reader = new PdfReader(buildPdf(assessment, baseUrl, locale));
            reader.consolidateNamedDestinations();
            // we retrieve the total number of pages
            int n = reader.getNumberOfPages();
            List bookmarks = SimpleBookmark.getBookmark(reader);
            if (bookmarks != null) {
                if (pageOffset != 0) {
                    SimpleBookmark.shiftPageNumbers(bookmarks, pageOffset, null);
                }
                master.addAll(bookmarks);
            }
            pageOffset += n;
            if (f == 0) {
                // step 1: creation of a document-object
                document = new Document(reader.getPageSizeWithRotation(1));
                // step 2: we create a writer that listens to the document
                writer = new PdfCopy(document, pdfos);
                writer.setViewerPreferences(PdfWriter.PageModeUseOutlines);
                // step 3: we open the document
                document.open();
                // initialize rootOutline for assessment bookmarks creation
                PdfContentByte cb = writer.getDirectContent();
                rootOutline = cb.getRootOutline();
            }
            // step 4: we add content
            new PdfOutline(rootOutline, new PdfDestination(PdfDestination.FIT),
                    assessment.getLastName() + " " + assessment.getFirstName());
            PdfImportedPage page;
            for (int i = 0; i < n;) {
                ++i;
                page = writer.getImportedPage(reader, i);
                writer.addPage(page);
            }
            PRAcroForm form = reader.getAcroForm();
            if (form != null) {
                writer.copyAcroForm(reader);
            }
            f++;
        }
    } finally {
        if (pdfos != null) {
            try {
                pdfos.close();
            } catch (IOException ioe) {
            }
        }
        if (!master.isEmpty()) {
            writer.setOutlines(master);
        }
        // step 5: we close the document
        if (document != null && document.isOpen()) {
            document.close();
        }
    }
    return pdfos.toByteArray();
}

From source file:com.bluexml.side.Framework.alfresco.workflow.pdfGenerator.structure.AlfrescoStructure.java

License:Open Source License

private static PdfReader getReaderFromAlfrescoPathToPdf(String alfrescoPath)
        throws IOException, NoPdfFileException {
    PdfReader reader = null;/*from ww w. ja v  a2  s  .  c o  m*/
    NodeRef node = getNodeRefFromAlfrescoPathToPdf(alfrescoPath);
    if (node != null) {
        InputStream inputStreamOfAlfrescoPdf = serviceRegistry.getFileFolderService().getReader(node)
                .getContentInputStream();
        reader = new PdfReader(inputStreamOfAlfrescoPdf);
    } else {
        throw new NoPdfFileException(NoPdfFileException.FILE_DOES_NOT_EXISTS);
    }
    return reader;
}

From source file:com.bluexml.side.Framework.alfresco.workflow.pdfGenerator.structure.AlfrescoStructure.java

License:Open Source License

private static PdfReader getReaderFromAlfrescoUUIDToPdf(String alfrescoUUID)
        throws IOException, NoPdfFileException {
    PdfReader reader = null;/*from w ww. j  a  v a2s . co  m*/
    NodeRef node = getNodeRefFromAlfrescoUUIDToPdf(alfrescoUUID);
    if (node != null) {
        InputStream inputStreamOfAlfrescoPdf = serviceRegistry.getFileFolderService().getReader(node)
                .getContentInputStream();
        reader = new PdfReader(inputStreamOfAlfrescoPdf);
    } else {
        //Trying to evaluate as alfresco javascript
        Object result = AlfrescoJavaScript.executeScript(executionContext, serviceRegistry, alfrescoUUID,
                Collections.EMPTY_LIST);
        if (result instanceof JBPMNode) {
            JBPMNode jbpmnode = (JBPMNode) result;
            if (jbpmnode.getNodeRef() != null)
                getReaderFromAlfrescoUUIDToPdf(jbpmnode.getNodeRef().toString());
        } else if (result instanceof String) {
            getReaderFromAlfrescoUUIDToPdf(result.toString());
        }
        throw new NoPdfFileException(NoPdfFileException.FILE_DOES_NOT_EXISTS);
    }
    return reader;
}

From source file:com.c6rs.catsix.reg.pdf.PopulatePDF.java

/**
 * @param args/*w  ww  .j  a  va  2  s . co  m*/
 * @throws IOException
 * @throws DocumentException
 */
public static void main(String[] args) throws IOException, DocumentException {

    PdfReader reader = new PdfReader(PopulatePDF.class.getResourceAsStream("waiver_form.pdf"));
    FileOutputStream out = new FileOutputStream("/TEMP/waiver.pdf");
    PdfStamper stamp = new PdfStamper(reader, out);

    AcroFields fields = stamp.getAcroFields();
    fields.setField(DATE_FIELD, new Date(System.currentTimeMillis()).toString());
    fields.setField(EVENT_FIELD, "THE STATE FAIR AFFAIR");
    fields.setField(EVENT_DATES_FIELD, new Date(System.currentTimeMillis()).toString());
    fields.setField(LICENSE_FIELD, "123456789");
    fields.setField(RACING_AGE_FIELD, "33");
    fields.setField(FULLNAME_FIELD, "JOE RACER");
    fields.setField(ADDRESS_FIELD, "123 MAIN STREET");
    fields.setField(CITY_FIELD, "MINNEAPOLIS");
    fields.setField(STATE_FIELD, "MN");
    fields.setField(ZIP_FIELD, "5416");
    fields.setField(PHONE_FIELD, "555-555-5555");
    fields.setField(EMAIL_FIELD, "JOE.RACER@GMAIL.COM");
    fields.setField(CONTACT_NAME_FIELD, "JOAN RACER");
    fields.setField(CONTACT_PHONE_FIELD, "555-555-5555");

    // Need to lock fields and prevent further edits?
    //stamp.setFormFlattening(true); 

    stamp.close();

}

From source file:com.cyberway.issue.crawler.extractor.PDFParser.java

License:Open Source License

/**
 * Initialize opens the document for reading.  This is done implicitly
 * by the constuctor.  This should only need to be called directly following
 * a reset./*  w  ww  . jav  a2s  . co  m*/
 * @throws IOException
 */
protected void initialize() throws IOException {
    if (document != null) {
        documentReader = new PdfReader(document);
    }

    catalog = documentReader.getCatalog();
}

From source file:com.dgpx.control.ExamNumberManagedBean.java

@Override
public void print() throws Exception {

    if (currentEntity == null) {
        FacesContext.getCurrentInstance().addMessage(null,
                new FacesMessage(FacesMessage.SEVERITY_WARN, "Warn", "???"));
        return;/* w ww. j a v a2 s  .  c  o  m*/
    }
    examNumberBean.setDetail(currentEntity.getId());
    if (examNumberBean.getDetailList().isEmpty()) {
        FacesContext.getCurrentInstance().addMessage(null,
                new FacesMessage(FacesMessage.SEVERITY_WARN, "Warn", "???"));
        return;
    } else {
        for (ExamCard c : examNumberBean.getDetailList()) {
            if (!c.getStatus().equals("Z")) {
                c.setStatus("Z");
                examCardBean.update(c);
            }
        }
    }

    String reportName, outputName;
    //??
    reportName = reportPath + this.currentSysprg.getRptdesign();
    //??
    outputName = reportOutputPath + currentEntity.getFormid() + ".pdf";
    OutputStream os = new FileOutputStream(outputName);
    PdfCopyFields pdfCopy = new PdfCopyFields(os);
    HashMap<String, Object> params = new HashMap<>();
    ByteArrayOutputStream baos;
    for (ExamCard c : examNumberBean.getDetailList()) {
        //?
        baos = new ByteArrayOutputStream();
        params.put("id", c.getId());
        params.put("JNDIName", this.currentSysprg.getRptjndi());
        try {
            //??
            this.reportInitAndConfig();
            //?
            this.reportRunAndOutput(reportName, params, null, "pdf", baos);
        } catch (Exception ex) {
            throw ex;
        } finally {
            params.clear();
        }
        pdfCopy.addDocument(new PdfReader(baos.toByteArray()));
    }
    pdfCopy.close();
    this.reportViewPath = reportViewContext + currentEntity.getFormid() + ".pdf";
    this.preview();
}

From source file:com.globalsight.everest.webapp.pagehandler.edit.inctxrv.pdf.PreviewPDFHelper.java

License:Apache License

public static File setCopyOnlyPermission(File p_file) throws DocumentException, IOException {
    PdfReader reader = new PdfReader(p_file.getAbsolutePath());
    String outPutFile = FileUtils.getPrefix(p_file.getAbsolutePath()) + "_hidebars.pdf";
    int n = reader.getNumberOfPages();
    Rectangle psize = reader.getPageSize(1);
    float width = psize.height();
    float height = psize.width();
    Document document = new Document(new Rectangle(width, height));
    PdfCopy writer = new PdfCopy(document, new FileOutputStream(outPutFile));
    writer.setEncryption(PdfWriter.STRENGTH40BITS, null, null, PdfWriter.ALLOW_COPY | PdfWriter.ALLOW_PRINTING);
    try {// w w w  . j  a va 2  s  .  c o  m
        document.open();
        int i = 0;
        while (i < n) {
            document.newPage();
            i++;
            PdfImportedPage page1 = writer.getImportedPage(reader, i);
            writer.addPage(page1);
        }
        document.close();
    } catch (IllegalArgumentException e) {
        if (!e.getMessage().equals("PdfReader not opened with owner password")) {
            throw new EnvoyServletException(e);
        } else {
            LOGGER.error(e.getMessage(), e);
        }
    }

    return new File(outPutFile);
}

From source file:com.globalsight.everest.webapp.pagehandler.edit.online.PreviewPDFPageHandler.java

License:Apache License

public static File setCopyOnlyPermission(File p_file) throws DocumentException, IOException {
    PdfReader reader = new PdfReader(p_file.getAbsolutePath());
    String outPutFile = FileUtils.getPrefix(p_file.getAbsolutePath()) + "_hidebars.pdf";
    int n = reader.getNumberOfPages();
    Rectangle psize = reader.getPageSize(1);
    float width = psize.height();
    float height = psize.width();
    Document document = new Document(new Rectangle(width, height));
    PdfCopy writer = new PdfCopy(document, new FileOutputStream(outPutFile));
    writer.setEncryption(PdfWriter.STRENGTH40BITS, null, null, PdfWriter.ALLOW_COPY | PdfWriter.ALLOW_PRINTING);
    try {// w  w w .j  a  v a2s.  co  m
        document.open();
        int i = 0;
        while (i < n) {
            document.newPage();
            i++;
            PdfImportedPage page1 = writer.getImportedPage(reader, i);
            writer.addPage(page1);
        }
        document.close();
    } catch (IllegalArgumentException e) {
        if (!e.getMessage().equals("PdfReader not opened with owner password")) {
            throw new EnvoyServletException(e);
        } else {
            CATEGORY.error(e.getMessage(), e);
        }
    }

    return new File(outPutFile);
}

From source file:com.hadoop.gy404.tools.DocConverter.java

public void getpdfnumbers() {
    try {/*from  w  ww. j  a  va2 s. c om*/
        this.pagenums = new PdfReader(pdfFile.getAbsolutePath()).getNumberOfPages();
    } catch (IOException e) {
        // TODO Auto-generated catch block
        this.pagenums = 0;
        e.printStackTrace();
    }
}

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;//from ww w  .j  av a  2s .co  m
    PdfStamper stamp = null;
    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;
}