List of usage examples for com.lowagie.text.pdf PdfName CROPBOX
PdfName CROPBOX
To view the source code for com.lowagie.text.pdf PdfName CROPBOX.
Click Source Link
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(); } }