Example usage for com.lowagie.text.pdf PdfName CROPBOX

List of usage examples for com.lowagie.text.pdf PdfName CROPBOX

Introduction

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

Prototype

PdfName CROPBOX

To view the source code for com.lowagie.text.pdf PdfName CROPBOX.

Click Source Link

Document

A name

Usage

From source file:org.jpedal.examples.simpleviewer.utils.ItextFunctions.java

License:Open Source License

public void setCrop(int pageCount, PdfPageData currentPageData, CropPDFPages cropPage) {
    File tempFile = null;//from   ww w.j  a v a2  s.co m

    try {
        tempFile = File.createTempFile("temp", null);

        ObjectStore.copy(selectedFile, tempFile.getAbsolutePath());
    } catch (Exception e) {
        return;
    }

    try {

        int[] pgsToEdit = cropPage.getPages();

        if (pgsToEdit == null)
            return;

        List pagesToEdit = new ArrayList();
        for (int i = 0; i < pgsToEdit.length; i++)
            pagesToEdit.add(new Integer(pgsToEdit[i]));

        PdfReader reader = new PdfReader(tempFile.getAbsolutePath());

        boolean applyToCurrent = cropPage.applyToCurrentCrop();

        for (int page = 1; page <= pageCount; page++) {
            if (pagesToEdit.contains(new Integer(page))) {

                float currentLeftCrop = currentPageData.getCropBoxX(page);
                float currentBottomCrop = currentPageData.getCropBoxY(page);
                float currentRightCrop = currentPageData.getCropBoxWidth(page) + currentLeftCrop;
                float currentTopCrop = currentPageData.getCropBoxHeight(page) + currentBottomCrop;

                float[] newCrop = cropPage.getCrop();

                if (applyToCurrent) {
                    newCrop[0] = currentLeftCrop + newCrop[0];
                    newCrop[1] = currentBottomCrop + newCrop[1];
                    newCrop[2] = currentRightCrop - newCrop[2];
                    newCrop[3] = currentTopCrop - newCrop[3];
                } else {
                    newCrop[2] = reader.getPageSize(page).width() - newCrop[2];
                    newCrop[3] = reader.getPageSize(page).height() - newCrop[3];
                }

                reader.getPageN(page).put(PdfName.CROPBOX, new PdfArray(newCrop));
            }
        }

        PdfStamper stamp = new PdfStamper(reader, new FileOutputStream(selectedFile));
        stamp.close();

    } catch (Exception e) {

        ObjectStore.copy(tempFile.getAbsolutePath(), selectedFile);

        e.printStackTrace();

    } finally {
        tempFile.delete();
    }
}

From source file:org.sejda.impl.itext.CropTask.java

License:Apache License

public void execute(CropParameters parameters) throws TaskException {
    PdfSource<?> source = parameters.getSource();
    LOG.debug("Opening {} ", source);
    reader = source.open(sourceOpener);//  ww  w. j a va2  s  .  co  m
    int totalPages = reader.getNumberOfPages();

    File tmpFile = createTemporaryPdfBuffer();
    LOG.debug("Created output temporary buffer {} ", tmpFile);

    copier = new DefaultPdfCopier(reader, tmpFile, parameters.getVersion());
    copier.setCompression(parameters.isCompress());

    Set<PdfRectangle> cropAreas = getPdfRectangles(parameters.getCropAreas());
    for (int page = 1; page <= totalPages; page++) {
        PdfDictionary dictionary = reader.getPageN(page);
        for (PdfRectangle cropBox : cropAreas) {
            LOG.trace("Applying crop box {} to page {}", cropBox, page);
            dictionary.put(PdfName.MEDIABOX, cropBox);
            dictionary.put(PdfName.CROPBOX, cropBox);
            copier.addPage(reader, page);
        }
        notifyEvent(getNotifiableTaskMetadata()).stepsCompleted(page).outOf(totalPages);
    }
    nullSafeCloseQuietly(copier);
    nullSafeClosePdfReader(reader);

    outputWriter.setOutput(file(tmpFile).name(parameters.getOutputName()));
    parameters.getOutput().accept(outputWriter);
    LOG.debug("Crop areas applied to {}", parameters.getOutput());
}

From source file:questions.importpages.ExportArea.java

public static void main(String[] args) {
    try {//from w  w  w  .  j  a va2s .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 {/*from  w ww.  j  a  v a 2  s  . co  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();
    }
}