Example usage for com.itextpdf.text.pdf PdfReader getNumberOfPages

List of usage examples for com.itextpdf.text.pdf PdfReader getNumberOfPages

Introduction

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

Prototype

public int getNumberOfPages() 

Source Link

Document

Gets the number of pages in the document.

Usage

From source file:com.imipgroup.hieuvt.pdf.PdfUtils.java

public Document readPdf(String inputPath) {
    String outputPath = "files/Pdf/testRead.pdf";
    Document document = new Document();
    PdfWriter writer = null;/*from   w  ww. j  a va 2 s  . co m*/
    try {
        writer = PdfWriter.getInstance(document, new FileOutputStream(outputPath));
        document.open();
        PdfReader reader = new PdfReader(inputPath);
        int n = reader.getNumberOfPages();
        PdfImportedPage page;
        // Go through all pages
        for (int i = 1; i <= n; i++) {
            // only page number 2 will be included
            if (i == 2) {
                page = writer.getImportedPage(reader, i);
                Image instance = Image.getInstance(page);
                document.add(instance);
            }
        }
        document.close();
    } catch (DocumentException e) {
        e.printStackTrace();
    } catch (FileNotFoundException e) {
        e.printStackTrace();
    } catch (IOException e) {
        e.printStackTrace();
    }

    return document;
}

From source file:com.innoq.iQpdfutil.Main.java

License:Open Source License

/**
 * copyPages copies all pages from the input reader into the pdfcopy.
 * <p>/* w  ww.  jav  a2 s .  c  om*/
 *     If necessary -- that is if the input pdf contains an odd number
 *     of pages -- this method appends an empty page.
 * </p>
 * */
private static boolean copyPages(PdfReader reader, PdfCopy copy) throws IOException, DocumentException {
    int nrOfPagesInCurrentFile = reader.getNumberOfPages();
    for (int page = 0; page < nrOfPagesInCurrentFile;) {
        copy.addPage(copy.getImportedPage(reader, ++page));
    }

    final boolean isEmptyPageRequired = nrOfPagesInCurrentFile % 2 == 1;
    if (isEmptyPageRequired) {
        copy.addPage(reader.getPageSize(nrOfPagesInCurrentFile), 0);
    }

    return isEmptyPageRequired;
}

From source file:com.innoq.iQpdfutil.Main.java

License:Open Source License

/**
 * This method adds a page number to all pages (except the first one)
 * from the given input pdf and writes the modified pdf to
 * the output-stream.// ww w. j  av a2 s.  c o  m
 *
 * <p>
 * The page number is placed in the center at the bottom of the page.
 * </p>
 *
 * <pre>
 *  +-----+
 *  |     |
 *  |     |
 *  |     |
 *  | -2- |
 *  +-----+
 * </pre>
 * */
private static void numberPages(PdfReader reader, OutputStream os) throws IOException, DocumentException {

    PdfStamper stamper = new PdfStamper(reader, os);

    try {
        int n = reader.getNumberOfPages();

        ColumnText text;
        PdfContentByte contents;
        Paragraph paragraph;
        Font headerFont = new Font(Font.FontFamily.COURIER, 12, Font.NORMAL);
        for (int i = 2; i <= n; i++) {
            contents = stamper.getOverContent(i);
            text = new ColumnText(contents);
            text.setSimpleColumn(1, 10, PageSize.A4.getWidth() - 1, 30, 1, Element.ALIGN_CENTER);
            paragraph = new Paragraph(String.format("- %d -", i), headerFont);
            paragraph.setAlignment(Element.ALIGN_CENTER);
            text.addElement(paragraph);
            text.go();
        }
    } finally {
        try {
            stamper.close();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

From source file:com.isa.firma.FirmaPDFController.java

public ByteArrayOutputStream firmar(PDFFirma infoFirma, InputStream pdfbase64) throws AppletException {

    try {/*from   w w w .  j av a  2s. com*/
        System.out.println("Firma Controller::firmar");

        PdfReader reader = new PdfReader(pdfbase64);
        ByteArrayOutputStream os = new ByteArrayOutputStream();
        PdfStamper stamper = PdfStamper.createSignature(reader, os, '\0', null, true);
        PdfSignatureAppearance appearance = stamper.getSignatureAppearance();
        System.out.println("Pre definir apariencia...");
        if (infoFirma.isApariencia()) {
            System.out.println("Insertando apriencia en documento...");
            appearance.setSignatureGraphic(Image.getInstance(new URL(infoFirma.getRutaImagen())));
            appearance.setRenderingMode(Utiles.getModoApariencia());

            int numeroPagFirma = infoFirma.getHoja() == -1 ? reader.getNumberOfPages() : infoFirma.getHoja();
            int cantidadFirmaActuales = reader.getAcroFields().getSignatureNames().size();
            int[] coords = infoFirma.calcularCorrdenadasFirma(cantidadFirmaActuales, infoFirma.getAncho(),
                    infoFirma.getLargo());

            //llx, lly, urx, ury
            String v = Utiles.encodingString(infoFirma.getFirmante());
            System.out.println("Post encoding: " + v);
            appearance.setLayer2Text(v);
            //appearance.setLayer2Text(  infoFirma.getFirmante() );
            appearance.setVisibleSignature(new Rectangle(coords[0], coords[1], coords[2], coords[3]),
                    numeroPagFirma, "Id: " + IdGenerator.generate());
        }

        ExternalSignature es = new PrivateKeySignature(infoFirma.getPk(), "SHA-256",
                infoFirma.getProvidername());
        ExternalDigest digest = new BouncyCastleDigest();
        MakeSignature.signDetached(appearance, digest, es, infoFirma.getChainCert(), null, null, null, 0,
                CryptoStandard.CMS);

        System.out.println("PDF Firmado correctamente.");

        return os;

    } catch (IOException ex) {
        Logger.getLogger(FirmaPDFController.class.getName()).log(Level.SEVERE, null, ex);
        throw new AppletException(UtilesMsg.ERROR_FIRMANDO_DOCUMENTO, null, ex.getCause());
    } catch (DocumentException ex) {
        Logger.getLogger(FirmaPDFController.class.getName()).log(Level.SEVERE, null, ex);
        throw new AppletException(UtilesMsg.ERROR_FIRMANDO_DOCUMENTO, null, ex.getCause());
    } catch (KeyStoreException ex) {
        Logger.getLogger(FirmaPDFController.class.getName()).log(Level.SEVERE, null, ex);
        throw new AppletException(UtilesMsg.ERROR_FIRMANDO_DOCUMENTO, null, ex.getCause());
    } catch (NoSuchAlgorithmException ex) {
        Logger.getLogger(FirmaPDFController.class.getName()).log(Level.SEVERE, null, ex);
        throw new AppletException(UtilesMsg.ERROR_FIRMANDO_DOCUMENTO, null, ex.getCause());
    } catch (UnrecoverableKeyException ex) {
        Logger.getLogger(FirmaPDFController.class.getName()).log(Level.SEVERE, null, ex);
        throw new AppletException(UtilesMsg.ERROR_FIRMANDO_DOCUMENTO, null, ex.getCause());
    } catch (GeneralSecurityException ex) {
        Logger.getLogger(FirmaPDFController.class.getName()).log(Level.SEVERE, null, ex);
        throw new AppletException(UtilesMsg.ERROR_FIRMANDO_DOCUMENTO, null, ex.getCause());
    }
}

From source file:com.isa.firma.pades.FirmaPDFController.java

public ByteArrayOutputStream firmar(PDFFirma infoFirma, InputStream pdfbase64) throws AppletException {

    try {//w ww  .  j  a  va 2 s.c o  m
        PdfReader reader = new PdfReader(pdfbase64);
        ByteArrayOutputStream os = new ByteArrayOutputStream();
        PdfStamper stamper = PdfStamper.createSignature(reader, os, '\0', null, true);
        PdfSignatureAppearance appearance = stamper.getSignatureAppearance();

        if (infoFirma.isApariencia()) {
            System.out.println("Definiendo apariencia...");
            appearance.setRenderingMode(Utiles.getModoApariencia());

            if (!Utiles.getModoApariencia().equals(PdfSignatureAppearance.RenderingMode.DESCRIPTION)) {
                appearance.setSignatureGraphic(Image.getInstance(new URL(infoFirma.getRutaImagen())));
            }

            int numeroPagFirma = infoFirma.getHoja() == -1 ? reader.getNumberOfPages() : infoFirma.getHoja();
            int cantidadFirmaActuales = reader.getAcroFields().getSignatureNames().size();
            int[] coords = infoFirma.calcularCorrdenadasFirma(cantidadFirmaActuales, infoFirma.getAncho(),
                    infoFirma.getLargo());

            System.out.println("firmante: " + infoFirma.getFirmante());
            System.out.println("serie: " + infoFirma.getNroSerie());
            //llx, lly, urx, ury
            appearance.setLayer2Text(infoFirma.generarTextoEnFirma());
            appearance.setVisibleSignature(new Rectangle(coords[0], coords[1], coords[2], coords[3]),
                    numeroPagFirma, "Id: " + IdGenerator.generate());
        }

        ExternalSignature es = new PrivateKeySignature(infoFirma.getPk(), "SHA-256",
                infoFirma.getProvidername());
        ExternalDigest digest = new BouncyCastleDigest();
        MakeSignature.signDetached(appearance, digest, es, infoFirma.getChainCert(), null, null, null, 0,
                CryptoStandard.CMS);

        System.out.println("PDF Firmado correctamente.");

        return os;

    } catch (IOException ex) {
        Logger.getLogger(FirmaPDFController.class.getName()).log(Level.SEVERE, null, ex);
        throw new AppletException(UtilesMsg.ERROR_FIRMANDO_DOCUMENTO, null, ex.getCause());
    } catch (DocumentException ex) {
        Logger.getLogger(FirmaPDFController.class.getName()).log(Level.SEVERE, null, ex);
        throw new AppletException(UtilesMsg.ERROR_FIRMANDO_DOCUMENTO, null, ex.getCause());
    } catch (KeyStoreException ex) {
        Logger.getLogger(FirmaPDFController.class.getName()).log(Level.SEVERE, null, ex);
        throw new AppletException(UtilesMsg.ERROR_FIRMANDO_DOCUMENTO, null, ex.getCause());
    } catch (NoSuchAlgorithmException ex) {
        Logger.getLogger(FirmaPDFController.class.getName()).log(Level.SEVERE, null, ex);
        throw new AppletException(UtilesMsg.ERROR_FIRMANDO_DOCUMENTO, null, ex.getCause());
    } catch (UnrecoverableKeyException ex) {
        Logger.getLogger(FirmaPDFController.class.getName()).log(Level.SEVERE, null, ex);
        throw new AppletException(UtilesMsg.ERROR_FIRMANDO_DOCUMENTO, null, ex.getCause());
    } catch (GeneralSecurityException ex) {
        Logger.getLogger(FirmaPDFController.class.getName()).log(Level.SEVERE, null, ex);
        throw new AppletException(UtilesMsg.ERROR_FIRMANDO_DOCUMENTO, null, ex.getCause());
    }
}

From source file:com.kohmiho.mpsr.export.PDFGenerator.java

protected void importPages(Document document, PdfWriter writer, String mpsrID, String fileName)
        throws DocumentException {
    if (null != fileName) {
        String filePath = MPSRUI.getFilePath(mpsrID, fileName);

        PdfReader reader = null;
        try {/*w  ww  .  j  a v  a2s  .co  m*/
            reader = new PdfReader(filePath);
        } catch (IOException e) {
            document.add(new Paragraph(String.format("*** Can not load file %s ***", filePath)));
            // e.printStackTrace();
        }

        if (null != reader) {
            for (int pageNum = 1; pageNum <= reader.getNumberOfPages(); pageNum++) {

                document.setPageSize(reader.getPageSize(pageNum));
                document.newPage();

                PdfImportedPage page = writer.getImportedPage(reader, pageNum);

                // addPageByImage(writer, page);
                addPageByTemplate(writer, page);

                document.setPageSize(DEFAULT_PAGE_SIZE);
                document.newPage();
            }
        }
    }
}

From source file:com.masscustsoft.service.ToPdf.java

License:Open Source License

@Override
protected void run(AbstractResult ret) throws Exception {
    Map<String, String> i18n = (Map) LightUtil.parseJson(getStr("i18n", "{}"));
    ThreadHelper.set("_i18n_", i18n);

    Map rpt = getRpt();/*from  ww  w .  ja  v  a 2 s  .c o m*/

    File temp = File.createTempFile("tmp", ".pdf");

    String name = MapUtil.getStr(rpt, "title", "No-Name");
    HttpServletResponse resp = Upload.getUpload().getResponse();
    resp.setHeader("Content-Disposition", "attachment;filename=\"report.pdf\"");
    resp.setContentType("application/pdf");
    LightUtil.doCache(resp);
    createPdf(rpt, i18n, temp);

    FileInputStream is = new FileInputStream(temp);
    PdfReader reader = new PdfReader(is);
    int pages = reader.getNumberOfPages();
    File temp2 = File.createTempFile("pdf", ".pdf");

    OutputStream out = new FileOutputStream(temp2);
    PdfStamper stamp = new PdfStamper(reader, out);
    for (int i = 1; i <= pages; i++) {
        PdfContentByte c = stamp.getOverContent(i);
        Rectangle ps = reader.getPageSize(i);
        ThreadHelper.set("pageNumber", i);
        ThreadHelper.set("pageCount", pages);
        c.saveState();

        List<Map> items = (List) rpt.get("overlays");
        if (items != null) {
            for (Map item : items) {
                getDirectContent(c, ps, item);
            }
        }

        c.restoreState();
    }
    stamp.close();

    ReportFile df = new ReportFile();
    df.setOwnerId(getSession().getUserId());
    df.setName(name);
    df.setCreateTime(LightUtil.longDate());
    ExternalFile.newExternalFile(getDs(), getFs(), df.getFile(), temp2);
    getDs().insertBean(df);

    temp.delete();
    temp2.delete();

    Map m = new HashMap();
    m.put("externalId", df.getFile().getExternalId());
    ret.setResult(m);
}

From source file:com.modeln.build.ant.pdf.PDFMetadata.java

License:Open Source License

/**
 * Perform the read operation on the PDF metadata. 
 *///from   w ww.  j av  a 2  s.co  m
public void execute() throws BuildException {
    try {
        PdfReader pdf = new PdfReader(filename);
        int pagecount = pdf.getNumberOfPages();
        System.out.println("Number of pages: " + pagecount);
        getProject().setProperty(prefix + "PageCount", Integer.toString(pagecount));

        HashMap<String, String> map = pdf.getInfo();
        Set<String> keys = map.keySet();
        Iterator<String> iter = keys.iterator();
        while (iter.hasNext()) {
            Object key = iter.next();
            Object value = map.get(key);
            System.out.println("Found metadata field: " + prefix + key + " = " + value);
            getProject().setProperty(prefix + key, (String) value);
        }
    } catch (IOException ioex) {
        System.out.println("Unable to open PDF: " + filename);
    }
}

From source file:com.ots.jsp1.itext.ADAStamper.java

License:Open Source License

public void addADAAsWatermark(InputStream inStream, OutputStream outputStream, String ADA)
        throws DocumentException, IOException {
    PdfStamper stamper = null;/*from w w w .ja va  2 s. c o  m*/
    PdfReader reader = null;
    try {

        reader = new PdfReader(inStream);
        //The zero byte means we dont want to change the version number of the PDF file.
        //true->not to change any of the original bytes
        stamper = new PdfStamper(reader, outputStream, '\0', true);
        int numberOfPages = reader.getNumberOfPages();

        for (int currentPage = 1; currentPage <= numberOfPages; currentPage++) {

            PdfAppearance canvas = PdfAppearance.createAppearance(stamper.getWriter(), 100, 30);
            canvas.setFontAndSize(
                    BaseFont.createFont(fontFilePath, BaseFont.IDENTITY_H, BaseFont.NOT_EMBEDDED, true), 11);
            Rectangle pageSize = reader.getPageSizeWithRotation(currentPage);
            Rectangle watermarkPosition = new Rectangle(pageSize.getRight() - 150, pageSize.getTop() - 30,
                    pageSize.getRight() - 50, pageSize.getTop() - 10, 0);
            PdfAnnotation annotation = PdfAnnotation.createFreeText(stamper.getWriter(), watermarkPosition, ADA,
                    canvas);
            annotation.put(PdfName.F, new PdfNumber(PdfAnnotation.FLAGS_READONLY));

            //  annotation.put(PdfName.FONT, canvas);
            //  PdfAnnotation annotation = PdfAnnotation.createText(stamper.getWriter(), watermarkPosition, "", ADA, true, "Key");
            // 

            PdfBorderDictionary borderDictionary = new PdfBorderDictionary(0, PdfBorderDictionary.STYLE_SOLID);

            annotation.setBorderStyle(borderDictionary);
            stamper.addAnnotation(annotation, currentPage);
        }
    } finally {
        stamper.close();
        reader.close();
    }

}

From source file:com.photon.phresco.framework.docs.impl.DocConvertor.java

License:Apache License

/**
 * @param fileUrl/*from   w  w  w  .j ava2 s  .  c  o m*/
 * @return
 * @throws FileNotFoundException
 * @throws IOException
 * @throws DocumentException
 */
private static PdfInput convertPdf(String fileUrl) throws IOException, DocumentException {
    if (isDebugEnabled) {
        S_LOGGER.debug("Entering Method DocConvertor.convertPdf(String fileUrl)");
    }
    PdfReader reader = new PdfReader(new FileInputStream(fileUrl));
    int numberOfPages = reader.getNumberOfPages();
    Document doc = new Document();
    ByteArrayOutputStream os = new ByteArrayOutputStream();
    PdfCopy copy = new PdfCopy(doc, os);
    doc.open();

    //page number in PDF starts at 1
    for (int i = 1; i <= numberOfPages; i++) {
        copy.addPage(copy.getImportedPage(reader, i));
    }
    doc.close();
    ByteArrayInputStream is = new ByteArrayInputStream(os.toByteArray());
    os.close();
    PdfInput input = new PdfInput();
    input.setInputStream(new FileInputStream(fileUrl));
    return input;
}