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

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

Introduction

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

Prototype

public PdfReader(final PdfReader reader) 

Source Link

Document

Creates an independent duplicate.

Usage

From source file:pdfextract.ExtractInfo.java

public void extractImages(String filename) throws IOException, DocumentException {

    PdfReader reader = new PdfReader(filename);
    PdfReaderContentParser parser = new PdfReaderContentParser(reader);
    ImageRenderListener listener = new ImageRenderListener("spdf");

    for (int i = 1; i <= reader.getNumberOfPages(); i++) {
        parser.processContent(i, listener);
    }//  w  w w  . j  a  v a  2  s  .c  o  m
    reader.close();
    BufferedImage buffImage;
}

From source file:PdfFormFiller.WrongParamsExeption.java

License:GNU General Public License

public static void fillPDFFile(String pdf_filename_in, String pdf_filename_out, String fields_filename,
        String font_file, String op, Boolean flatten, Boolean verbose) {
    OutputStream os;/*  w  w  w . j a va 2s .c o m*/
    PdfStamper stamp;
    try {
        PdfReader reader = new PdfReader(pdf_filename_in);

        if (pdf_filename_out != null) {
            os = new FileOutputStream(pdf_filename_out);
        } else {
            os = System.out;
        }

        stamp = new PdfStamper(reader, os, '\0');

        AcroFields form = stamp.getAcroFields();

        if (op.equals("list")) {
            formList(form);
        } else {
            if (font_file != null) {
                BaseFont bf = BaseFont.createFont(font_file, BaseFont.IDENTITY_H, true);
                form.addSubstitutionFont(bf);
            }
            Map<String, String> fields = readFile(fields_filename);
            for (Map.Entry<String, String> entry : fields.entrySet()) {
                if (verbose)
                    System.out.println("Field name = '" + entry.getKey() + "', New field value: '"
                            + entry.getValue() + "'");
                form.setField(entry.getKey(), entry.getValue());
            }

            stamp.setFormFlattening(flatten);
            stamp.close();
        }
    } catch (FileNotFoundException e) {
        System.err.println("FileNotFoundException: " + e.getMessage());
        System.exit(2);
    } catch (IOException e) {
        System.err.println("Input output error: " + e.getMessage());
        System.exit(3);
    } catch (DocumentException e) {
        System.err.println("Error while processing document: " + e.getMessage());
        System.exit(4);
    }
}

From source file:pdfgen.pdf_generation_try5.java

public void AllFunctions(String realpath, String sample_pdf_path) {

    try {/*from ww w .  j ava  2  s  . c om*/
        INPUTFILE = sample_pdf_path;
        // System.out.println("Inputfile: "+INPUTFILE);
        Document document = new Document();
        //PdfWriter.getInstance(document, new FileOutputStream(OUTPUTFILE));
        OUTPUTFILE = filepath(realpath);
        //System.out.println("Outputfile"+OUTPUTFILE);
        PdfReader reader = new PdfReader(INPUTFILE);
        PdfWriter writer = PdfWriter.getInstance(document, new FileOutputStream(OUTPUTFILE));
        //     writer.setEncryption(USER_PASS.getBytes(), OWNER_PASS.getBytes(),PdfWriter.ALLOW_PRINTING, PdfWriter.ENCRYPTION_AES_128);

        document.open();
        addTitlePage(document);

        int n = reader.getNumberOfPages();
        PdfImportedPage page;
        // Go through all pages
        for (int i = 1; i <= n; i++) {

            page = writer.getImportedPage(reader, i);
            Image instance = Image.getInstance(page);
            instance.setAlignment(Element.ALIGN_LEFT);
            //  document.add(instance);

        }

        addMetaData(document);
        pdfReaderFunction(reader);
        AddParagraph(document);
        //    addContent(document);
        // scaleImage();
        qr_generator(document);
        document.close();
    } catch (Exception e) {
        e.printStackTrace();
    }
}

From source file:pdfmt.pdf2image.java

License:Open Source License

/** 
 * Convert a PDF document to a TIF file 
 *//*from  www  .ja va2s  .com*/
protected static void convert(String pdf, String tif, String destPdf) throws IOException {

    org.icepdf.core.pobjects.Document pdffile = new org.icepdf.core.pobjects.Document();

    try {
        pdffile.setFile(pdf);

    } catch (PDFException ex) {
        //  System.out.println("Error parsing PDF document " + ex); 
    } catch (PDFSecurityException ex) {
        //  System.out.println("Error encryption not supported " + ex); 
    } catch (FileNotFoundException ex) {
        // System.out.println("Error file not found " + ex); 
    } catch (IOException ex) {
        //  System.out.println("Error handling PDF document " + ex); 
    }

    int numPgs = pdffile.getNumberOfPages();

    try {
        // step 1: create new reader
        PdfReader r = new PdfReader(pdf);
        //  System.out.println("File Lenght:"  + r.getFileLength());
        RandomAccessFileOrArray raf = new RandomAccessFileOrArray(pdf);
        // System.out.println("Raf:" + raf);
        Document document = new Document(r.getPageSizeWithRotation(1));
        //           // step 2: create a writer that listens to the document
        PdfCopy writer = new PdfCopy(document, new FileOutputStream(destPdf));
        //           
        //           // step 3: we open the document
        document.open();
        //           // step 4: we add content
        PdfImportedPage page = null;
        //        
        //loop through each page and if the bs is larger than 20 than we know it is not blank.
        //if it is less than 20 than we don't include that blank page.

        float scale = 2.084f;
        float rotation = 0f;

        BufferedImage image[] = new BufferedImage[numPgs];

        for (int i = 0; i < numPgs; i++) {

            byte bContent[] = r.getPageContent(i + 1, raf);
            // System.out.println(bContent.toString());

            ByteArrayOutputStream bs = new ByteArrayOutputStream();
            //write the content to an output stream
            bs.write(bContent);

            //System.out.println("page content length of page " + i+1 + " = "
            //      + bs.size());

            /* 
             * Generate the image: 
             * Notes: 1275x1650 = 8.5 x 11 @ 150dpi ??? 
             */
            image[i] = (BufferedImage) pdffile.getPageImage(i, GraphicsRenderingHints.SCREEN,
                    Page.BOUNDARY_CROPBOX, rotation, scale);
            Iterator writers = ImageIO.getImageWritersByFormatName("TIFF");
            if (writers == null || !writers.hasNext()) {
                throw new RuntimeException("No writers for available.");

            }
            ImageWriter myWriter = (ImageWriter) writers.next();
            myWriter.setOutput(new FileImageOutputStream(new File(tif)));
            myWriter.prepareWriteSequence(null);
            ImageTypeSpecifier imageType = ImageTypeSpecifier.createFromRenderedImage(image[i]);
            IIOMetadata imageMetadata = myWriter.getDefaultImageMetadata(imageType, null);
            imageMetadata = createImageMetadata(imageMetadata);
            myWriter.writeToSequence(new IIOImage(image[i], null, imageMetadata), null);

            myWriter.dispose();
            image[i] = null;
            myWriter = null;

            FileInputStream in = new FileInputStream(tif);
            FileChannel channel = in.getChannel();
            ByteBuffer buffer = ByteBuffer.allocate((int) channel.size());
            channel.read(buffer);
            Image imageBlank;

            imageBlank = load(buffer.array());

            BufferedImage bufferedImage = imageToBufferedImage(imageBlank);
            boolean isBlank;
            isBlank = isBlank(bufferedImage);
            // System.out.println("isblank "+ isBlank);

            if (isBlank == false) {

                page = writer.getImportedPage(r, i + 1);
                writer.addPage(page);

            }
            bs.close();

            System.gc();
        }

        document.close();
        writer.close();
        raf.close();
        r.close();

    } catch (Exception e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }

}

From source file:pdfmt.RemoveBlankPdf.java

License:Open Source License

/**
 * Convert a PDF document to a TIF file.
 * // w ww  .  j a  v a 2  s .co m
 * @param pdf
 *            the pdf
 * @param tif
 *            the tif
 * @param destPdf
 *            the dest pdf
 * @throws IOException
 *             Signals that an I/O exception has occurred.
 */
protected void convert(String pdf, String tif, String destPdf) throws IOException {

    startTime = System.currentTimeMillis();
    logger.info("In the boolean convert(String pdf, String tif, String destPdf)");
    org.icepdf.core.pobjects.Document pdffile = new org.icepdf.core.pobjects.Document();

    try {

        pdffile.setFile(pdf);

    } catch (PDFException ex) {
        // System.out.println("Error parsing PDF document " + ex);
    } catch (PDFSecurityException ex) {
        // System.out.println("Error encryption not supported " + ex);
    } catch (FileNotFoundException ex) {
        // System.out.println("Error file not found " + ex);
    } catch (IOException ex) {
        // System.out.println("Error handling PDF document " + ex);
    }

    int numPgs = pdffile.getNumberOfPages();
    msg.setText(".....::::: Converting pages please wait :::::.....");
    addComponent(contentPane, msg, 10, 110, 200, 18);

    try {
        // step 1: create new reader
        PdfReader r = new PdfReader(pdf);
        // System.out.println("File Lenght:" + r.getFileLength());
        RandomAccessFileOrArray raf = new RandomAccessFileOrArray(pdf);
        // System.out.println("Raf:" + raf);
        Document document = new Document(r.getPageSizeWithRotation(1));
        // // step 2: create a writer that listens to the document
        PdfCopy writer = new PdfCopy(document, new FileOutputStream(destPdf));
        //           
        // // step 3: we open the document
        document.open();
        // // step 4: we add content
        PdfImportedPage page = null;

        float scale = 2.084f;
        float rotation = 0f;

        BufferedImage image[] = new BufferedImage[numPgs];

        // -------- CHANGE
        jprogress.setMaximum(numPgs);
        // -------- CHANGE

        for (int i = 0; i < numPgs; i++) {

            // -------- CHANGE
            jprogress.setValue(i + 1);
            // -------- CHANGE

            byte bContent[] = r.getPageContent(i + 1, raf);
            // System.out.println(bContent.toString());

            ByteArrayOutputStream bs = new ByteArrayOutputStream();
            // write the content to an output stream
            bs.write(bContent);

            // System.out.println("page content length of page " + i+1 +
            // " = "
            // + bs.size());

            /*
             * Generate the image: Notes: 1275x1650 = 8.5 x 11 @ 150dpi ???
             */
            image[i] = (BufferedImage) pdffile.getPageImage(i, GraphicsRenderingHints.SCREEN,
                    Page.BOUNDARY_CROPBOX, rotation, scale);
            Iterator writers = ImageIO.getImageWritersByFormatName("TIFF");
            if (writers == null || !writers.hasNext()) {
                throw new RuntimeException("No writers for available.");

            }
            ImageWriter myWriter = (ImageWriter) writers.next();
            myWriter.setOutput(new FileImageOutputStream(new File(tif)));
            myWriter.prepareWriteSequence(null);
            ImageTypeSpecifier imageType = ImageTypeSpecifier.createFromRenderedImage(image[i]);
            IIOMetadata imageMetadata = myWriter.getDefaultImageMetadata(imageType, null);
            imageMetadata = createImageMetadata(imageMetadata);
            myWriter.writeToSequence(new IIOImage(image[i], null, imageMetadata), null);

            myWriter.dispose();
            image[i] = null;
            myWriter = null;

            FileInputStream in = new FileInputStream(tif);
            FileChannel channel = in.getChannel();
            ByteBuffer buffer = ByteBuffer.allocate((int) channel.size());
            channel.read(buffer);
            Image imageBlank;

            imageBlank = load(buffer.array());

            BufferedImage bufferedImage = imageToBufferedImage(imageBlank);
            boolean isBlank;
            isBlank = isBlank(bufferedImage);
            // System.out.println("isblank "+ isBlank);
            boolean hasContent = false;
            File file = new File(TEMP_DIR + TEMP_EXTR_TEXT);

            try {
                FileWriter fileWriter = new FileWriter(file);

                PageText pageText = pdffile.getPageText(i);
                if (pageText != null && pageText.getPageLines() != null) {
                    fileWriter.write(pageText.toString());
                }

                // close the writer
                fileWriter.close();
                System.out.println(file.length());
                if (file.length() > 20) {
                    hasContent = true;

                }
                file.delete();

                System.out.println(TEMP_TIFF + " deleted");
            } catch (IOException e) {

                e.printStackTrace();
            }

            if (isBlank == false && hasContent == true) {

                page = writer.getImportedPage(r, i + 1);
                writer.addPage(page);

            }
            bs.close();
            in.close();
            File ft = new File(TEMP_DIR + TEMP_TIFF);
            boolean check = ft.delete();
            if (check == true) {
                System.out.println("Deleted");
            } else {
                System.out.println("Stuck");
            }
            System.gc();

        }

        document.close();
        writer.close();
        raf.close();
        r.close();
        stopTime = System.currentTimeMillis();
        logger.info("Exit boolean convert(String pdf, String tif, String destPdf) with time:    "
                + ((stopTime - startTime) / 1000));

    } catch (Exception e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }

}

From source file:pdfreadersample.PdfReadersample.java

/**
 * @param args the command line arguments
 *//*from  ww w  .  j  a  va2s  . c o m*/
public static void main(String[] args) throws IOException {
    // TODO code application logic here
    String[] lstrwordlist = {};
    ArrayList<Integer> lobjlist = new ArrayList<Integer>();
    PdfReader reader = new PdfReader("C:/Users/Varnith/Desktop/TestFilewithNumbers.pdf");
    System.out.println("This PDF has " + reader.getNumberOfPages() + " pages.");
    for (int i = 0; i < reader.getNumberOfPages(); i++) {
        String page = PdfTextExtractor.getTextFromPage(reader, i + 1);
        lstrwordlist = page.trim().split("\n");
        //System.out.println("hello");
        for (int j = 0; j < lstrwordlist.length; j++) {
            lobjlist.add(Integer.valueOf(lstrwordlist[j].trim()));

        }
        //lobjlist.add(lstrwordlist[0]);
        //System.out.println("Page Content:\n\n"+page+"\n\n");
    }
    System.out.println("length of element :" + lobjlist.size());
    //System.out.println("Is this document encrypted: "+reader.isEncrypted());

}

From source file:pdftotextconverter.PDFToTextConverter.java

public static void convertPDFToText(String src, String desc) {
    try {/*ww w .j ava 2 s. c  o m*/
        FileWriter fw = new FileWriter(desc);
        BufferedWriter bw = new BufferedWriter(fw);
        PdfReader pr = new PdfReader(src);
        int pNum = pr.getNumberOfPages();
        for (int page = 1; page <= pNum; page++) {
            String text = PdfTextExtractor.getTextFromPage(pr, page);
            bw.write(text);
            bw.newLine();
        }
        bw.flush();
        bw.close();
    } catch (Exception e) {
        e.printStackTrace();
    }

}

From source file:pdfupdate.PdfUpdate.java

public void manipulatePdf(String src, String dest) throws IOException, DocumentException {
    PdfReader.unethicalreading = false;/*from  w ww .  jav  a 2 s  .  c  o m*/
    PdfReader reader = new PdfReader(src);
    PdfStamper stamper = new PdfStamper(reader, new FileOutputStream(dest));
    AcroFields form = stamper.getAcroFields();
    XfaForm xfa = form.getXfa();
    xfa.fillXfaForm(new FileInputStream(XML));
    stamper.close();
    reader.close();
}

From source file:pdfupdate.PdfUpdate.java

public void manipulatePdf2(String src, String dest) throws IOException, DocumentException {
    PdfReader reader = new PdfReader(src);
    PdfStamper stamper = new PdfStamper(reader, new FileOutputStream(dest));
    AcroFields form = stamper.getAcroFields();
    XfaForm xfa = form.getXfa();/*from w ww  . ja v a  2  s  . co m*/
    xfa.fillXfaForm(new FileInputStream(XML));
    stamper.close();
    reader.close();
}

From source file:pdfupdate.PdfUpdate.java

public void readXml(String src, String dest) throws IOException, DocumentException, TransformerException {
    PdfReader reader = new PdfReader(src);
    AcroFields form = reader.getAcroFields();
    XfaForm xfa = form.getXfa();//from   w  ww . ja  v  a2  s.co m
    Node node = xfa.getDatasetsNode();
    NodeList list = node.getChildNodes();
    for (int i = 0; i < list.getLength(); i++) {
        if ("data".equals(list.item(i).getLocalName())) {
            node = list.item(i);
            break;
        }
    }
    list = node.getChildNodes();
    for (int i = 0; i < list.getLength(); i++) {
        if ("movies".equals(list.item(i).getLocalName())) {
            node = list.item(i);
            break;
        }
    }
    Transformer tf = TransformerFactory.newInstance().newTransformer();
    tf.setOutputProperty(OutputKeys.ENCODING, "UTF-8");
    tf.setOutputProperty(OutputKeys.INDENT, "yes");
    FileOutputStream os = new FileOutputStream(dest);
    tf.transform(new DOMSource(node), new StreamResult(os));
    reader.close();
}