List of usage examples for com.lowagie.text Font BOLD
int BOLD
To view the source code for com.lowagie.text Font BOLD.
Click Source Link
From source file:mitm.common.pdf.MessagePDFBuilder.java
License:Open Source License
private FontSelector createHeaderFontSelector() { return createFontSelector(FontFactory.HELVETICA, headerFontSize, Font.BOLD, Color.BLACK); }
From source file:mitm.common.pdf.MessagePDFBuilder.java
License:Open Source License
private void addReplyLink(Document document, String replyURL) throws DocumentException { PdfPTable replyTable = new PdfPTable(1); replyTable.setWidthPercentage(100f); replyTable.setSplitLate(false);/* w w w.ja v a 2 s . c o m*/ replyTable.setSpacingBefore(5f); replyTable.setHorizontalAlignment(Element.ALIGN_LEFT); Font linkFont = new Font(); linkFont.setStyle(Font.BOLD); linkFont.setColor(0, 0, 255); linkFont.setSize(headerFontSize); Chunk anchor = new Chunk("Reply", linkFont); anchor.setAnchor(replyURL); Phrase phrase = new Phrase(); phrase.add(anchor); PdfPCell cell = new PdfPCell(phrase); cell.setBorder(Rectangle.NO_BORDER); replyTable.addCell(cell); document.add(replyTable); }
From source file:mx.avanti.siract.ui.RACTBeanUI.java
public void postProcessPDF(Object document) throws IOException, DocumentException { final Document pdf = (Document) document; TreeNode[] selectedNodesPDF = selectedNodes; if (selectedNodes != null) { for (TreeNode nodo : selectedNodes) { System.out.println("*********************" + ((NodoMultiClass) nodo.getData()).getNombre()); }//from w w w . java 2s . c om } pdf.setPageSize(PageSize.A4.rotate()); pdf.open(); String nombrep = profesor.getPronombre() + " " + profesor.getProapellidoPaterno() + " " + profesor.getProapellidoMaterno(); String numEmpPro = Integer.toString(profesor.getPronumeroEmpleado()); String porAv = Float.toString(porcentajeAvance); SimpleDateFormat formato = new SimpleDateFormat("dd/MM/yyyy"); //Obtener el nombre del programa educativo seleccionado String nombreProgEdu = ""; int programaEducativoSeleccionado2 = Integer.parseInt(programaEducativoSeleccionado); for (int x = 0; x < programasEducativos.size(); x++) { if (programasEducativos.get(x).getPedid() == programaEducativoSeleccionado2) { nombreProgEdu = programasEducativos.get(x).getPednombre(); } } //---------------------------------------------------------------------------------- //Obtener el nombre de la unidad de aprendizaje y clave seleccionada String nombreUniApr = ""; String nombreclave = ""; int uniAprselec2 = Integer.parseInt(unidadAprendizajeSeleccionada); for (int x = 0; x < unidadesaprendisaje.size(); x++) { if (unidadesaprendisaje.get(x).getUapclave() == uniAprselec2) { nombreUniApr = unidadesaprendisaje.get(x).getUapnombre(); nombreclave = Integer.toString(unidadesaprendisaje.get(x).getUapclave()); } } //---------------------------------------------------------------------- // rutaImagen es la ruta para acceder a la imagen guardada en el folder resources del proyecto try { // Image imagenLogo = Image.getInstance("C:\\Users\\Y\\Desktop\\RACT 22-01-2015\\RACT\\build\\web\\resources\\imagenes\\logo.jpg"); Image imagenLogo = Image.getInstance(RACTBeanUI.class.getResource("imagenes/logo.jpg")); //Posicion de imagen (Horizontal, Vertiacal) imagenLogo.setAbsolutePosition(120f, 460f); //Tamao de imagen (Ancho, largo) imagenLogo.scaleAbsolute(90, 120); //imagenLogo.scaleAbsoluteWidth(100f); //imagenLogo.scaleAbsoluteHeight(150f); //imagenLogo.scaleToFit(100f, 120f); Esta es la buena //Image imagenLogo = Image.getInstance("http://ed.uabc.mx/sed/images/logo.jpg"); //imagenLogo.scaleAbsolute(70f, 90f); pdf.add(imagenLogo); } catch (Exception exception) { System.out.println("****NO SE ENCONTRO LA RUTA DE IMAGEN ESPECIFICADA"); } //Tabla con UABC y Nombre del profesor(a) PdfPTable pdfTabletitulo = new PdfPTable(2); pdfTabletitulo.getDefaultCell().setBorder(PdfPCell.NO_BORDER); PdfPTable pdfTabletitulo2 = new PdfPTable(2); pdfTabletitulo2.getDefaultCell().setBorder(PdfPCell.NO_BORDER); Paragraph UABC = new Paragraph("Universidad Autnoma de Baja California", FontFactory.getFont(FontFactory.TIMES, 22, Font.BOLD, new Color(0, 113, 65))); UABC.setAlignment(Element.ALIGN_CENTER); Paragraph esp = new Paragraph(" "); pdf.add(UABC); pdf.add(esp); pdf.add(esp); pdf.add(esp); pdf.add(esp); pdfTabletitulo.addCell(new Paragraph("")); pdfTabletitulo.addCell(new Paragraph("")); pdfTabletitulo.addCell(new Paragraph("")); pdfTabletitulo.addCell(new Paragraph("")); pdfTabletitulo.addCell(new Paragraph("")); pdfTabletitulo.addCell(new Paragraph("")); pdfTabletitulo.addCell(new Paragraph("")); pdfTabletitulo.addCell(new Paragraph("")); pdfTabletitulo.addCell(new Paragraph("")); pdfTabletitulo.addCell(new Paragraph("")); pdfTabletitulo.addCell(new Paragraph("Profesor(a): ", FontFactory.getFont(FontFactory.TIMES, 14, Font.BOLD, new Color(0, 0, 0)))); pdfTabletitulo.addCell(new Paragraph(nombrep)); pdfTabletitulo2.addCell(new Paragraph("Num. de Empleado: ", FontFactory.getFont(FontFactory.TIMES, 14, Font.BOLD, new Color(0, 0, 0)))); pdfTabletitulo2.addCell(new Paragraph(numEmpPro)); pdfTabletitulo.setHorizontalAlignment(25); //pdfTabletitulo.setHorizontalAlignment(Element.ALIGN_CENTER); //document.add(table); float[] columnWidthsss = new float[] { 4f, 28 }; pdfTabletitulo.setWidths(columnWidthsss); pdf.add(pdfTabletitulo); float[] columnWidthss = new float[] { 10f, 38 }; pdfTabletitulo2.setWidths(columnWidthss); pdf.add(pdfTabletitulo2); pdf.add(new Phrase(" ")); //---------------------------------------------------------------------- //Tabla Cabezera PdfPTable pdftablecabezera = new PdfPTable(4); pdftablecabezera.getDefaultCell().setBorder(PdfPCell.NO_BORDER); PdfPTable pdftablecabezera2 = new PdfPTable(5); pdftablecabezera2.getDefaultCell().setBorder(PdfPCell.NO_BORDER); pdftablecabezera.addCell(new Paragraph("Programa educativo: ", FontFactory.getFont(FontFactory.TIMES, 14, Font.BOLD, new Color(0, 0, 0)))); pdftablecabezera.addCell(new Paragraph("Fecha: ", FontFactory.getFont(FontFactory.TIMES, 14, Font.BOLD, new Color(0, 0, 0)))); pdftablecabezera.addCell(new Paragraph("Ciclo Escolar: ", FontFactory.getFont(FontFactory.TIMES, 14, Font.BOLD, new Color(0, 0, 0)))); pdftablecabezera.addCell(new Paragraph("Avance Global: ", FontFactory.getFont(FontFactory.TIMES, 14, Font.BOLD, new Color(0, 0, 0)))); pdftablecabezera.addCell(new Paragraph(nombreProgEdu)); pdftablecabezera.addCell(new Paragraph(formato.format(new Date()))); pdftablecabezera.addCell(new Paragraph(" " + cicloEscolar)); pdftablecabezera.addCell(new Paragraph(" " + porAv)); pdftablecabezera.addCell(new Paragraph(" ")); pdftablecabezera.addCell(new Paragraph(" ")); pdftablecabezera.addCell(new Paragraph(" ")); pdftablecabezera.addCell(new Paragraph(" ")); pdftablecabezera2.addCell(new Paragraph("Unidad de Aprendizaje: ", FontFactory.getFont(FontFactory.TIMES, 14, Font.BOLD, new Color(0, 0, 0)))); pdftablecabezera2.addCell(new Paragraph("Clave: ", FontFactory.getFont(FontFactory.TIMES, 14, Font.BOLD, new Color(0, 0, 0)))); pdftablecabezera2.addCell(new Paragraph("Grupo: ", FontFactory.getFont(FontFactory.TIMES, 14, Font.BOLD, new Color(0, 0, 0)))); pdftablecabezera2.addCell(new Paragraph("Subgrupo: ", FontFactory.getFont(FontFactory.TIMES, 14, Font.BOLD, new Color(0, 0, 0)))); pdftablecabezera2.addCell(new Paragraph("Tipo Grupo: ", FontFactory.getFont(FontFactory.TIMES, 14, Font.BOLD, new Color(0, 0, 0)))); pdftablecabezera2.addCell(new Paragraph(nombreUnidadSeleccionado)); pdftablecabezera2.addCell(new Paragraph(claveUnidadAprendizajeSeleccionada)); pdftablecabezera2.addCell(new Paragraph(" " + grupo)); pdftablecabezera2.addCell(new Paragraph(" " + subGrupo)); String tipoGrupo = ""; switch (this.tipoUnidadAprendizaje) { case "C": tipoGrupo = "Clase"; break; case "L": tipoGrupo = "Laboratorio"; break; case "T": tipoGrupo = "Taller"; break; case "P": tipoGrupo = "Practica"; break; case "CL": tipoGrupo = "Practicas Clinica"; break; } pdftablecabezera2.addCell(new Paragraph(" " + tipoGrupo)); pdftablecabezera2.addCell(new Paragraph(" ")); pdftablecabezera.setHorizontalAlignment(25); float[] columnWidths = new float[] { 38f, 10f, 14f, 18f }; pdftablecabezera.setWidths(columnWidths); pdf.add(pdftablecabezera); pdftablecabezera2.setHorizontalAlignment(25); float[] columnWidthss2 = new float[] { 38f, 10f, 8f, 11f, 14f }; pdftablecabezera2.setWidths(columnWidthss2); pdf.add(pdftablecabezera2); pdf.add(new Phrase(" ")); //---------------------------------------------------------------------- Paragraph numrep = new Paragraph("Reporte # " + numeroReporte, FontFactory.getFont(FontFactory.TIMES, 16, Font.BOLD, new Color(0, 0, 0))); numrep.setAlignment(Element.ALIGN_CENTER); pdf.add(numrep); pdf.add(new Paragraph(" ")); //Tabla con Datos PdfPTable pdfTable = new PdfPTable(3); pdfTable.addCell(new Phrase("Nombre", FontFactory.getFont(FontFactory.TIMES_BOLD, 12, Font.BOLD, new Color(0, 0, 0)))); pdfTable.addCell(new Phrase("Porcentaje", FontFactory.getFont(FontFactory.TIMES_BOLD, 12, Font.BOLD, new Color(0, 0, 0)))); pdfTable.addCell(new Phrase("Observaciones", FontFactory.getFont(FontFactory.TIMES_BOLD, 12, Font.BOLD, new Color(0, 0, 0)))); //Evitar Null pointer exception por no tener nodoes en selectedNodes //Se utiliza un auxiliar de selectedNodes por que hay posibilidad de que selectedNodes se modifique durante el proceso de generacion del PDF if (selectedNodesPDF != null && selectedNodesPDF.length > 0) { //Regresar a lo basicoString int nns = selectedNodesPDF.length; String[] ns = new String[nns]; for (int x = 0; x < selectedNodesPDF.length; x++) { ns[x] = ((NodoMultiClass) selectedNodesPDF[x].getData()).getNumero() + "--" + ((NodoMultiClass) selectedNodes[x].getData()).getNombre() + "--" + ((NodoMultiClass) selectedNodes[x].getData()).getPorcentajeAvance() + "--" + ((NodoMultiClass) selectedNodes[x].getData()).getObservaciones() + " -- "; } String[] filas = new String[4]; String[] nstr = new String[3]; String[] filas2 = new String[4]; String[] nstr2 = new String[3]; for (int x = 1; x < ns.length; x++) { for (int y = 0; y < ns.length - x; y++) { //Obtengo los valores para hacer las comparaciones int[] n = new int[3]; int[] n2 = new int[3]; filas = ns[y].split("--"); nstr = filas[0].split("\\."); for (int z = 0; z < nstr.length; z++) { if (nstr == null) { n[z] = 0; } else { n[z] = Integer.parseInt(nstr[z]); } } filas2 = ns[y + 1].split("--"); nstr2 = filas2[0].split("\\."); for (int z = 0; z < nstr2.length; z++) { if (nstr2 == null) { n2[z] = 0; } else { n2[z] = Integer.parseInt(nstr2[z]); } } //-------------------------------------------------comparacion if (n[0] == n2[0]) { if (n[1] == n2[1]) { if (n[2] > n2[2]) { String aux = ns[y]; ns[y] = ns[y + 1]; ns[y + 1] = aux; } } else { if (n[1] > n2[1]) { String aux = ns[y]; ns[y] = ns[y + 1]; ns[y + 1] = aux; } } } else { if (n[0] > n2[0]) { String aux = ns[y]; ns[y] = ns[y + 1]; ns[y + 1] = aux; } } //------------------------------------------------------------- } } String[] auxNum = new String[4]; for (int x = 0; x < ns.length; x++) { filas = ns[x].split("--"); num = filas[0].split("\\."); //Auxiliar para agregar padre de tema/subtema int auxMargen = 1; //Agregar unidad a la que pertenece el tema/subtema String[] auxNum2 = auxNum; int tamanoArbol = root.getChildCount(); //AGREGAR A TEMA if (Integer.parseInt(num[0]) > tamanoArbol) { auxMargen = Integer.parseInt(num[0]) - tamanoArbol; } if (num.length >= 2 && auxNum2[0] != null && !auxNum2[0].equals(num[0])) { if (!num[1].equals("0")) { while (!num[0].equals(auxNum2[0]) && auxMargen > 0) { System.out.println("XXXXXXIteracion para encontrar padre XXXXXXX 0" + auxMargen); auxNum2 = (((NodoMultiClass) root.getChildren() .get(Integer.parseInt(num[0]) - auxMargen).getData()).getNumero()).split("\\."); //if(auxNum[0]!=null&&Integer.parseInt(num[0])>Integer.parseInt(auxNum[0])){ if (num[0].equals(auxNum2[0])) { } else { auxMargen--; } } System.out.println("***Unidad Padre" + ((NodoMultiClass) root.getChildren() .get(Integer.parseInt(num[0]) - auxMargen).getData()).getNombre()); NodoMultiClass auxNodo = ((NodoMultiClass) root.getChildren() .get(Integer.parseInt(num[0]) - auxMargen).getData()); //UTIL PARA PONER TEXTO TACHADO // Chunk strikethrough = new Chunk("Strikethrough."); // strikethrough.setUnderline(0.1f, 3f); //0.1 thick, 2 y-location // document.add(strikethrough); pdfTable.addCell(new Phrase(auxNodo.getNumero() + ".- " + auxNodo.getNombre(), FontFactory .getFont(FontFactory.TIMES_BOLD, 12, Font.BOLD, new Color(154, 151, 151)))); pdfTable.addCell(new Phrase(auxNodo.getPorcentajeAvance(), FontFactory .getFont(FontFactory.TIMES_BOLD, 12, Font.BOLD, new Color(154, 151, 151)))); pdfTable.addCell(auxNodo.getObservaciones()); } } else { if (auxNum2[0] == null && num.length >= 2) { auxNum2 = (((NodoMultiClass) root.getChildren().get(Integer.parseInt(num[0]) - auxMargen) .getData()).getNumero()).split("\\."); while (!num[0].equals(auxNum2[0]) && auxMargen > 0) { System.out.println("XXXXXXIteracion para encontrar padre XXXXXXX 0" + auxMargen); auxNum2 = (((NodoMultiClass) root.getChildren() .get(Integer.parseInt(num[0]) - auxMargen).getData()).getNumero()).split("\\."); //if(auxNum[0]!=null&&Integer.parseInt(num[0])>Integer.parseInt(auxNum[0])){ if (num[0].equals(auxNum2[0])) { } else { auxMargen--; } } System.out.println("***Unidad Padre" + ((NodoMultiClass) root.getChildren() .get(Integer.parseInt(num[0]) - auxMargen).getData()).getNombre()); NodoMultiClass auxNodo = ((NodoMultiClass) root.getChildren() .get(Integer.parseInt(num[0]) - auxMargen).getData()); //UTIL PARA PONER TEXTO TACHADO // Chunk strikethrough = new Chunk("Strikethrough."); // strikethrough.setUnderline(0.1f, 3f); //0.1 thick, 2 y-location // document.add(strikethrough); pdfTable.addCell(new Phrase(auxNodo.getNumero() + ".- " + auxNodo.getNombre(), FontFactory .getFont(FontFactory.TIMES_BOLD, 12, Font.BOLD, new Color(154, 151, 151)))); pdfTable.addCell(new Phrase(auxNodo.getPorcentajeAvance(), FontFactory .getFont(FontFactory.TIMES_BOLD, 12, Font.BOLD, new Color(154, 151, 151)))); pdfTable.addCell(auxNodo.getObservaciones()); } } //AGREGAR A SUBTEMA String[] auxNumeroUnidad = new String[4]; int auxMargen2 = 1; if (num.length == 3 && auxNum[1] != null && !auxNum[1].equals(num[1])) { if (!num[2].equals("0")) { while (!num[0].equals(auxNum[0]) && auxMargen >= 0) { NodoMultiClass auxNodoUnidad = ((NodoMultiClass) root.getChildren() .get(Integer.parseInt(num[0]) - auxMargen).getData()); auxNumeroUnidad = auxNodoUnidad.getNumero().split("\\."); tamanoArbol = root.getChildren().get(Integer.parseInt(num[0])).getChildCount(); if (Integer.parseInt(num[1]) > tamanoArbol) { auxMargen2 = Integer.parseInt(num[1]) - tamanoArbol; } while (auxNumeroUnidad[0].equals(num[0]) && !num[1].equals(auxNum[1]) && auxMargen > 0) { System.out.println("XXXXXXIteracion para encontrar padre XXXXXXX 0" + auxMargen); auxNum = (((NodoMultiClass) root.getChildren() .get(Integer.parseInt(num[0]) - auxMargen).getChildren() .get(Integer.parseInt(num[1]) - auxMargen2).getData()).getNumero()) .split("\\."); //if(auxNum[0]!=null&&Integer.parseInt(num[0])>Integer.parseInt(auxNum[0])){ if (num[1].equals(auxNum[1])) { } else { auxMargen2--; } } // auxNum = (((NodoMultiClass) root.getChildren().get(Integer.parseInt(num[1]) - auxMargen).getData()).getNumero()).split("\\."); if (num[0].equals(auxNum[0])) { } else { auxMargen--; } } System.out.println("*****Unidad Padre(SUBTEMA)" + ((NodoMultiClass) root.getChildren().get(Integer.parseInt(num[0]) - auxMargen) .getChildren().get(Integer.parseInt(num[1]) - auxMargen2).getData()) .getNombre()); NodoMultiClass auxNodo = ((NodoMultiClass) root.getChildren() .get(Integer.parseInt(num[0]) - auxMargen).getChildren() .get(Integer.parseInt(num[1]) - auxMargen2).getData()); //UTIL PARA PONER TEXTO TACHADO // Chunk strikethrough = new Chunk("Strikethrough."); // strikethrough.setUnderline(0.1f, 3f); //0.1 thick, 2 y-location // document.add(strikethrough); pdfTable.addCell( new Phrase(" " + auxNodo.getNumero() + ".- " + auxNodo.getNombre(), FontFactory .getFont(FontFactory.TIMES_BOLD, 12, Font.BOLD, new Color(154, 151, 151)))); pdfTable.addCell(new Phrase(auxNodo.getPorcentajeAvance(), FontFactory .getFont(FontFactory.TIMES_BOLD, 12, Font.BOLD, new Color(154, 151, 151)))); pdfTable.addCell(auxNodo.getObservaciones()); } } else { if (auxNum[0] == null && num.length == 3) { auxNum = (((NodoMultiClass) root.getChildren().get(Integer.parseInt(num[0]) - auxMargen) .getData()).getNumero()).split("\\."); while (!num[0].equals(auxNum[0]) && auxMargen > 0) { NodoMultiClass auxNodoUnidad = ((NodoMultiClass) root.getChildren() .get(Integer.parseInt(num[0]) - auxMargen).getData()); auxNumeroUnidad = auxNodoUnidad.getNumero().split("\\."); tamanoArbol = root.getChildren().get(Integer.parseInt(num[0])).getChildCount(); if (Integer.parseInt(num[1]) > tamanoArbol) { auxMargen2 = Integer.parseInt(num[1]) - tamanoArbol; } while (auxNumeroUnidad[0].equals(num[0]) && !num[1].equals(auxNum[1]) && auxMargen > 0) { System.out.println("Iteracion para encontrar padre XXXXXXX 0" + auxMargen); auxNum = (((NodoMultiClass) root.getChildren() .get(Integer.parseInt(num[0]) - auxMargen).getChildren() .get(Integer.parseInt(num[1]) - auxMargen2).getData()).getNumero()) .split("\\."); //if(auxNum[0]!=null&&Integer.parseInt(num[0])>Integer.parseInt(auxNum[0])){ if (num[1].equals(auxNum[1])) { } else { auxMargen2--; } } // auxNum = (((NodoMultiClass) root.getChildren().get(Integer.parseInt(num[1]) - auxMargen).getData()).getNumero()).split("\\."); if (num[0].equals(auxNum[0])) { } else { auxMargen--; } } System.out.println("***Unidad Padre(SUBTEMA)" + ((NodoMultiClass) root.getChildren().get(Integer.parseInt(num[0]) - auxMargen) .getChildren().get(Integer.parseInt(num[1]) - auxMargen2).getData()) .getNombre()); NodoMultiClass auxNodo = ((NodoMultiClass) root.getChildren() .get(Integer.parseInt(num[0]) - auxMargen).getChildren() .get(Integer.parseInt(num[1]) - auxMargen2).getData()); //UTIL PARA PONER TEXTO TACHADO // Chunk strikethrough = new Chunk("Strikethrough."); // strikethrough.setUnderline(0.1f, 3f); //0.1 thick, 2 y-location // document.add(strikethrough); pdfTable.addCell( new Phrase(" " + auxNodo.getNumero() + ".- " + auxNodo.getNombre(), FontFactory .getFont(FontFactory.TIMES_BOLD, 12, Font.BOLD, new Color(154, 151, 151)))); pdfTable.addCell(new Phrase(auxNodo.getPorcentajeAvance(), FontFactory .getFont(FontFactory.TIMES_BOLD, 12, Font.BOLD, new Color(154, 151, 151)))); pdfTable.addCell(auxNodo.getObservaciones()); } } auxNum = num; //FIN AGREGAR PADRE DE TEMA/SUBTEMA boolean banpor = true; if (num.length == 1) { pdfTable.addCell(new Phrase(filas[0] + ".- " + filas[1], FontFactory.getFont(FontFactory.TIMES_BOLD, 12, Font.BOLD, new Color(0, 0, 0)))); pdfTable.addCell(new Phrase(String.valueOf(dosDecimales(Float.parseFloat(filas[2]))), FontFactory.getFont(FontFactory.TIMES_BOLD, 12, Font.BOLD, new Color(0, 0, 0)))); banpor = false; } if (num.length == 2) { pdfTable.addCell(new Phrase(" " + filas[0] + ".- " + filas[1])); } if (num.length == 3) { pdfTable.addCell(new Phrase(" " + filas[0] + ".- " + filas[1], FontFactory.getFont(FontFactory.TIMES_ITALIC, 12))); pdfTable.addCell(new Phrase(String.valueOf(dosDecimales(Float.parseFloat(filas[2]))), FontFactory.getFont(FontFactory.TIMES_ITALIC, 12))); banpor = false; } if (banpor) { pdfTable.addCell(String.valueOf(dosDecimales(Float.parseFloat(filas[2])))); pdfTable.addCell(filas[3]); } else { pdfTable.addCell(filas[3]); } } } else { pdfTable.addCell("No hay nada seleccionado"); pdfTable.addCell(""); pdfTable.addCell(""); } pdfTable.setHorizontalAlignment(15); float[] columnWidths2 = new float[] { 32f, 8f, 14f }; pdfTable.setWidths(columnWidths2); pdf.add(pdfTable); //---------------------------------------------------------------------- }
From source file:mx.randalf.digital.ocr.hocrtopdf.HocrToPdf.java
License:Open Source License
public void hocrToPdf(File fImg, File fHtml, File fPdf) throws IOException, DocumentException, Exception { URL inputHOCRFile = null;//from w w w .j a v a 2s . com FileOutputStream outputPDFStream = null; // The resolution of a PDF file (using iText) is 72pt per inch float pointsPerInch = 72.0f; Source source = null; StartTag pageTag = null; Pattern imagePattern = null; Matcher imageMatcher = null; // Load the image Image pageImage = null; float dotsPerPointX; float dotsPerPointY; float pageImagePixelHeight; Document pdfDocument = null; PdfWriter pdfWriter = null; Font defaultFont = null; PdfContentByte cb = null; Pattern bboxPattern = null; Pattern bboxCoordinatePattern = null; StartTag ocrLineTag = null; try { try { inputHOCRFile = new URL("file://" + fHtml.getAbsolutePath()); } catch (MalformedURLException e) { throw e; } try { outputPDFStream = new FileOutputStream(fPdf); } catch (FileNotFoundException e) { throw e; } // Using the jericho library to parse the HTML file source = new Source(inputHOCRFile); // Find the tag of class ocr_page in order to load the scanned image pageTag = source.findNextStartTag(0, "class", "ocr_page", false); imagePattern = Pattern.compile("image\\s+([^;]+)"); imageMatcher = imagePattern.matcher(pageTag.getElement().getAttributeValue("title")); if (!imageMatcher.find()) { throw new Exception("Could not find a tag of class \"ocr_page\", aborting."); } try { pageImage = Image.getInstance(new URL("file://" + fImg.getAbsolutePath())); } catch (MalformedURLException e) { throw e; } dotsPerPointX = pageImage.getDpiX() / pointsPerInch; dotsPerPointY = pageImage.getDpiY() / pointsPerInch; pageImagePixelHeight = pageImage.getHeight(); pdfDocument = new Document( new Rectangle(pageImage.getWidth() / dotsPerPointX, pageImage.getHeight() / dotsPerPointY)); pdfWriter = PdfWriter.getInstance(pdfDocument, outputPDFStream); pdfDocument.open(); // first define a standard font for our text defaultFont = FontFactory.getFont(FontFactory.HELVETICA, 8, Font.BOLD, CMYKColor.BLACK); // Put the text behind the picture (reverse for debugging) cb = pdfWriter.getDirectContentUnder(); //PdfContentByte cb = pdfWriter.getDirectContent(); pageImage.scaleToFit(pageImage.getWidth() / dotsPerPointX, pageImage.getHeight() / dotsPerPointY); pageImage.setAbsolutePosition(0, 0); // Put the image in front of the text (reverse for debugging) pdfWriter.getDirectContent().addImage(pageImage); //pdfWriter.getDirectContentUnder().addImage(pageImage); // In order to place text behind the recognised text snippets we are interested in the bbox property bboxPattern = Pattern.compile("bbox(\\s+\\d+){4}"); // This pattern separates the coordinates of the bbox property bboxCoordinatePattern = Pattern.compile("(\\d+)\\s+(\\d+)\\s+(\\d+)\\s+(\\d+)"); // Only tags of the ocr_line class are interesting ocrLineTag = source.findNextStartTag(0, "class", "ocr_line", false); while (ocrLineTag != null) { au.id.jericho.lib.html.Element lineElement = ocrLineTag.getElement(); Matcher bboxMatcher = bboxPattern.matcher(lineElement.getAttributeValue("title")); if (bboxMatcher.find()) { // We found a tag of the ocr_line class containing a bbox property Matcher bboxCoordinateMatcher = bboxCoordinatePattern.matcher(bboxMatcher.group()); bboxCoordinateMatcher.find(); int[] coordinates = { Integer.parseInt((bboxCoordinateMatcher.group(1))), Integer.parseInt((bboxCoordinateMatcher.group(2))), Integer.parseInt((bboxCoordinateMatcher.group(3))), Integer.parseInt((bboxCoordinateMatcher.group(4))) }; String line = lineElement.getContent().extractText(); // float bboxWidthPt = (coordinates[2] - coordinates[0]) / dotsPerPointX; float bboxHeightPt = (coordinates[3] - coordinates[1]) / dotsPerPointY; // Put the text into the PDF cb.beginText(); // Comment the next line to debug the PDF output (visible Text) cb.setTextRenderingMode(PdfContentByte.TEXT_RENDER_MODE_INVISIBLE); // TODO: Scale the text width to fit the OCR bbox cb.setFontAndSize(defaultFont.getBaseFont(), Math.round(bboxHeightPt)); cb.moveText((float) (coordinates[0] / dotsPerPointX), (float) ((pageImagePixelHeight - coordinates[3]) / dotsPerPointY)); cb.showText(line); cb.endText(); } ocrLineTag = source.findNextStartTag(ocrLineTag.getEnd(), "class", "ocr_line", false); } } catch (NumberFormatException e) { throw e; } catch (MalformedURLException e) { throw e; } catch (FileNotFoundException e) { throw e; } catch (BadElementException e) { throw e; } catch (IOException e) { throw e; } catch (DocumentException e) { throw e; } catch (Exception e) { throw e; } finally { if (pdfDocument != null) { pdfDocument.close(); } if (outputPDFStream != null) { outputPDFStream.close(); } } }
From source file:net.bull.javamelody.CounterErrorPanel.java
License:Apache License
private MTableScrollPane<CounterError> createScrollPane() { final MTableScrollPane<CounterError> tableScrollPane = new MTableScrollPane<>(); final MTable<CounterError> myTable = tableScrollPane.getTable(); final List<CounterError> errors = counter.getErrors(); final boolean displayUser = HtmlCounterErrorReport.shouldDisplayUser(errors); final boolean displayHttpRequest = HtmlCounterErrorReport.shouldDisplayHttpRequest(errors); if (errors.size() >= Counter.MAX_ERRORS_COUNT) { final JLabel warnLabel = new JLabel( ' ' + getFormattedString("Dernieres_erreurs_seulement", Counter.MAX_ERRORS_COUNT)); warnLabel.setFont(warnLabel.getFont().deriveFont(Font.BOLD)); warnLabel.setForeground(Color.RED); add(warnLabel, BorderLayout.NORTH); }// w ww . jav a2s . c o m myTable.addColumn("date", getString("Date")); if (displayHttpRequest) { myTable.addColumn("httpRequest", getString("Requete")); } if (displayUser) { myTable.addColumn("remoteUser", getString("Utilisateur")); } myTable.addColumn("message", getString("Erreur")); final MDateTableCellRenderer dateTableCellRenderer = new MDateTableCellRenderer(); dateTableCellRenderer.setDateFormat( DateFormat.getDateTimeInstance(DateFormat.SHORT, DateFormat.MEDIUM, I18N.getCurrentLocale())); myTable.setColumnCellRenderer("date", dateTableCellRenderer); myTable.setColumnCellRenderer("message", new MessageWithStackTraceTableCellRenderer()); // invokeLater ncessaire pour que les dimensions et l'affichage soient corrects // avec le MessageWithStackTraceTableCellRenderer extends MMultiLineTableCellRenderer // (tester par exemple l'erreur de compilation dans la page jsp avec tomcat) SwingUtilities.invokeLater(new Runnable() { @Override public void run() { Utilities.adjustTableHeight(myTable); } }); myTable.addMouseListener(new MouseAdapter() { @Override public void mouseClicked(MouseEvent e) { if (e.getClickCount() == 2) { final CounterError counterError = getTable().getSelectedObject(); if (counterError.getStackTrace() != null) { Utilities.showTextInPopup(CounterErrorPanel.this, counterError.getMessage(), counterError.getStackTrace()); } } } }); return tableScrollPane; }
From source file:net.bull.javamelody.CounterRequestUsagesPanel.java
License:Apache License
CounterRequestUsagesPanel(RemoteCollector remoteCollector, CounterRequest request) { super(remoteCollector); final String graphLabel = truncate(getString("Utilisations_de") + ' ' + request.getName(), 50); setName(graphLabel);/*www . ja v a 2 s. c o m*/ final JLabel label = new JLabel(' ' + getString("Utilisations_de") + ' ' + request.getName()); label.setBorder(BorderFactory.createEmptyBorder(10, 0, 5, 0)); label.setFont(label.getFont().deriveFont(Font.BOLD)); add(label, BorderLayout.NORTH); final MTableScrollPane<CounterRequest> scrollPane = createScrollPane(); final List<CounterRequest> requests = new ArrayList<>(); for (final Counter counter : getCounters()) { for (final CounterRequest counterRequest : counter.getOrderedRequests()) { if (counterRequest.containsChildRequest(request.getId())) { requests.add(counterRequest); } } } getTable().setList(requests); add(scrollPane, BorderLayout.CENTER); add(createButtonsPanel(true), BorderLayout.SOUTH); }
From source file:net.bull.javamelody.JavaInformationsPanel.java
License:Apache License
void showSummary() { addLabel(getString("Host")); final JLabel hostLabel = new JLabel(javaInformations.getHost()); hostLabel.setFont(hostLabel.getFont().deriveFont(Font.BOLD)); addJLabel(hostLabel);/*from ww w . ja va2 s . com*/ final MemoryInformations memoryInformations = javaInformations.getMemoryInformations(); final long usedMemory = memoryInformations.getUsedMemory(); final long maxMemory = memoryInformations.getMaxMemory(); addLabel(getString("memoire_utilisee")); // writeGraph("usedMemory", integerFormat.format(usedMemory / 1024 / 1024)); final String divide = " / "; addJLabel(toBarWithAlert( integerFormat.format(usedMemory / 1024 / 1024) + ' ' + getString("Mo") + divide + integerFormat.format(maxMemory / 1024 / 1024) + ' ' + getString("Mo"), memoryInformations.getUsedMemoryPercentage(), "-Xmx")); if (javaInformations.getSessionCount() >= 0) { addLabel(getString("nb_sessions_http")); // writeGraph("httpSessions", integerFormat.format(javaInformations.getSessionCount())); addValue(integerFormat.format(javaInformations.getSessionCount())); } addLabel(getString("nb_threads_actifs") + "\n(" + getString("Requetes_http_en_cours") + ')'); // writeGraph("activeThreads", integerFormat.format(javaInformations.getActiveThreadCount())); addValue(integerFormat.format(javaInformations.getActiveThreadCount())); if (!noDatabase) { addLabel(getString("nb_connexions_actives")); // writeGraph("activeConnections", integerFormat.format(javaInformations.getActiveConnectionCount())); addValue(integerFormat.format(javaInformations.getActiveConnectionCount())); final int usedConnectionCount = javaInformations.getUsedConnectionCount(); final int maxConnectionCount = javaInformations.getMaxConnectionCount(); addLabel(getString("nb_connexions_utilisees") + "\n(" + getString("ouvertes") + ')'); // writeGraph("usedConnections", integerFormat.format(usedConnectionCount)); if (maxConnectionCount > 0) { addJLabel(toBarWithAlert(integerFormat.format(usedConnectionCount), javaInformations.getUsedConnectionPercentage(), null)); } else { addValue(integerFormat.format(usedConnectionCount) + divide + integerFormat.format(maxConnectionCount)); } } if (javaInformations.getSystemLoadAverage() >= 0) { addLabel(getString("Charge_systeme")); // writeGraph("systemLoad", decimalFormat.format(javaInformations.getSystemLoadAverage())); addValue(decimalFormat.format(javaInformations.getSystemLoadAverage())); } makeGrid(); }
From source file:net.bull.javamelody.JavaInformationsPanel.java
License:Apache License
private void addDetails(boolean repeatHost) { if (repeatHost) { addLabel(getString("Host")); final JLabel hostLabel = new JLabel(javaInformations.getHost()); hostLabel.setFont(hostLabel.getFont().deriveFont(Font.BOLD)); addJLabel(hostLabel);// ww w.ja v a2 s . c om } addLabel(getString("OS")); final String osIconName = HtmlJavaInformationsReport.getOSIconName(javaInformations.getOS()); final JLabel osLabel = new JLabel(javaInformations.getOS() + " (" + javaInformations.getAvailableProcessors() + ' ' + getString("coeurs") + ')'); if (osIconName != null) { osLabel.setIcon(ImageIconCache.getImageIcon("servers/" + osIconName)); } addJLabel(osLabel); addLabel(getString("Java")); addValue(javaInformations.getJavaVersion()); addLabel(getString("JVM")); final JLabel jvmVersionLabel = new JLabel(javaInformations.getJvmVersion()); if (javaInformations.getJvmVersion().contains("Client")) { jvmVersionLabel.setIcon(ImageIconCache.getImageIcon("alert.png")); jvmVersionLabel.setHorizontalTextPosition(SwingConstants.LEFT); jvmVersionLabel.setToolTipText(getString("Client_JVM")); } addJLabel(jvmVersionLabel); addLabel(getString("PID")); addValue(javaInformations.getPID()); final long unixOpenFileDescriptorCount = javaInformations.getUnixOpenFileDescriptorCount(); if (unixOpenFileDescriptorCount >= 0) { final long unixMaxFileDescriptorCount = javaInformations.getUnixMaxFileDescriptorCount(); addLabel(getString("nb_fichiers")); addJLabel(toBarWithAlert( integerFormat.format(unixOpenFileDescriptorCount) + " / " + integerFormat.format(unixMaxFileDescriptorCount), javaInformations.getUnixOpenFileDescriptorPercentage(), null)); // writeGraph("fileDescriptors", integerFormat.format(unixOpenFileDescriptorCount)); } writeServerInfoAndContextPath(); addLabel(getString("Demarrage")); addValue(I18N.createDateAndTimeFormat().format(javaInformations.getStartDate())); addLabel(getString("Arguments_JVM")); addValue(javaInformations.getJvmArguments()); if (javaInformations.getSessionCount() >= 0) { addLabel(getString("httpSessionsMeanAge")); // writeGraph("httpSessionsMeanAge", integerFormat.format(javaInformations.getSessionMeanAgeInMinutes())); addValue(integerFormat.format(javaInformations.getSessionMeanAgeInMinutes())); } writeTomcatInformations(javaInformations.getTomcatInformationsList()); writeMemoryInformations(javaInformations.getMemoryInformations()); if (javaInformations.getFreeDiskSpaceInTemp() >= 0) { // on considre que l'espace libre sur le disque dur est celui sur la partition du rpertoire temporaire addLabel(getString("Free_disk_space")); addValue(integerFormat.format(javaInformations.getFreeDiskSpaceInTemp() / 1024 / 1024) + ' ' + getString("Mo")); } writeDatabaseVersionAndDataSourceDetails(); if (javaInformations.isDependenciesEnabled()) { addLabel(getString("Dependencies")); writeDependencies(); } makeGrid(); }
From source file:net.bull.javamelody.swing.print.MPdfWriter.java
License:Apache License
/** * Effectue le rendu des headers./*from w w w . j a v a 2 s . c om*/ * * @param table * MBasicTable * @param datatable * Table * @throws BadElementException * e */ protected void renderHeaders(final MBasicTable table, final Table datatable) throws BadElementException { final int columnCount = table.getColumnCount(); final TableColumnModel columnModel = table.getColumnModel(); // size of columns float totalWidth = 0; for (int i = 0; i < columnCount; i++) { totalWidth += columnModel.getColumn(i).getWidth(); } final float[] headerwidths = new float[columnCount]; for (int i = 0; i < columnCount; i++) { headerwidths[i] = 100f * columnModel.getColumn(i).getWidth() / totalWidth; } datatable.setWidths(headerwidths); datatable.setWidth(100f); // table header final com.lowagie.text.Font font = FontFactory.getFont(FontFactory.HELVETICA, 12, Font.BOLD); datatable.getDefaultCell().setBorderWidth(2); datatable.getDefaultCell().setHorizontalAlignment(Element.ALIGN_CENTER); // datatable.setDefaultCellGrayFill(0.75f); String text; Object value; for (int i = 0; i < columnCount; i++) { value = columnModel.getColumn(i).getHeaderValue(); text = value != null ? value.toString() : ""; datatable.addCell(new Phrase(text, font)); } // end of the table header datatable.endHeaders(); }
From source file:net.nosleep.superanalyzer.Share.java
License:Open Source License
public static void saveAnalysisPdf(JFrame window, Analysis analysis, JProgressBar progressBar) { File pdfFile = askForFile(window, "pdf"); if (pdfFile == null) return;/*w ww.j av a 2s . c o m*/ Misc.printMemoryInfo("pdfstart"); DateFormat dateFormat = new SimpleDateFormat().getDateInstance(DateFormat.SHORT); String infoString = Misc.getString("CREATED_ON") + " " + dateFormat.format(Calendar.getInstance().getTime()); int viewCount = 15; int viewsDone = 0; progressBar.setMinimum(0); progressBar.setMaximum(viewCount); Dimension d = new Dimension(500, 400); try { String tmpPath = System.getProperty("java.io.tmpdir") + "/image.png"; // create the pdf document object Document document = new Document(); // create a writer that listens to the document // and directs a PDF-stream to a file PdfWriter.getInstance(document, new FileOutputStream(pdfFile)); // we open the document document.open(); Font titleFont = FontFactory.getFont(FontFactory.HELVETICA, 18, Font.NORMAL, new Color(0x00, 0x00, 0x00)); Paragraph p = new Paragraph(Misc.getString("MY_MUSIC_COLLECTION"), titleFont); p.setSpacingAfter(4); document.add(p); Font subtitleFont = FontFactory.getFont(FontFactory.HELVETICA, 8, Font.NORMAL, new Color(0x88, 0x88, 0x88)); p = new Paragraph("The Super Analyzer by Nosleep Software", subtitleFont); p.setSpacingAfter(-2); document.add(p); p = new Paragraph(infoString, subtitleFont); p.setSpacingAfter(30); document.add(p); PdfPTable table = new PdfPTable(2); table.getDefaultCell().setBorder(PdfPCell.NO_BORDER); table.setTotalWidth(500f); table.setLockedWidth(true); Font statNameFont = FontFactory.getFont(FontFactory.HELVETICA, 8, Font.NORMAL, new Color(0x66, 0x66, 0x66)); Font statValueFont = FontFactory.getFont(FontFactory.HELVETICA, 8, Font.NORMAL, new Color(0x00, 0x00, 0x00)); Vector<StringTriple> statPairs = SummaryView.createStatPairs(analysis); Paragraph statParagraph = new Paragraph(); Font summaryTitleFont = FontFactory.getFont(FontFactory.HELVETICA, 11, Font.BOLD, new Color(0x00, 0x00, 0x00)); Paragraph titleParagraph = new Paragraph(Misc.getString("SUMMARY"), summaryTitleFont); statParagraph.add(titleParagraph); Paragraph spaceParagraph = new Paragraph("", statNameFont); statParagraph.add(spaceParagraph); for (int i = 0; i < statPairs.size(); i++) { Paragraph statLine = new Paragraph(); StringTriple triple = statPairs.elementAt(i); Phrase namePhrase = new Phrase(triple.Name + ": ", statNameFont); Phrase valuePhrase = new Phrase(triple.Value, statValueFont); statLine.add(namePhrase); statLine.add(valuePhrase); statParagraph.add(statLine); } table.addCell(statParagraph); viewsDone++; progressBar.setValue(viewsDone); GenreView genreView = new GenreView(analysis); genreView.saveImage(new File(tmpPath), d); genreView = null; Image img = Image.getInstance(tmpPath); table.addCell(img); viewsDone++; progressBar.setValue(viewsDone); LikesView likesView = new LikesView(analysis); likesView.saveImage(new File(tmpPath), d); likesView = null; img = Image.getInstance(tmpPath); table.addCell(img); viewsDone++; progressBar.setValue(viewsDone); YearView yearView = new YearView(analysis); yearView.saveImage(new File(tmpPath), d); yearView = null; img = Image.getInstance(tmpPath); table.addCell(img); viewsDone++; progressBar.setValue(viewsDone); RatingView ratingView = new RatingView(analysis); ratingView.saveImage(new File(tmpPath), d); ratingView = null; img = Image.getInstance(tmpPath); table.addCell(img); viewsDone++; progressBar.setValue(viewsDone); TimeView timeView = new TimeView(analysis); timeView.saveImage(new File(tmpPath), d); timeView = null; img = Image.getInstance(tmpPath); table.addCell(img); viewsDone++; progressBar.setValue(viewsDone); QualityView qualityView = new QualityView(analysis); qualityView.saveImage(new File(tmpPath), d); qualityView = null; img = Image.getInstance(tmpPath); table.addCell(img); viewsDone++; progressBar.setValue(viewsDone); PlayCountView playCountView = new PlayCountView(analysis); playCountView.saveImage(new File(tmpPath), d); playCountView = null; img = Image.getInstance(tmpPath); table.addCell(img); viewsDone++; progressBar.setValue(viewsDone); MostPlayedAAView mostPlayedAAView = new MostPlayedAAView(analysis); mostPlayedAAView.saveImage(new File(tmpPath), d); img = Image.getInstance(tmpPath); table.addCell(img); mostPlayedAAView.saveImageExtra(new File(tmpPath), d); img = Image.getInstance(tmpPath); table.addCell(img); mostPlayedAAView = null; viewsDone++; progressBar.setValue(viewsDone); MostPlayedDGView mostPlayedDGView = new MostPlayedDGView(analysis); mostPlayedDGView.saveImage(new File(tmpPath), d); img = Image.getInstance(tmpPath); table.addCell(img); mostPlayedDGView.saveImageExtra(new File(tmpPath), d); img = Image.getInstance(tmpPath); table.addCell(img); mostPlayedDGView = null; viewsDone++; progressBar.setValue(viewsDone); EncodingKindView encodingKindView = new EncodingKindView(analysis); encodingKindView.saveImage(new File(tmpPath), d); encodingKindView = null; img = Image.getInstance(tmpPath); table.addCell(img); viewsDone++; progressBar.setValue(viewsDone); GrowthView growthView = new GrowthView(analysis); growthView.saveImage(new File(tmpPath), d); growthView = null; img = Image.getInstance(tmpPath); table.addCell(img); viewsDone++; progressBar.setValue(viewsDone); WordView wordView = new WordView(analysis); wordView.saveImage(new File(tmpPath), d); wordView = null; img = Image.getInstance(tmpPath); table.addCell(img); table.addCell(""); viewsDone++; progressBar.setValue(viewsDone); Misc.printMemoryInfo("pdfend"); document.add(table); // step 5: we close the document document.close(); } catch (DocumentException de) { System.err.println(de.getMessage()); } catch (IOException ioe) { System.err.println(ioe.getMessage()); } }