List of usage examples for com.lowagie.text.pdf PdfReader PdfReader
public PdfReader(PdfReader reader)
From source file:com.urservices.urerp.ecole.views.PdfReportView.java
@Override protected void buildPdfDocument(Map<String, Object> model, Document document, PdfWriter pdfWriter, HttpServletRequest request, HttpServletResponse response) throws Exception { try {//w ww . ja v a 2s . c om PdfReader pdfTemplate = new PdfReader((InputStream) model.get("template")); PdfStamper stamper = new PdfStamper(pdfTemplate, response.getOutputStream()); stamper.setFormFlattening(true); stamper.getAcroFields().setField("txtNom", "Kamdoum"); stamper.getAcroFields().setField("txtPrenom", "Samuel"); stamper.close(); pdfTemplate.close(); System.out.println("This PDF has " + pdfTemplate.getNumberOfPages() + " pages."); } catch (Exception e) { System.out.println("PdfReportView.buildPdfDocument() " + e.getMessage()); } }
From source file:com.userweave.batch.CreatePDF.java
License:Open Source License
public static void main(String[] args) { if (args.length == 0) { args = new String[] { "one.pdf", "two.pdf", "out.pdf" }; }/*w w w .j a v a 2 s. c o m*/ if (args.length == 3) { try { // the document we're watermarking PdfReader document = new PdfReader(args[0]); int num_pages = document.getNumberOfPages(); // the watermark (or letterhead, etc.) PdfReader mark = new PdfReader(args[1]); Rectangle mark_page_size = mark.getPageSize(1); // the output document PdfStamper writer = new PdfStamper(document, new FileOutputStream(args[2])); // create a PdfTemplate from the first page of mark // (PdfImportedPage is derived from PdfTemplate) PdfImportedPage mark_page = writer.getImportedPage(mark, 1); for (int ii = 0; ii < num_pages;) { // iterate over document's pages, adding mark_page as // a layer 'underneath' the page content; scale mark_page // and move it so it fits within the document's page; // if document's page is cropped, then this scale might // not be small enough ++ii; Rectangle doc_page_size = document.getPageSize(ii); float h_scale = doc_page_size.getWidth() / mark_page_size.getWidth(); float v_scale = doc_page_size.getHeight() / mark_page_size.getHeight(); float mark_scale = (h_scale < v_scale) ? h_scale : v_scale; float h_trans = (float) ((doc_page_size.getWidth() - mark_page_size.getWidth() * mark_scale) / 2.0); float v_trans = (float) ((doc_page_size.getHeight() - mark_page_size.getHeight() * mark_scale) / 2.0); PdfContentByte contentByte = writer.getUnderContent(ii); contentByte.addTemplate(mark_page, mark_scale, 0, 0, mark_scale, h_trans, v_trans); } writer.close(); } catch (Exception ee) { ee.printStackTrace(); } } else { // input error System.err.println("arguments: in_document in_watermark out_pdf_fn"); } }
From source file:com.userweave.domain.service.pdf.ItextUtils.java
License:Open Source License
public OutputStream createPDF(InputStream generatedPDF, InputStream stampPDF, OutputStream out) throws IOException, DocumentException { // the document we're watermarking PdfReader document = new PdfReader(generatedPDF); int num_pages = document.getNumberOfPages(); // the watermark (or letterhead, etc.) PdfReader mark = new PdfReader(stampPDF); Rectangle mark_page_size = mark.getPageSize(1); // the output document PdfStamper writer = new PdfStamper(document, out); // create a PdfTemplate from the first page of mark // (PdfImportedPage is derived from PdfTemplate) PdfImportedPage mark_page = writer.getImportedPage(mark, 1); for (int ii = 0; ii < num_pages;) { // iterate over document's pages, adding mark_page as // a layer 'underneath' the page content; scale mark_page // and move it so it fits within the document's page; // if document's page is cropped, then this scale might // not be small enough ++ii;// w w w . j a v a 2 s . com Rectangle doc_page_size = document.getPageSize(ii); float h_scale = doc_page_size.getWidth() / mark_page_size.getWidth(); float v_scale = doc_page_size.getHeight() / mark_page_size.getHeight(); float mark_scale = (h_scale < v_scale) ? h_scale : v_scale; float h_trans = (float) ((doc_page_size.getWidth() - mark_page_size.getWidth() * mark_scale) / 2.0); float v_trans = (float) ((doc_page_size.getHeight() - mark_page_size.getHeight() * mark_scale) / 2.0); PdfContentByte contentByte = writer.getUnderContent(ii); contentByte.addTemplate(mark_page, mark_scale, 0, 0, mark_scale, h_trans, v_trans); } writer.close(); return out; /* PdfReader reader = new PdfReader(origPDF); int n = reader.getNumberOfPages(); Document document = new Document(reader.getPageSizeWithRotation(1)); PdfWriter writer = PdfWriter.getInstance(document, outfile); writer.setEncryption(PdfWriter.STRENGTH40BITS, "pdf", null, PdfWriter.AllowCopy); document.open(); PdfContentByte cb = writer.getDirectContent(); PdfImportedPage page; int rotation; int i = 0; while (i < n) { i++; document.setPageSize(reader.getPageSizeWithRotation(i)); document.newPage(); page = writer.getImportedPage(reader, i); rotation = reader.getPageRotation(i); if (rotation == 90 || rotation == 270) { cb.addTemplate(page, 0, -1f, 1f, 0, 0, reader.getPageSizeWithRotation(i).height()); } else { cb.addTemplate(page, 1f, 0, 0, 1f, 0, 0); } System.out.println("Processed page " + i); } document.close(); } catch( Exception e) { e.printStackTrace(); } */ }
From source file:com.virtusa.akura.student.controller.MessageBoardController.java
License:Open Source License
/** * Merge many pdf files into one file./*from w w w .jav a 2s . co m*/ * * @param streamOfPDFFiles - a list of inputStreams * @param outputStream - an instance of outputStream * @param paginate - a boolean * @throws AkuraAppException - The exception details that occurred when processing */ public static void concatPDFs(List<InputStream> streamOfPDFFiles, OutputStream outputStream, boolean paginate) throws AkuraAppException { final int fontSize = 8, leftRightAlignment = 8; final int min = 0; final int max = 5; final int size = 300; final int xAxis = -150; final int pageHeight = 550; final int pageHieghtfromBottom = 16; final int pageRecHeight = 580; final int recHeightFromBottom = 14; Document document = new Document(PageSize.A4); try { List<InputStream> pdfs = streamOfPDFFiles; List<PdfReader> readers = new ArrayList<PdfReader>(); int totalPages = 0; Iterator<InputStream> iteratorPDFs = pdfs.iterator(); // Create Readers for the pdfs. while (iteratorPDFs.hasNext()) { InputStream pdf = iteratorPDFs.next(); PdfReader pdfReader = new PdfReader(pdf); readers.add(pdfReader); totalPages += pdfReader.getNumberOfPages(); } // Create a writer for the output stream PdfWriter writer = null; BaseFont bf = null; try { writer = PdfWriter.getInstance(document, outputStream); document.open(); bf = BaseFont.createFont(BaseFont.HELVETICA, BaseFont.CP1252, BaseFont.NOT_EMBEDDED); } catch (DocumentException e) { e.printStackTrace(); } PdfContentByte cb = writer.getDirectContent(); // Holds the PDF data PdfImportedPage page; int currentPageNumber = 0; int pageOfCurrentReaderPDF = 0; Iterator<PdfReader> iteratorPDFReader = readers.iterator(); // Loop through the PDF files and add to the output. while (iteratorPDFReader.hasNext()) { PdfReader pdfReader = iteratorPDFReader.next(); // Create a new page in the target for each source page. while (pageOfCurrentReaderPDF < pdfReader.getNumberOfPages()) { if (currentPageNumber != 2) { document.newPage(); } pageOfCurrentReaderPDF++; currentPageNumber++; page = writer.getImportedPage(pdfReader, pageOfCurrentReaderPDF); if (currentPageNumber == 1) { cb.addTemplate(page, 0, xAxis); } else if (currentPageNumber != 2) { cb.addTemplate(page, 0, 0); } // Code for pagination. if (paginate) { cb.beginText(); cb.setFontAndSize(bf, fontSize); cb.showTextAligned(PdfContentByte.ALIGN_CENTER, " " + AkuraWebConstant.REPORT_GPL, size, max, min); cb.newlineText(); cb.endText(); if (currentPageNumber != 2) { int pageNo = currentPageNumber; if (currentPageNumber != 1) { pageNo = currentPageNumber - 1; } // write the page number inside a rectangle. cb.fillStroke(); cb.rectangle(leftRightAlignment, recHeightFromBottom, pageRecHeight, leftRightAlignment); cb.beginText(); cb.showTextAligned(PdfContentByte.ALIGN_LEFT, PAGE + pageNo, pageHeight, pageHieghtfromBottom, 0); cb.endText(); cb.stroke(); } } } pageOfCurrentReaderPDF = 0; } outputStream.flush(); document.close(); outputStream.close(); } catch (IOException e) { e.printStackTrace(); } finally { if (document.isOpen()) { document.close(); } try { if (outputStream != null) { outputStream.close(); } } catch (IOException ioe) { ioe.printStackTrace(); } } }
From source file:corner.orm.tapestry.pdf.PdfOutputPageEvent.java
License:Apache License
public PdfOutputPageEvent(IPdfPage pdfComponent) { try {//w w w.j a v a 2s. co m reader = new PdfReader(pdfComponent.getSpecification().getSpecificationLocation().getResourceURL()); } catch (IOException e) { throw new PdfSystemException(e); } }
From source file:corner.orm.tapestry.pdf.PdfTemplateParser.java
License:Apache License
/** * InputStream??/*from w w w. ja v a2s. co m*/ * * @param templateStream */ public PdfTemplateParser(InputStream templateStream) { try { reader = new PdfReader(templateStream); parse(); } catch (IOException e) { throw new PdfSystemException(e); } }
From source file:corner.orm.tapestry.pdf.PdfTemplateParser.java
License:Apache License
/** * ??//from w w w. j a v a2s . c o m * * @param bs * */ public PdfTemplateParser(byte[] bs) { try { reader = new PdfReader(bs); parse(); } catch (IOException e) { throw new PdfSystemException(e); } }
From source file:corner.orm.tapestry.pdf.PdfTemplateParser.java
License:Apache License
public PdfTemplateParser(URL resourceURL) { try {// w ww . j a va2s.c o m reader = new PdfReader(resourceURL); parse(); } catch (IOException e) { throw new PdfSystemException(e); } }
From source file:crawler.PDFParser.java
License:Open Source License
/** * Initialize opens the document for reading. This is done implicitly * by the constuctor. This should only need to be called directly following * a reset./* w w w .j a v a2 s .c o m*/ * @throws IOException */ protected void initialize() { try { if (document != null) { documentReader = new PdfReader(document); catalog = documentReader.getCatalog(); } } catch (IOException ie) { System.out.println("Pdf file is too large to parse"); ie.printStackTrace(); } }
From source file:de.intranda.test_ics.ImageHelper.java
License:Apache License
@SuppressWarnings("unused") private void addFrontPage(File frontPage, File pdfFile) throws IOException, DocumentException { File tempFile = new File(pdfFile.getParent(), System.currentTimeMillis() + ".pdf"); pdfFile.renameTo(tempFile);//from w ww.j a va2 s .c om PdfReader reader1 = new PdfReader(frontPage.getAbsolutePath()); PdfReader reader2 = new PdfReader(tempFile.getAbsolutePath()); PdfCopyFields copy = new PdfCopyFields(new FileOutputStream(pdfFile)); copy.addDocument(reader1); copy.addDocument(reader2); copy.close(); if (tempFile != null && tempFile.isFile()) { tempFile.delete(); } }