List of usage examples for com.lowagie.text DocumentException DocumentException
public DocumentException(String message)
DocumentException
with a message. From source file:androidGLUESigner.pdf.PDFSignerEngine.java
License:Open Source License
/** * Finalize signature with timestamp and store into result file * @param signedHash the signed hash value * @param inputStream the stream to the input pdf file * @param outputStream the stream to the output pdf file * @throws Exception//from www.ja va 2s.c o m */ public void finalizeSign(byte[] signedHash, InputStream inputStream, OutputStream outputStream) throws Exception { // Create a temporary file File tmpFile = File.createTempFile("PDFSigner-", ".pdf"); //tmpFile.deleteOnExit(); // Save the PDF in the temporary file UtilityHelper.copyStream(inputStream, new FileOutputStream(tmpFile)); // Add a timestamp: TSAClient tsc = new TSAClientBouncyCastle(tsa_url, tsa_login, tsa_passw); // Create the signature PdfPKCS7 sgn = new PdfPKCS7(null, getCertificateChain(), null, hashAlgo, null, true); sgn.setExternalDigest(signedHash, hash, "RSA"); byte[] encodedSig = sgn.getEncodedPKCS7(hash, calendar, tsc, ocsp); System.out.println("finelizeSign: signedHash.length = " + signedHash.length); System.out.println("finelizeSign: encodedSig.length = " + encodedSig.length); if (SIGNATURE_MAX_SIZE + 2 < encodedSig.length) throw new DocumentException("Not enough space"); String encodedSigHex = UtilityHelper.byteArrayToHexString(encodedSig); byte[] placeHolder = getPlaceHolder(SIGNATURE_MAX_SIZE * 2).getBytes(); byte[] paddedSig = new byte[placeHolder.length]; // fill with harmless data for (int i = 0; i < paddedSig.length; i++) paddedSig[i] = 0x30; System.out.println("finelizeSign: placeHolder.length = " + placeHolder.length); System.out.println("finelizeSign: encodedSigHex.length = " + encodedSigHex.length()); assert (placeHolder.length == paddedSig.length); System.arraycopy(encodedSigHex.getBytes(), 0, paddedSig, 0, encodedSigHex.getBytes().length); // Replace the contents FilePatchHelper.replace(tmpFile.getPath(), placeHolder, paddedSig); // Save the PDF in the outputStream UtilityHelper.copyStream(new FileInputStream(tmpFile), outputStream); tmpFile.delete(); }
From source file:classroom.filmfestival_c.Movies21.java
@SuppressWarnings("unchecked") public static void main(String args[]) { Movies18.main(args);//w ww . ja v a 2 s .co m Movies20.main(args); try { PdfReader reader1 = new PdfReader(Movies18.RESULT); List<Map> list1 = SimpleBookmark.getBookmark(reader1); int[] offsets1 = new int[list1.size() + 1]; int count = 0; for (Map<String, String> mark : list1) { offsets1[count++] = getPageNumber(mark.get("Page")); } offsets1[count] = reader1.getNumberOfPages() + 1; PdfReader reader2 = new PdfReader(Movies20.RESULT); List<Map> list2 = SimpleBookmark.getBookmark(reader2); if (list2.size() != list1.size()) { throw new DocumentException("The documents don't have the same number of bookmark entries."); } int[] offsets2 = new int[list2.size() + 1]; count = 0; for (Map<String, String> mark : list2) { offsets2[count++] = getPageNumber(mark.get("Page")); } offsets2[count] = reader2.getNumberOfPages() + 1; Document document = new Document(); PdfCopy copy = new PdfCopy(document, new FileOutputStream(RESULT)); document.open(); for (int i = 0; i < list1.size(); i++) { for (int j = offsets1[i]; j < offsets1[i + 1]; j++) { copy.addPage(copy.getImportedPage(reader1, j)); } for (int j = offsets2[i]; j < offsets2[i + 1]; j++) { copy.addPage(copy.getImportedPage(reader2, j)); } } document.close(); } catch (IOException e) { LOGGER.warn("IOException: " + e); } catch (DocumentException e) { LOGGER.warn("IOException: " + e); } }
From source file:com.hotaviano.tableexporter.csv.CSVExporter.java
License:Open Source License
private Document createDocument(String html) throws DocumentException { StringTableParser parser = new DefaultStringTableParser(); try {/*from w w w. ja v a2 s . co m*/ return parser.parse(html); } catch (JDOMException | IOException ex) { throw new DocumentException(ex); } }
From source file:com.hotaviano.tableexporter.docx.DOCXExporter.java
License:Open Source License
@Override public byte[] export(String htmlTable) throws DocumentException { XWPFDocument doc = new XWPFDocument(); Document document = createDocument(htmlTable); int cols = getHeaderSize(document); int rows = getHeaderSize(document) + 1; XWPFTable table = doc.createTable(rows, cols); createHeaderTable(table, document);// www . j a v a2s .c o m createBodyTable(table, document); CTTblWidth width = table.getCTTbl().addNewTblPr().addNewTblW(); width.setType(STTblWidth.DXA); width.setW(BigInteger.valueOf(9072)); ByteArrayOutputStream out = new ByteArrayOutputStream(); try { doc.write(out); out.close(); } catch (IOException ex) { throw new DocumentException(ex); } return out.toByteArray(); }
From source file:com.hotaviano.tableexporter.pdf.PDFExporter.java
License:Open Source License
@Override public byte[] export(String htmlTable) throws DocumentException { com.lowagie.text.Document doc = new com.lowagie.text.Document(); Document document = null;/*from w w w . j a v a 2 s .c om*/ try { document = parser.parse(htmlTable); } catch (JDOMException | IOException ex) { throw new DocumentException(ex); } ByteArrayOutputStream out = new ByteArrayOutputStream(); PdfWriter.getInstance(doc, out); doc.open(); PdfPTable table = new PdfPTable(columnLength(document)); List<PdfPCell> cells = getHeaders(document); for (PdfPCell cell : cells) { table.addCell(cell); } List<String> data = getBodyValues(document); for (String item : data) { table.addCell(new PdfPCell(new Phrase(item))); } doc.add(table); doc.close(); return out.toByteArray(); }
From source file:com.hotaviano.tableexporter.xls.XLSExporter.java
License:Open Source License
@Override public byte[] export(String htmlTable) throws DocumentException { Document document = createDocument(htmlTable); Workbook wb = new HSSFWorkbook(); Sheet sheet = wb.createSheet();/*ww w. ja va 2s .c om*/ CellStyle headerStyle = createHeaderStyle(wb); Element theadTr = document.getRootElement().getChild("thead").getChildren().get(0); Element tbody = document.getRootElement().getChild("tbody"); createHeader(sheet.createRow(0), theadTr, headerStyle); createBody(sheet, tbody); ByteArrayOutputStream out = new ByteArrayOutputStream(); try { wb.write(out); } catch (IOException ex) { throw new DocumentException(ex); } return out.toByteArray(); }
From source file:com.jk.framework.pdf.PDFUtil.java
License:Apache License
/** * Creates the font.//ww w . j av a 2 s .c o m * * @param fontName * the font name * @param size * the size * @param fontStyle * the font style * @return the font * @throws DocumentException * the document exception @1.1 */ public static Font createFont(final String fontName, final int size, final boolean fontStyle) throws DocumentException { BaseFont baseFont; Font font = null; try { baseFont = BaseFont.createFont("c:/windows/fonts/" + fontName + ".ttf", BaseFont.IDENTITY_H, BaseFont.EMBEDDED); if (fontStyle == true) { font = new Font(baseFont, size, Font.BOLD); } else { font = new Font(baseFont, size, Font.NORMAL); } // return new Font(baseFont, size); return font; } catch (final IOException e) { throw new DocumentException(e); } }
From source file:com.khs.report.writer.ReportPDFWriter.java
License:Apache License
private void calculateRelativeSizes(PdfPTable table) throws DocumentException { float total = 0; int numCols = colWidths.length; for (int k = 0; k < numCols; ++k) { total += colWidths[k];//from w w w . j a v a 2 s . c om } if (total > document.getPageSize().getWidth()) { throw new DocumentException("Table size is greater than page width."); } float[] relativeWidths = new float[colWidths.length]; for (int k = 0; k < numCols; ++k) { relativeWidths[k] = 100 * colWidths[k] / total; } table.setWidths(relativeWidths); float widthPercentage = total / document.getPageSize().getWidth() * 100; table.setWidthPercentage(widthPercentage); }
From source file:datasoul.servicelist.ServiceListExporterPanel.java
License:Open Source License
private void exportSlides(String fileName) throws FileNotFoundException, DocumentException, Exception { // Determine width and height. Use from the template for the first item ServiceItem item = ServiceListTable.getActiveInstance().getServiceItem(0); if (item == null) return;//from ww w .j a va 2 s . c o m DisplayTemplate firstTemplate = TemplateManager.getInstance().newDisplayTemplate(item.getTemplate()); int width = firstTemplate.getWidth(); int height = firstTemplate.getHeight(); // Create output ServiceListExporterSlides sles = new ServiceListExporterSlides(fileName, width, height); try { ServiceListTable slt = ServiceListTable.getActiveInstance(); ContentRender r = sles.getRender(); ImageListServiceRenderer img = new ImageListServiceRenderer(); img.setImageWithoutTempFile(BackgroundConfig.getInstance().getBackgroundImg()); r.paintBackground(img); int slideCount = 0; /* initial empty slide */ if (cbEmptySlide.isSelected()) { sles.addEmptySlide(); slideCount++; } pbProgress.setMaximum(slt.getRowCount()); for (int i = 0; i < slt.getRowCount(); i++) { Object o = slt.getServiceItem(i); pbProgress.setValue(i); if (o instanceof Song) { Song s = (Song) o; r.setTemplate(s.getTemplate()); r.setTitle(s.getTitle()); r.setSongAuthor(s.getSongAuthor()); r.setSongSource(s.getSongSource()); r.setCopyright(s.getCopyright()); for (int k = 0; k < s.getRowCount(); k++) { slideCount++; r.setSlide(s.getSlideText(k)); if (k < s.getRowCount() - 1) { r.setNextSlide(s.getSlideText(k + 1)); } else { r.setNextSlide(""); } /* start rendering */ r.slideChange(-1); /* wait render thread to render the slide */ while (slideCount > sles.getSlideCount()) { try { Thread.sleep(200); } catch (InterruptedException ex) { // ignore } if (sles.getSlideCount() == -1) { throw new DocumentException(java.util.ResourceBundle .getBundle("datasoul/internationalize").getString("INTERNAL ERROR")); } } } /* empty slide after songs */ if (cbEmptySlide.isSelected()) { sles.addEmptySlide(); slideCount++; } } else if (o instanceof TextServiceItem) { TextServiceItem t = (TextServiceItem) o; r.setTemplate(t.getTemplate()); r.setTitle(t.getTitle()); for (int k = 0; k < t.getRowCount(); k++) { slideCount++; r.setSlide(t.getSlideText(k)); if (k < t.getRowCount() - 1) { r.setNextSlide(t.getSlideText(k + 1)); } else { r.setNextSlide(""); } /* start rendering */ r.slideChange(-1); /* wait render thread to render the slide */ while (slideCount > sles.getSlideCount()) { try { Thread.sleep(200); } catch (InterruptedException ex) { // ignore } if (sles.getSlideCount() == -1) { throw new DocumentException(java.util.ResourceBundle .getBundle("datasoul/internationalize").getString("INTERNAL ERROR")); } } } /* empty slide after text */ if (cbEmptySlide.isSelected()) { sles.addEmptySlide(); slideCount++; } } } pbProgress.setValue(slt.getRowCount()); sles.write(); } finally { sles.cleanup(); } }
From source file:forseti.reportes.JReportesDlg.java
License:Open Source License
@SuppressWarnings({ "rawtypes" }) private String VerifyFilerClause(StringBuffer select, HttpServletRequest request) throws ServletException, IOException, DocumentException { //System.out.println("------------------------------------------------------------------------------------"); int totalatrs = 0, totalfil = 0; JReportesBindFSet setF = new JReportesBindFSet(request); setF.m_Where = "ID_Report = '" + p(request.getParameter("REPID")) + "'"; setF.m_OrderBy = "ID_Column ASC"; setF.Open();//ww w.j av a 2 s . co m int initial = select.indexOf("[", 0); int fin = (initial == -1) ? -1 : select.indexOf("]", initial); while (initial != -1 && fin != -1) { String atr = select.substring(initial + 1, fin); // ej ID_Empleado totalatrs += 1; //System.out.println("ATRIBUTO: " + atr + " Ini: " + (initial+1) + " Fin: " + fin); Enumeration nombresAtr = request.getParameterNames(); while (nombresAtr.hasMoreElements()) { String nombreAtr = (String) nombresAtr.nextElement(); if (atr.equals(nombreAtr)) { totalfil += 1; //System.out.println(nombreAtr); } } initial = select.indexOf("[", fin); fin = (initial == -1) ? -1 : select.indexOf("]", initial); } if (totalatrs != totalfil) throw new DocumentException( "Intento de inyeccin SQL detectada. El total de atributos no coincide con el total de elementos del filtro, se ha registrado tu usuario y host desde el cual estas queriendo corromper el sistema"); //System.out.println("-----------------------" + totalatrs + " : " + totalfil + "------------------------"); initial = select.indexOf("[", 0); fin = (initial == -1) ? -1 : select.indexOf("]", initial); while (initial != -1 && fin != -1) { String key = select.substring(initial + 1, fin); // ej ID_Empleado // Carga los valores por default Enumeration nombresAtr = request.getParameterNames(); while (nombresAtr.hasMoreElements()) { String nombreAtr = (String) nombresAtr.nextElement(); String valorAtr = (String) request.getParameter(nombreAtr); if (nombreAtr.equals(key)) { if (valorAtr.matches("\\d{1,2}/(ene|feb|mar|abr|may|jun|jul|ago|sep|oct|nov|dic)/\\d{4}")) // Es fecha.... valorAtr = JUtil.obtFechaSQL(valorAtr); //System.out.println(select + "\n"); //System.out.println("KV:" + nombreAtr + "|" + valorAtr + "\n"); for (int i = 0; i < setF.getNumRows(); i++) { if (setF.getAbsRow(i).getPriDataName().equals(nombreAtr)) { //System.out.println("FILTRO1:" + nombreAtr + "|" + setF.getAbsRow(i).getPriDefault() + "\n"); if (!setF.getAbsRow(i).getFromCatalog()) // No es de catalogo { if (setF.getAbsRow(i).getPriDefault().length() > 0 && setF.getAbsRow(i).getPriDefault().substring(0, 1).equals("[")) //Es lista de seleccion { //En filtros de seleccin, verificar que efectivamente exista la seleccin. Si no existe, significa intento de inyeccin SQL a travs de la modificacin directa del codigo html del filtro if (!JUtil.verificarElementoDeFiltro(setF.getAbsRow(i).getPriDefault(), valorAtr)) throw new DocumentException( "Intento de inyeccin SQL detectada, se ha registrado tu usuario y host desde el cual estas queriendo corromper el sistema"); select.replace(initial, fin + 1, valorAtr); } else select.replace(initial, fin + 1, q(valorAtr)); //Como es captura directa, utiliza q() para agregar escapes de ' al valor introducido por el usuario para evitar errores de sql o intentos de ataques de inyeccin sql } else // Si es de catalogo { select.replace(initial, fin + 1, valorAtr); } } if (setF.getAbsRow(i).getSecDataName().equals(nombreAtr)) { //System.out.println("FILTRO2:" + nombreAtr + "|" + setF.getAbsRow(i).getSecDefault() + "\n"); if (!setF.getAbsRow(i).getFromCatalog()) // No es de catalogo { if (setF.getAbsRow(i).getSecDefault().length() > 0 && setF.getAbsRow(i).getSecDefault().substring(0, 1).equals("[")) //Es lista de seleccion { //En filtros de seleccin, verificar que efectivamente exista la seleccin. Si no existe, significa intento de inyeccin SQL a travs de la modificacin directa del codigo html del filtro if (!JUtil.verificarElementoDeFiltro(setF.getAbsRow(i).getSecDefault(), valorAtr)) throw new DocumentException( "Intento de inyeccin SQL detectada, se ha registrado tu usuario y host desde el cual estas queriendo corromper el sistema"); select.replace(initial, fin + 1, valorAtr); } else select.replace(initial, fin + 1, q(valorAtr)); //Como es captura directa, utiliza q() para agregar escapes de ' al valor introducido por el usuario para evitar errores de sql o intentos de ataques de inyeccin sql } else // Si es de catalogo { select.replace(initial, fin + 1, valorAtr); } } } } } initial = select.indexOf("[", 0); fin = (initial == -1) ? -1 : select.indexOf("]", initial); } return select.toString(); }