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

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

Introduction

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

Prototype

public PdfDictionary getPageN(int pageNum) 

Source Link

Document

Gets the dictionary that represents a page.

Usage

From source file:questions.images.ResizeImage.java

public static void resizeImagesInPage(PdfReader reader, int page, float factor) throws IOException {
    PdfDictionary pageDictionary = reader.getPageN(page);
    PdfDictionary resources = (PdfDictionary) PdfReader.getPdfObject(pageDictionary.get(PdfName.RESOURCES));
    PdfDictionary xobjects = (PdfDictionary) PdfReader.getPdfObject(resources.get(PdfName.XOBJECT));
    if (xobjects != null) {
        for (Object xObjectKey : xobjects.getKeys()) {
            PdfName xobjectName = (PdfName) xObjectKey;
            PdfObject xobj = xobjects.get(xobjectName);
            PRStream imageStream = (PRStream) PdfReader.getPdfObject(xobj);
            PdfName subtype = (PdfName) PdfReader.getPdfObject(imageStream.get(PdfName.SUBTYPE));
            PdfName filter = (PdfName) PdfReader.getPdfObject(imageStream.get(PdfName.FILTER));
            if (PdfName.IMAGE.equals(subtype) && PdfName.DCTDECODE.equals(filter)) {
                BufferedImage src = ImageIO
                        .read(new ByteArrayInputStream(PdfReader.getStreamBytesRaw(imageStream)));
                int width = (int) (src.getWidth() * factor);
                int height = (int) (src.getHeight() * factor);
                BufferedImage dest = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);
                AffineTransform at = AffineTransform.getScaleInstance(factor, factor);
                Graphics2D g = dest.createGraphics();
                g.drawRenderedImage(src, at);
                ByteArrayOutputStream newImage = new ByteArrayOutputStream();
                ImageIO.write(dest, "JPG", newImage);
                imageStream.setData(newImage.toByteArray(), false, PRStream.NO_COMPRESSION);
                imageStream.put(PdfName.WIDTH, new PdfNumber(width));
                imageStream.put(PdfName.HEIGHT, new PdfNumber(height));
                imageStream.put(PdfName.FILTER, PdfName.DCTDECODE);
            }//w w w . j  av  a  2s .  com
        }
    }
}

From source file:questions.importpages.ExportArea.java

public static void main(String[] args) {
    try {/* ww  w  .ja v  a2s.  c om*/
        PdfReader reader = new PdfReader(SOURCE);
        PdfDictionary pagedict = reader.getPageN(1);
        PdfRectangle rect = new PdfRectangle(45, 610, 603, 906);
        pagedict.put(PdfName.MEDIABOX, rect);
        pagedict.put(PdfName.CROPBOX, rect);
        PdfStamper stamper = new PdfStamper(reader, new FileOutputStream(RESULT));
        stamper.close();
    } catch (IOException e) {
        e.printStackTrace();
    } catch (DocumentException e) {
        e.printStackTrace();
    }
}

From source file:questions.stamppages.AddCropbox.java

public static void main(String[] args) {
    try {/*  ww w.  j ava 2 s.  c o  m*/
        PdfImportedPage page;
        PdfDictionary pageDict;
        PdfReader reader = new PdfReader(RESOURCE);
        Document document = new Document(reader.getPageSizeWithRotation(1));
        PdfWriter writer = PdfWriter.getInstance(document, new FileOutputStream(RESULT2));
        document.open();
        PdfContentByte cb = writer.getDirectContent();
        int n = reader.getNumberOfPages();
        for (int i = 1; i <= n; i++) {
            page = writer.getImportedPage(reader, 1);
            cb.rectangle(0, 52, 612, 668);
            cb.clip();
            cb.newPath();
            cb.addTemplate(page, 0, 0);
            pageDict = reader.getPageN(i);
            PdfArray crop = new PdfRectangle(0, 52, 612, 720);
            pageDict.put(PdfName.CROPBOX, crop);
        }
        document.close();
        PdfStamper stamper = new PdfStamper(reader, new FileOutputStream(RESULT1));
        stamper.close();
    } catch (IOException e) {
        e.printStackTrace();
    } catch (DocumentException e) {
        e.printStackTrace();
    }
}

From source file:questions.stamppages.IncreaseMediabox.java

public static void main(String[] args) {
    try {/*w w  w .jav a  2s .  c o m*/
        PdfDictionary pageDict;
        PdfReader reader = new PdfReader(RESOURCE);
        int n = reader.getNumberOfPages();
        for (int i = 1; i <= n; i++) {
            Rectangle rect = reader.getPageSize(i);
            pageDict = reader.getPageN(i);
            PdfRectangle pdfrect = new PdfRectangle(rect.getLeft(-36), rect.getBottom(-36), rect.getRight(-36),
                    rect.getTop(-36));
            pageDict.put(PdfName.MEDIABOX, pdfrect);
        }
        PdfStamper stamper = new PdfStamper(reader, new FileOutputStream(RESULT));
        stamper.close();
    } catch (IOException e) {
        e.printStackTrace();
    } catch (DocumentException e) {
        e.printStackTrace();
    }
}

From source file:questions.stamppages.RemoveAttachmentAnnotations.java

public static void main(String[] args) throws IOException, DocumentException {
    createPdfWithAttachments();//ww  w.  j  a  v  a2  s.c  o m
    PdfReader reader = new PdfReader(RESOURCE);
    PdfDictionary page;
    PdfDictionary annotation;
    for (int i = 1; i <= reader.getNumberOfPages(); i++) {
        page = reader.getPageN(i);
        PdfArray annots = page.getAsArray(PdfName.ANNOTS);
        if (annots != null) {
            for (int j = annots.size() - 1; j >= 0; j--) {
                annotation = annots.getAsDict(j);
                if (PdfName.FILEATTACHMENT.equals(annotation.get(PdfName.SUBTYPE))) {
                    annots.remove(j);
                }
            }
        }
    }
    reader.removeUnusedObjects();
    PdfStamper stamper = new PdfStamper(reader, new FileOutputStream(RESULT));
    stamper.close();
}