List of usage examples for com.lowagie.text.pdf PdfReader PdfReader
public PdfReader(PdfReader reader)
From source file:hornet.framework.export.fdf.FDF.java
License:CeCILL license
/** * Thread-safe utility method for PDF generation, based on a FDF template stream and a data object to * merge. Fields defined in FDF that can't be merged (not corresponding field in data object) are stored * in FDF Result.//from w ww .j a v a 2 s . c o m * * @param in * input stream of PDF/FDF (template) * @param out * output stream of final PDF * @param data * a javabean or a java.util.Map. Nested properties are allowed this field names access pattern * : "propA:propB:propC". * @return FDF result object (not null) */ public static FDFRes export(final InputStream in, final OutputStream out, final Object data) { PdfReader pdfIn = null; PdfStamper stamper = null; final FDFRes res = new FDFRes(); try { pdfIn = new PdfReader(in); stamper = new PdfStamper(pdfIn, out); final AcroFields form = stamper.getAcroFields(); // fusion champs FDF avec le bean for (final Object nomField : form.getFields().keySet()) { fusionChamp(data, stamper, res, form, nomField); } // la ligne suivante supprime le formulaire stamper.setFormFlattening(true); } catch (final IOException ex) { throw new FDFExportException(ex); } catch (final DocumentException ex) { throw new FDFExportException(ex); } finally { try { stamper.close(); } catch (final Exception ex) { LOG.error("Erreur", ex); } } return res; }
From source file:is.idega.idegaweb.egov.printing.business.DocumentServiceBean.java
License:Open Source License
/** * Creates a pdf letter from a template which is chosen from the message type. Returns a primaryKey to a file in database *//*w w w.ja v a 2s. c om*/ public Integer createPDF(IWUserContext iwuc, Collection msgs, String type, String fileName, boolean flagPrinted) { OutputStream outerOs = null; InputStream outerIs = null; try { MemoryFileBuffer outerBuf = new MemoryFileBuffer(); outerOs = new MemoryOutputStream(outerBuf); outerIs = new MemoryInputStream(outerBuf); // // step 1: creation of a document-object Document document = new Document(); // step 2: we create a writer that listens to the document PdfCopy writer = new PdfCopy(document, outerOs); // step 3: we open the document document.open(); ICFile bulkFile = getICFileHome().create(); bulkFile.store(); PrintingService pserv = getPrintingService(); CommuneMessageBusiness msgBuiz = getMessageService(); int lettersProcessed = 0; for (Iterator iter = msgs.iterator(); iter.hasNext();) { PrintMessage msg = (PrintMessage) iter.next(); MemoryFileBuffer buffer = new MemoryFileBuffer(); OutputStream mos = new MemoryOutputStream(buffer); InputStream mis = new MemoryInputStream(buffer); PrintingContext pcx = getPrintingContext(iwuc, msg); if (pcx != null) { pcx.setDocumentStream(mos); pserv.printDocument(pcx); PdfReader reader = new PdfReader(buffer.buffer()); PdfImportedPage page; int n = reader.getNumberOfPages(); for (int i = 0; i < n;) { ++i; page = writer.getImportedPage(reader, i); writer.addPage(page); } lettersProcessed++; storeStreamToICFile(iwuc, msgBuiz, msg, mis, fileName, buffer.length(), flagPrinted); msg.setMessageBulkData(bulkFile); msg.store(); } } document.close(); bulkFile = createFile(bulkFile, fileName, outerIs, outerBuf.length()); PrintDocuments pdocs = getPrintDocumentsHome().create(); pdocs.setDocument(bulkFile); pdocs.setNumberOfSubDocuments(lettersProcessed); pdocs.setCreator(iwuc.getCurrentUser()); pdocs.setType(type); pdocs.store(); return (Integer) bulkFile.getPrimaryKey(); } catch (Exception e) { e.printStackTrace(); throw new ContentCreationException(e); } finally { try { outerOs.close(); outerIs.close(); } catch (Exception ex) { ex.printStackTrace(); } } }
From source file:ispyb.common.util.PDFFormFiller.java
License:Open Source License
/** * Initialize the PDF document/*from w ww.ja v a 2 s . c o m*/ * * @param pdfForm * the path to the PDF form to be filled * @param os * the output stream object * @param pageOrientation * the page orientation (Portrait or Landscape) * @throws Exception */ public void init(String pdfForm, OutputStream os, int pageOrientation) throws Exception { if (LOG.isDebugEnabled()) LOG.debug("Initializing with template: " + pdfForm); try { this.reader = new PdfReader(pdfForm); this.stamper = new PdfStamper(this.reader, os); this.writer = this.stamper.getWriter(); this.writer.setPdfVersion(PdfWriter.VERSION_1_3); this.setPageOrientation(pageOrientation); this.formFields = this.stamper.getAcroFields(); } catch (Exception e) { LOG.error("init", e); throw new Exception("Error initializing the PDF objects for file \"" + pdfForm + "\"."); } }
From source file:ispyb.common.util.PDFFormFiller.java
License:Open Source License
/** * Initialize the PDF document//from w w w .j ava2s . c o m * * @param pdfForm * the path to the PDF form to be filled * @param os * the output stream object * @param pageOrientation * the page orientation (Portrait or Landscape) * @throws Exception */ private void init(byte[] bs, OutputStream os, int pageOrientation) throws Exception { try { this.reader = new PdfReader(bs); this.stamper = new PdfStamper(this.reader, os); this.writer = this.stamper.getWriter(); this.writer.setPdfVersion(PdfWriter.VERSION_1_3); this.setPageOrientation(pageOrientation); this.formFields = this.stamper.getAcroFields(); } catch (Exception e) { LOG.error("init", e); throw new Exception("Error initializing the PDF objects for file bytes."); } }
From source file:ispyb.common.util.PDFFormFiller.java
License:Open Source License
public void init(InputStream input, OutputStream os) throws Exception { try {/* ww w. java 2 s .co m*/ this.reader = new PdfReader(input); this.stamper = new PdfStamper(this.reader, os); this.writer = this.stamper.getWriter(); this.writer.setPdfVersion(PdfWriter.VERSION_1_3); this.setPageOrientation(PAGE_PORTRAIT); this.formFields = this.stamper.getAcroFields(); } catch (Exception e) { LOG.error("init", e); throw new Exception("Error initializing the PDF objects for file bytes."); } }
From source file:it.eng.spagobi.engines.documentcomposition.exporterUtils.PdfCreator.java
License:Mozilla Public License
public FileOutputStream createPdfFile(FileOutputStream fileOutputStream, Map<String, DocumentContainer> documentsMap, boolean defaultStyle) throws MalformedURLException, IOException, DocumentException { logger.debug("IN"); Document document = new Document(PageSize.A4.rotate()); Rectangle rect = document.getPageSize(); docWidth = rect.getWidth();// w w w . j a va 2s. co m docHeight = rect.getHeight(); logger.debug("document size width: " + docWidth + " height: " + docHeight); //PdfWriter writer=PdfWriter.getInstance(document,new FileOutputStream("C:/comp/SpagoBIProva.pdf")); PdfWriter writer = PdfWriter.getInstance(document, fileOutputStream); document.open(); int documentsNumber = documentsMap.keySet().size(); int columnnsNumber = 2; if (defaultStyle == true) { logger.debug("use default style"); int cellsCounter = 0; PdfPTable table = new PdfPTable(columnnsNumber); table.setWidthPercentage(100); for (Iterator iterator = documentsMap.keySet().iterator(); iterator.hasNext();) { String label = (String) iterator.next(); DocumentContainer docContainer = documentsMap.get(label); byte[] content = docContainer.getContent(); if (content != null) { Image img = null; try { img = Image.getInstance(content); table.addCell(img); } catch (Exception e) { logger.debug("Trying to evaluate response as a PDF file... "); table.addCell(""); // try { // PdfReader reader = new PdfReader(content); // PdfImportedPage page = writer.getImportedPage(reader, 1); // writer.addPage(page); // table.addCell(""); // } catch (Exception x) { // logger.error("Error in inserting image for document " + label, e); // logger.error("Error in inserting pdf file for document " + label, x); // table.addCell(""); // } } } cellsCounter++; } // if cell counter is not pair make it pair if (cellsCounter % 2 != 0) { table.addCell(""); } document.add(table); } else { // ************* NO DEFAULT STYLE ***************** logger.debug("No default style"); // I want to calculate total height of scaled heights!! //int totalScaledHeight=calculateTotaleScaledHeights(documentsMap, defaultStyle); // run on all documents for (Iterator iterator = documentsMap.keySet().iterator(); iterator.hasNext();) { String label = (String) iterator.next(); logger.debug("document with label " + label); DocumentContainer docContainer = documentsMap.get(label); MetadataStyle style = docContainer.getStyle(); // one table for each image, set at absolute position PdfPTable table = new PdfPTable(1); // width and height specified for the container by style attribute int widthStyle = style.getWidth(); int heightStyle = style.getHeight(); logger.debug("style for document width: " + widthStyle + " height: " + heightStyle); // width and height for the table scaled to the document size int tableWidth = calculatePxSize(docWidth, widthStyle, videoWidth); int tableHeight = calculatePxSize(docHeight, heightStyle, videoHeight); logger.debug("table for document width: " + tableWidth + " height: " + tableHeight); // x and y position as specified for the container by the style attribute int yStyle = style.getY(); int xStyle = style.getX(); // width and height scaled to the document size int xPos = (calculatePxPos(docWidth, xStyle, videoWidth)); int yPos = (int) docHeight - (calculatePxPos(docHeight, yStyle, videoHeight)); logger.debug("Table position at x: " + xPos + " y: " + yPos); // get the image byte[] content = docContainer.getContent(); if (content != null) { Image img = null; try { img = Image.getInstance(content); } catch (Exception e) { logger.debug("Trying to evaluate response as a PDF file... "); try { PdfReader reader = new PdfReader(content); PdfContentByte cb = writer.getDirectContent(); PdfImportedPage page = writer.getImportedPage(reader, 1); float[] tm = getTransformationMatrix(page, xPos, yPos, tableWidth, tableHeight); cb.addTemplate(page, tm[0], tm[1], tm[2], tm[3], tm[4], tm[5]); } catch (Exception x) { logger.error("Error in inserting image for document " + label, e); logger.error("Error in inserting pdf file for document " + label, x); } continue; } //if it is a REPORT and has more than one page, too large, you have to resize the image, but how to understand it? // if image size is more than double of the container size cut the first part,otherwise scale it if (docContainer.getDocumentType().equals("REPORT")) { boolean cutImageWIdth = isToCutWidth(img, tableWidth); boolean cutImageHeight = isToCutHeight(img, tableWidth); if (cutImageWIdth == true || cutImageHeight == true) { logger.debug( "Report will be cut to width " + tableWidth + " and height " + tableHeight); try { img = cutImage(content, cutImageHeight, cutImageWIdth, tableHeight, tableWidth, (int) img.getWidth(), (int) img.getHeight()); } catch (Exception e) { logger.error( "Error in image cut, cutt will be ignored and image will be drawn anyway ", e); } } } // this is percentage to resize // The image must be size within the cell int percToResize = percentageToResize((int) img.getWidth(), (int) img.getHeight(), tableWidth, tableHeight); logger.debug("image will be scaled of percentage " + percToResize); img.scalePercent(percToResize); PdfPCell cell = new PdfPCell(img); cell.setNoWrap(true); cell.setFixedHeight(tableHeight); cell.setBorderWidth(0); cell.setHorizontalAlignment(Element.ALIGN_CENTER); cell.setVerticalAlignment(Element.ALIGN_CENTER); table.addCell(cell); //table.setWidthPercentage(tableWidthPerc); table.setTotalWidth(tableWidth); table.setLockedWidth(true); } else { // TODO: setALT! } logger.debug("Add table"); table.writeSelectedRows(0, -1, xPos, yPos, writer.getDirectContent()); logger.debug("Document added"); } } document.close(); logger.debug("OUT"); return fileOutputStream; }
From source file:it.flavianopetrocchi.jpdfbookmarks.itextbookmarksconverter.iTextBookmarksConverter.java
License:Open Source License
private void setActionInBookmark(Bookmark bookmark, PdfDictionary action) { PdfObject dest;//from ww w .ja v a 2 s. c o m if (PdfName.GOTO.equals(PdfReader.getPdfObjectRelease(action.get(PdfName.S)))) { dest = PdfReader.getPdfObjectRelease(action.get(PdfName.D)); if (dest != null) { mapGotoBookmark(bookmark, dest); } } else if (PdfName.URI.equals(PdfReader.getPdfObjectRelease(action.get(PdfName.S)))) { bookmark.setType(BookmarkType.Uri); bookmark.setUri(((PdfString) PdfReader.getPdfObjectRelease(action.get(PdfName.URI))).toUnicodeString()); } else if (PdfName.GOTOR.equals(PdfReader.getPdfObjectRelease(action.get(PdfName.S)))) { bookmark.setRemoteDestination(true); PdfObject file = PdfReader.getPdfObjectRelease(action.get(PdfName.F)); if (file != null) { if (file.isString()) { String path = Ut.onWindowsReplaceBackslashWithSlash(((PdfString) file).toUnicodeString()); bookmark.setRemoteFilePath(path); } else if (file.isDictionary()) { file = PdfReader.getPdfObject(((PdfDictionary) file).get(PdfName.F)); if (file.isString()) { bookmark.setRemoteFilePath(((PdfString) file).toUnicodeString()); } } } dest = PdfReader.getPdfObjectRelease(action.get(PdfName.D)); if (dest != null) { if (dest.isString()) { bookmark.setNamedDestination(dest.toString()); } else if (dest.isName()) { bookmark.setNamedDestination(PdfName.decodeName(dest.toString())); bookmark.setNamedAsName(true); } else if (dest.isArray()) { PdfArray arr = (PdfArray) dest; PdfReader remoteReader; try { // File remoteFile = new File(bookmark.getRemoteFilePath()); // if (!remoteFile.isAbsolute()) { // File openedFile = new File(filePath); // String containingFolder = openedFile.getParent(); // String remotePath = containingFolder + File.separator + bookmark.getRemoteFilePath(); // remoteFile = new File(remotePath); // } File remoteFile = Ut.createAbsolutePath(new File(filePath), new File(bookmark.getRemoteFilePath())); remoteReader = new PdfReader(remoteFile.getCanonicalPath()); makeBookmarkParam(remoteReader, bookmark, arr, null); remoteReader.close(); } catch (IOException ex) { //System.out.println(ex.getMessage()); } finally { } } } PdfObject newWindow = PdfReader.getPdfObjectRelease(action.get(PdfName.NEWWINDOW)); if (newWindow != null) { bookmark.setNewWindow(((PdfBoolean) newWindow).booleanValue()); } } else if (PdfName.LAUNCH.equals(PdfReader.getPdfObjectRelease(action.get(PdfName.S)))) { bookmark.setType(BookmarkType.Launch); PdfObject file = PdfReader.getPdfObjectRelease(action.get(PdfName.F)); if (file == null) { file = PdfReader.getPdfObjectRelease(action.get(PdfName.WIN)); } if (file != null) { if (file.isString()) { bookmark.setFileToLaunch(((PdfString) file).toUnicodeString()); } else if (file.isDictionary()) { file = PdfReader.getPdfObjectRelease(((PdfDictionary) file).get(PdfName.F)); if (file.isString()) { bookmark.setFileToLaunch(((PdfString) file).toUnicodeString()); } } } } else if (PdfName.HIDE.equals(PdfReader.getPdfObjectRelease(action.get(PdfName.S)))) { bookmark.setType(BookmarkType.Hide); PdfObject annotation = PdfReader.getPdfObjectRelease(action.get(PdfName.T)); if (annotation != null) { if (annotation.isDictionary()) { } else if (annotation.isArray()) { } else if (annotation.isString()) { bookmark.setFieldNameToHide(((PdfString) annotation).toUnicodeString()); } } PdfBoolean hide = (PdfBoolean) PdfReader.getPdfObjectRelease(action.get(PdfName.H)); if (hide != null) { bookmark.setHide(hide.booleanValue()); } } else { bookmark.setType(BookmarkType.Unknown); } }
From source file:it.pdfsam.plugin.coverfooter.type.TableTransferHandler.java
License:Open Source License
/** * Drop the CoverFooterItem/*w ww . java 2 s . c o m*/ */ public boolean importData(JComponent c, Transferable t) { if (!(c instanceof JCoverFooterTable)) { return false; } if (canImport(c, t.getTransferDataFlavors())) { try { if (hasCoverFooterItemFlavor(t)) { Object obj = t.getTransferData(CoverFooterItemTransfer.COVERFOOTERITEMFLAVOUR); if (!(obj instanceof CoverFooterItemTransfer)) return false; CoverFooterItemTransfer mit = (CoverFooterItemTransfer) obj; ArrayList cover_item_obj = mit.getData(); importCoverFooterItem(c, cover_item_obj); return true; } else if (hasFileFlavor(t)) { List file_list = (List) t.getTransferData(DataFlavor.javaFileListFlavor); ArrayList row_items = new ArrayList(); for (int i = 0; i < file_list.size(); i++) { File file_item = (File) file_list.get(i); boolean encrypt = false; String num_pages = ""; try { PdfReader pdf_reader = new PdfReader(file_item.getAbsolutePath()); encrypt = pdf_reader.isEncrypted(); // we retrieve the total number of pages num_pages = Integer.toString(pdf_reader.getNumberOfPages()); } catch (Exception ex) { num_pages = ex.getMessage(); } CoverFooterItemType cover_item_obj = new CoverFooterItemType(file_item.getName(), file_item.getAbsolutePath(), num_pages, "All", encrypt); row_items.add(cover_item_obj); } importCoverFooterItem(c, row_items); return true; } else { return false; } } catch (UnsupportedFlavorException ufe) { } catch (IOException ioe) { } } return false; }
From source file:it.pdfsam.plugin.merge.type.TableTransferHandler.java
License:Open Source License
/** * Drop the MergeItem/*from w w w .jav a2s .c om*/ */ public boolean importData(JComponent c, Transferable t) { if (!(c instanceof JMergeTable)) { return false; } if (canImport(c, t.getTransferDataFlavors())) { try { if (hasMergeItemFlavor(t)) { Object obj = t.getTransferData(MergeItemTransfer.MERGEITEMFLAVOUR); if (!(obj instanceof MergeItemTransfer)) return false; MergeItemTransfer mit = (MergeItemTransfer) obj; ArrayList merge_item_obj = mit.getData(); importMergeItem(c, merge_item_obj); return true; } else if (hasFileFlavor(t)) { List file_list = (List) t.getTransferData(DataFlavor.javaFileListFlavor); ArrayList row_items = new ArrayList(); for (int i = 0; i < file_list.size(); i++) { File file_item = (File) file_list.get(i); boolean encrypt = false; String num_pages = ""; try { PdfReader pdf_reader = new PdfReader(file_item.getAbsolutePath()); encrypt = pdf_reader.isEncrypted(); // we retrieve the total number of pages num_pages = Integer.toString(pdf_reader.getNumberOfPages()); } catch (Exception ex) { num_pages = ex.getMessage(); } MergeItemType merge_item_obj = new MergeItemType(file_item.getName(), file_item.getAbsolutePath(), num_pages, "All", encrypt); row_items.add(merge_item_obj); } importMergeItem(c, row_items); return true; } else { return false; } } catch (UnsupportedFlavorException ufe) { } catch (IOException ioe) { } } return false; }
From source file:jPDFmelange.MelangeJFrame.java
License:Open Source License
/** * Main save method./*w w w .j av a 2s . c om*/ * <p> * Saves all elements of the main list represented with its {@link MelangeJFrame#listContentMain content} * to the specified file. * * @param fileName name of file to save. * @throws IOException on File IO error. * @throws DocumentException on itext PDF error. */ private void saveFile(String fileName) throws IOException, DocumentException { File file = new File(fileName); File tmpfile = File.createTempFile("Mixer", null, file.getParentFile()); String bakFileName = fileName.substring(0, fileName.lastIndexOf('.')).concat(".bak"); File bakfile = new File(bakFileName); // // prevent writing to a PDF that is blocked by the renderer. // jPanePreview.closePdfFile(); // itext usage System.out.println("Writing new content to <" + tmpfile.getName() + ">"); PdfReader reader = null; PdfDictionary dict = null; Document pdfDoc = new Document(); PdfCopy writer = new PdfCopy(pdfDoc, new FileOutputStream(tmpfile)); pdfDoc.open(); PageNode node = null; for (int i = 0; i < listContentMain.size(); i++) { node = (PageNode) listContentMain.get(i); if (node.password == null) reader = new PdfReader(node.filename); else reader = new PdfReader(node.filename, node.password.getBytes()); dict = reader.getPageN(node.pagenumber); dict.put(PdfName.ROTATE, new PdfNumber(node.rotation)); writer.addPage(writer.getImportedPage(reader, node.pagenumber)); reader.close(); // close input file System.out .println("Page " + node.pagenumber + " File:" + node.filename + " Rotation:" + node.rotation); } // // save page mode and layout preferences // if (jCheckBoxEnablePDFViewerPrefs.isSelected()) { String key = jPanelViewPrefs.getKeyPageMode(); writer.setViewerPreferences(PageMode.get(key)); key = jPanelViewPrefs.getKeyPageLayout(); writer.setViewerPreferences(PageLayout.get(key)); if (jPanelViewPrefs.jCheckBoxHideToolbar.isSelected()) writer.addViewerPreference(PdfName.HIDETOOLBAR, PdfBoolean.PDFTRUE); if (jPanelViewPrefs.jCheckBoxHideMenubar.isSelected()) writer.addViewerPreference(PdfName.HIDEMENUBAR, PdfBoolean.PDFTRUE); if (jPanelViewPrefs.jCheckBoxHideWindowUI.isSelected()) writer.addViewerPreference(PdfName.HIDEWINDOWUI, PdfBoolean.PDFTRUE); if (jPanelViewPrefs.jCheckBoxFitWindow.isSelected()) writer.addViewerPreference(PdfName.FITWINDOW, PdfBoolean.PDFTRUE); if (jPanelViewPrefs.jCheckBoxCenterWindow.isSelected()) writer.addViewerPreference(PdfName.CENTERWINDOW, PdfBoolean.PDFTRUE); if (jPanelViewPrefs.jCheckBoxDisplayDocTitle.isSelected()) writer.addViewerPreference(PdfName.DISPLAYDOCTITLE, PdfBoolean.PDFTRUE); } pdfDoc.close(); // close Helper Class writer.close(); // close output file // save old file to a XXX.bak file if (bakfile.exists()) bakfile.delete(); if (file.renameTo(bakfile.getCanonicalFile())) { System.out.println("Orginal File is saved in <" + bakfile.getName() + ">"); } // move new content to original file name file = new File(fileName); if (tmpfile.renameTo(file)) System.out.println("<" + tmpfile.getName() + "> is copied to <" + file.getName() + "> "); else { JOptionPane.showMessageDialog(MelangeJFrame.this, messages.getString("canNotWriteFile") + file.getName() + messages.getString("trySaveAs"), messages.getString("warning"), JOptionPane.WARNING_MESSAGE); System.out.println( messages.getString("canNotWriteFile") + file.getName() + messages.getString("trySaveAs")); } }