List of usage examples for com.itextpdf.text.pdf PdfReader getNumberOfPages
public int getNumberOfPages()
From source file:com.imipgroup.hieuvt.pdf.PdfUtils.java
public Document readPdf(String inputPath) { String outputPath = "files/Pdf/testRead.pdf"; Document document = new Document(); PdfWriter writer = null;/*from w ww. j a va 2 s . co m*/ try { writer = PdfWriter.getInstance(document, new FileOutputStream(outputPath)); document.open(); PdfReader reader = new PdfReader(inputPath); int n = reader.getNumberOfPages(); PdfImportedPage page; // Go through all pages for (int i = 1; i <= n; i++) { // only page number 2 will be included if (i == 2) { page = writer.getImportedPage(reader, i); Image instance = Image.getInstance(page); document.add(instance); } } document.close(); } catch (DocumentException e) { e.printStackTrace(); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } return document; }
From source file:com.innoq.iQpdfutil.Main.java
License:Open Source License
/** * copyPages copies all pages from the input reader into the pdfcopy. * <p>/* w ww. jav a2 s . c om*/ * If necessary -- that is if the input pdf contains an odd number * of pages -- this method appends an empty page. * </p> * */ private static boolean copyPages(PdfReader reader, PdfCopy copy) throws IOException, DocumentException { int nrOfPagesInCurrentFile = reader.getNumberOfPages(); for (int page = 0; page < nrOfPagesInCurrentFile;) { copy.addPage(copy.getImportedPage(reader, ++page)); } final boolean isEmptyPageRequired = nrOfPagesInCurrentFile % 2 == 1; if (isEmptyPageRequired) { copy.addPage(reader.getPageSize(nrOfPagesInCurrentFile), 0); } return isEmptyPageRequired; }
From source file:com.innoq.iQpdfutil.Main.java
License:Open Source License
/** * This method adds a page number to all pages (except the first one) * from the given input pdf and writes the modified pdf to * the output-stream.// ww w. j av a2 s. c o m * * <p> * The page number is placed in the center at the bottom of the page. * </p> * * <pre> * +-----+ * | | * | | * | | * | -2- | * +-----+ * </pre> * */ private static void numberPages(PdfReader reader, OutputStream os) throws IOException, DocumentException { PdfStamper stamper = new PdfStamper(reader, os); try { int n = reader.getNumberOfPages(); ColumnText text; PdfContentByte contents; Paragraph paragraph; Font headerFont = new Font(Font.FontFamily.COURIER, 12, Font.NORMAL); for (int i = 2; i <= n; i++) { contents = stamper.getOverContent(i); text = new ColumnText(contents); text.setSimpleColumn(1, 10, PageSize.A4.getWidth() - 1, 30, 1, Element.ALIGN_CENTER); paragraph = new Paragraph(String.format("- %d -", i), headerFont); paragraph.setAlignment(Element.ALIGN_CENTER); text.addElement(paragraph); text.go(); } } finally { try { stamper.close(); } catch (Exception e) { e.printStackTrace(); } } }
From source file:com.isa.firma.FirmaPDFController.java
public ByteArrayOutputStream firmar(PDFFirma infoFirma, InputStream pdfbase64) throws AppletException { try {/*from w w w . j av a 2s. com*/ System.out.println("Firma Controller::firmar"); PdfReader reader = new PdfReader(pdfbase64); ByteArrayOutputStream os = new ByteArrayOutputStream(); PdfStamper stamper = PdfStamper.createSignature(reader, os, '\0', null, true); PdfSignatureAppearance appearance = stamper.getSignatureAppearance(); System.out.println("Pre definir apariencia..."); if (infoFirma.isApariencia()) { System.out.println("Insertando apriencia en documento..."); appearance.setSignatureGraphic(Image.getInstance(new URL(infoFirma.getRutaImagen()))); appearance.setRenderingMode(Utiles.getModoApariencia()); int numeroPagFirma = infoFirma.getHoja() == -1 ? reader.getNumberOfPages() : infoFirma.getHoja(); int cantidadFirmaActuales = reader.getAcroFields().getSignatureNames().size(); int[] coords = infoFirma.calcularCorrdenadasFirma(cantidadFirmaActuales, infoFirma.getAncho(), infoFirma.getLargo()); //llx, lly, urx, ury String v = Utiles.encodingString(infoFirma.getFirmante()); System.out.println("Post encoding: " + v); appearance.setLayer2Text(v); //appearance.setLayer2Text( infoFirma.getFirmante() ); appearance.setVisibleSignature(new Rectangle(coords[0], coords[1], coords[2], coords[3]), numeroPagFirma, "Id: " + IdGenerator.generate()); } ExternalSignature es = new PrivateKeySignature(infoFirma.getPk(), "SHA-256", infoFirma.getProvidername()); ExternalDigest digest = new BouncyCastleDigest(); MakeSignature.signDetached(appearance, digest, es, infoFirma.getChainCert(), null, null, null, 0, CryptoStandard.CMS); System.out.println("PDF Firmado correctamente."); return os; } catch (IOException ex) { Logger.getLogger(FirmaPDFController.class.getName()).log(Level.SEVERE, null, ex); throw new AppletException(UtilesMsg.ERROR_FIRMANDO_DOCUMENTO, null, ex.getCause()); } catch (DocumentException ex) { Logger.getLogger(FirmaPDFController.class.getName()).log(Level.SEVERE, null, ex); throw new AppletException(UtilesMsg.ERROR_FIRMANDO_DOCUMENTO, null, ex.getCause()); } catch (KeyStoreException ex) { Logger.getLogger(FirmaPDFController.class.getName()).log(Level.SEVERE, null, ex); throw new AppletException(UtilesMsg.ERROR_FIRMANDO_DOCUMENTO, null, ex.getCause()); } catch (NoSuchAlgorithmException ex) { Logger.getLogger(FirmaPDFController.class.getName()).log(Level.SEVERE, null, ex); throw new AppletException(UtilesMsg.ERROR_FIRMANDO_DOCUMENTO, null, ex.getCause()); } catch (UnrecoverableKeyException ex) { Logger.getLogger(FirmaPDFController.class.getName()).log(Level.SEVERE, null, ex); throw new AppletException(UtilesMsg.ERROR_FIRMANDO_DOCUMENTO, null, ex.getCause()); } catch (GeneralSecurityException ex) { Logger.getLogger(FirmaPDFController.class.getName()).log(Level.SEVERE, null, ex); throw new AppletException(UtilesMsg.ERROR_FIRMANDO_DOCUMENTO, null, ex.getCause()); } }
From source file:com.isa.firma.pades.FirmaPDFController.java
public ByteArrayOutputStream firmar(PDFFirma infoFirma, InputStream pdfbase64) throws AppletException { try {//w ww . j a va 2 s.c o m PdfReader reader = new PdfReader(pdfbase64); ByteArrayOutputStream os = new ByteArrayOutputStream(); PdfStamper stamper = PdfStamper.createSignature(reader, os, '\0', null, true); PdfSignatureAppearance appearance = stamper.getSignatureAppearance(); if (infoFirma.isApariencia()) { System.out.println("Definiendo apariencia..."); appearance.setRenderingMode(Utiles.getModoApariencia()); if (!Utiles.getModoApariencia().equals(PdfSignatureAppearance.RenderingMode.DESCRIPTION)) { appearance.setSignatureGraphic(Image.getInstance(new URL(infoFirma.getRutaImagen()))); } int numeroPagFirma = infoFirma.getHoja() == -1 ? reader.getNumberOfPages() : infoFirma.getHoja(); int cantidadFirmaActuales = reader.getAcroFields().getSignatureNames().size(); int[] coords = infoFirma.calcularCorrdenadasFirma(cantidadFirmaActuales, infoFirma.getAncho(), infoFirma.getLargo()); System.out.println("firmante: " + infoFirma.getFirmante()); System.out.println("serie: " + infoFirma.getNroSerie()); //llx, lly, urx, ury appearance.setLayer2Text(infoFirma.generarTextoEnFirma()); appearance.setVisibleSignature(new Rectangle(coords[0], coords[1], coords[2], coords[3]), numeroPagFirma, "Id: " + IdGenerator.generate()); } ExternalSignature es = new PrivateKeySignature(infoFirma.getPk(), "SHA-256", infoFirma.getProvidername()); ExternalDigest digest = new BouncyCastleDigest(); MakeSignature.signDetached(appearance, digest, es, infoFirma.getChainCert(), null, null, null, 0, CryptoStandard.CMS); System.out.println("PDF Firmado correctamente."); return os; } catch (IOException ex) { Logger.getLogger(FirmaPDFController.class.getName()).log(Level.SEVERE, null, ex); throw new AppletException(UtilesMsg.ERROR_FIRMANDO_DOCUMENTO, null, ex.getCause()); } catch (DocumentException ex) { Logger.getLogger(FirmaPDFController.class.getName()).log(Level.SEVERE, null, ex); throw new AppletException(UtilesMsg.ERROR_FIRMANDO_DOCUMENTO, null, ex.getCause()); } catch (KeyStoreException ex) { Logger.getLogger(FirmaPDFController.class.getName()).log(Level.SEVERE, null, ex); throw new AppletException(UtilesMsg.ERROR_FIRMANDO_DOCUMENTO, null, ex.getCause()); } catch (NoSuchAlgorithmException ex) { Logger.getLogger(FirmaPDFController.class.getName()).log(Level.SEVERE, null, ex); throw new AppletException(UtilesMsg.ERROR_FIRMANDO_DOCUMENTO, null, ex.getCause()); } catch (UnrecoverableKeyException ex) { Logger.getLogger(FirmaPDFController.class.getName()).log(Level.SEVERE, null, ex); throw new AppletException(UtilesMsg.ERROR_FIRMANDO_DOCUMENTO, null, ex.getCause()); } catch (GeneralSecurityException ex) { Logger.getLogger(FirmaPDFController.class.getName()).log(Level.SEVERE, null, ex); throw new AppletException(UtilesMsg.ERROR_FIRMANDO_DOCUMENTO, null, ex.getCause()); } }
From source file:com.kohmiho.mpsr.export.PDFGenerator.java
protected void importPages(Document document, PdfWriter writer, String mpsrID, String fileName) throws DocumentException { if (null != fileName) { String filePath = MPSRUI.getFilePath(mpsrID, fileName); PdfReader reader = null; try {/*w ww . j a v a2s .co m*/ reader = new PdfReader(filePath); } catch (IOException e) { document.add(new Paragraph(String.format("*** Can not load file %s ***", filePath))); // e.printStackTrace(); } if (null != reader) { for (int pageNum = 1; pageNum <= reader.getNumberOfPages(); pageNum++) { document.setPageSize(reader.getPageSize(pageNum)); document.newPage(); PdfImportedPage page = writer.getImportedPage(reader, pageNum); // addPageByImage(writer, page); addPageByTemplate(writer, page); document.setPageSize(DEFAULT_PAGE_SIZE); document.newPage(); } } } }
From source file:com.masscustsoft.service.ToPdf.java
License:Open Source License
@Override protected void run(AbstractResult ret) throws Exception { Map<String, String> i18n = (Map) LightUtil.parseJson(getStr("i18n", "{}")); ThreadHelper.set("_i18n_", i18n); Map rpt = getRpt();/*from ww w . ja v a 2 s .c o m*/ File temp = File.createTempFile("tmp", ".pdf"); String name = MapUtil.getStr(rpt, "title", "No-Name"); HttpServletResponse resp = Upload.getUpload().getResponse(); resp.setHeader("Content-Disposition", "attachment;filename=\"report.pdf\""); resp.setContentType("application/pdf"); LightUtil.doCache(resp); createPdf(rpt, i18n, temp); FileInputStream is = new FileInputStream(temp); PdfReader reader = new PdfReader(is); int pages = reader.getNumberOfPages(); File temp2 = File.createTempFile("pdf", ".pdf"); OutputStream out = new FileOutputStream(temp2); PdfStamper stamp = new PdfStamper(reader, out); for (int i = 1; i <= pages; i++) { PdfContentByte c = stamp.getOverContent(i); Rectangle ps = reader.getPageSize(i); ThreadHelper.set("pageNumber", i); ThreadHelper.set("pageCount", pages); c.saveState(); List<Map> items = (List) rpt.get("overlays"); if (items != null) { for (Map item : items) { getDirectContent(c, ps, item); } } c.restoreState(); } stamp.close(); ReportFile df = new ReportFile(); df.setOwnerId(getSession().getUserId()); df.setName(name); df.setCreateTime(LightUtil.longDate()); ExternalFile.newExternalFile(getDs(), getFs(), df.getFile(), temp2); getDs().insertBean(df); temp.delete(); temp2.delete(); Map m = new HashMap(); m.put("externalId", df.getFile().getExternalId()); ret.setResult(m); }
From source file:com.modeln.build.ant.pdf.PDFMetadata.java
License:Open Source License
/** * Perform the read operation on the PDF metadata. *///from w ww. j av a 2 s.co m public void execute() throws BuildException { try { PdfReader pdf = new PdfReader(filename); int pagecount = pdf.getNumberOfPages(); System.out.println("Number of pages: " + pagecount); getProject().setProperty(prefix + "PageCount", Integer.toString(pagecount)); HashMap<String, String> map = pdf.getInfo(); Set<String> keys = map.keySet(); Iterator<String> iter = keys.iterator(); while (iter.hasNext()) { Object key = iter.next(); Object value = map.get(key); System.out.println("Found metadata field: " + prefix + key + " = " + value); getProject().setProperty(prefix + key, (String) value); } } catch (IOException ioex) { System.out.println("Unable to open PDF: " + filename); } }
From source file:com.ots.jsp1.itext.ADAStamper.java
License:Open Source License
public void addADAAsWatermark(InputStream inStream, OutputStream outputStream, String ADA) throws DocumentException, IOException { PdfStamper stamper = null;/*from w w w .ja va 2 s. c o m*/ PdfReader reader = null; try { reader = new PdfReader(inStream); //The zero byte means we dont want to change the version number of the PDF file. //true->not to change any of the original bytes stamper = new PdfStamper(reader, outputStream, '\0', true); int numberOfPages = reader.getNumberOfPages(); for (int currentPage = 1; currentPage <= numberOfPages; currentPage++) { PdfAppearance canvas = PdfAppearance.createAppearance(stamper.getWriter(), 100, 30); canvas.setFontAndSize( BaseFont.createFont(fontFilePath, BaseFont.IDENTITY_H, BaseFont.NOT_EMBEDDED, true), 11); Rectangle pageSize = reader.getPageSizeWithRotation(currentPage); Rectangle watermarkPosition = new Rectangle(pageSize.getRight() - 150, pageSize.getTop() - 30, pageSize.getRight() - 50, pageSize.getTop() - 10, 0); PdfAnnotation annotation = PdfAnnotation.createFreeText(stamper.getWriter(), watermarkPosition, ADA, canvas); annotation.put(PdfName.F, new PdfNumber(PdfAnnotation.FLAGS_READONLY)); // annotation.put(PdfName.FONT, canvas); // PdfAnnotation annotation = PdfAnnotation.createText(stamper.getWriter(), watermarkPosition, "", ADA, true, "Key"); // PdfBorderDictionary borderDictionary = new PdfBorderDictionary(0, PdfBorderDictionary.STYLE_SOLID); annotation.setBorderStyle(borderDictionary); stamper.addAnnotation(annotation, currentPage); } } finally { stamper.close(); reader.close(); } }
From source file:com.photon.phresco.framework.docs.impl.DocConvertor.java
License:Apache License
/** * @param fileUrl/*from w w w .j ava2 s . c o m*/ * @return * @throws FileNotFoundException * @throws IOException * @throws DocumentException */ private static PdfInput convertPdf(String fileUrl) throws IOException, DocumentException { if (isDebugEnabled) { S_LOGGER.debug("Entering Method DocConvertor.convertPdf(String fileUrl)"); } PdfReader reader = new PdfReader(new FileInputStream(fileUrl)); int numberOfPages = reader.getNumberOfPages(); Document doc = new Document(); ByteArrayOutputStream os = new ByteArrayOutputStream(); PdfCopy copy = new PdfCopy(doc, os); doc.open(); //page number in PDF starts at 1 for (int i = 1; i <= numberOfPages; i++) { copy.addPage(copy.getImportedPage(reader, i)); } doc.close(); ByteArrayInputStream is = new ByteArrayInputStream(os.toByteArray()); os.close(); PdfInput input = new PdfInput(); input.setInputStream(new FileInputStream(fileUrl)); return input; }