Example usage for com.itextpdf.text Image getInstance

List of usage examples for com.itextpdf.text Image getInstance

Introduction

In this page you can find the example usage for com.itextpdf.text Image getInstance.

Prototype

public static Image getInstance(final Image image) 

Source Link

Document

gets an instance of an Image

Usage

From source file:be.roots.taconic.pricingguide.util.iTextUtil.java

License:Open Source License

public static Image getImageFromPdf(byte[] pdf) throws IOException, BadElementException {

    try (final ByteArrayOutputStream bos = new ByteArrayOutputStream()) {

        final PdfReader reader = new PdfReader(pdf);
        final PdfReaderContentParser parser = new PdfReaderContentParser(reader);
        final ImageRenderListener listener = new ImageRenderListener(bos);

        parser.processContent(1, listener);

        reader.close();//from www .jav  a  2  s.c  o m

        return Image.getInstance(bos.toByteArray());
    }

}

From source file:be.roots.taconic.pricingguide.util.iTextUtil.java

License:Open Source License

public static Image getImageFromByteArray(byte[] pdf) {
    try {// w  w w . java 2 s  . c  o  m
        return Image.getInstance(pdf);
    } catch (BadElementException e) {
        e.printStackTrace();
    } catch (IOException e) {
        e.printStackTrace();
    }
    return null;
}

From source file:beans.CronogramaPDF.java

private void createPdf(String dest) throws IOException, DocumentException, SQLException {
    Parametrizacion p = new Parametrizacion();
    DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
    Document document = new Document();
    PdfWriter.getInstance(document, new FileOutputStream(dest));
    document.open();//from  w  w w.j av a 2  s . c o  m
    PdfPTable table = new PdfPTable(12);
    BaseColor color = new BaseColor(142, 170, 219);
    PdfPCell celda;
    Phrase texto;
    Font font = new Font(Font.FontFamily.TIMES_ROMAN, 7);
    Font font1 = new Font(Font.FontFamily.TIMES_ROMAN, 10);
    table.setWidthPercentage(100);

    Image img = Image.getInstance(p.getParametro("rutaImgServer") + "logo.png");
    celda = new PdfPCell(img, true);
    celda.setPadding(5);
    celda.setColspan(4);
    table.addCell(celda);
    celda = new PdfPCell(new Phrase(
            "\n\n\nFecha de creacin: " + dateFormat.format(Calendar.getInstance().getTime()), font1));
    celda.setColspan(8);
    // head.setBackgroundColor(BaseColor.CYAN);
    table.addCell(celda);

    celda = new PdfPCell(new Phrase("CRONOGRAMA DE MANTENIMIENTOS", font));
    celda.setColspan(112);
    celda.setBackgroundColor(new BaseColor(142, 170, 219));
    table.addCell(celda);

    celda = new PdfPCell(new Phrase("N", font));
    celda.setColspan(1);
    celda.setBackgroundColor(new BaseColor(142, 170, 219));
    table.addCell(celda);

    celda = new PdfPCell(new Phrase("CODIGO", font));
    celda.setColspan(1);
    celda.setBackgroundColor(new BaseColor(142, 170, 219));
    table.addCell(celda);

    celda = new PdfPCell(new Phrase("FECHA SOLICITUD", font));
    celda.setColspan(1);
    celda.setBackgroundColor(new BaseColor(142, 170, 219));
    table.addCell(celda);

    celda = new PdfPCell(new Phrase("EQUIPO", font));
    celda.setColspan(3);
    celda.setBackgroundColor(new BaseColor(142, 170, 219));
    table.addCell(celda);

    celda = new PdfPCell(new Phrase("SERVICIO SOLICITADO", font));
    celda.setColspan(3);
    celda.setBackgroundColor(new BaseColor(142, 170, 219));
    table.addCell(celda);

    celda = new PdfPCell(new Phrase("ACCIONES A REALIZAR", font));
    celda.setColspan(3);
    celda.setBackgroundColor(new BaseColor(142, 170, 219));
    table.addCell(celda);

    int i = 1;
    for (SolicitudDeMantenimiento sM : this.solicitudes) {
        if (!sM.getEstado().equals("Realizada")) {
            celda = new PdfPCell(new Phrase(i + "", font));
            celda.setColspan(1);
            table.addCell(celda);

            celda = new PdfPCell(new Phrase(sM.getCodigo(), font));
            celda.setColspan(1);
            table.addCell(celda);

            celda = new PdfPCell(new Phrase(sM.getFecha(), font));
            celda.setColspan(1);
            table.addCell(celda);

            celda = new PdfPCell(new Phrase(sM.getEquipo().getNombre(), font));
            celda.setColspan(3);
            table.addCell(celda);

            celda = new PdfPCell(new Phrase(sM.getDescripcionServicio(), font));
            celda.setColspan(3);
            table.addCell(celda);

            celda = new PdfPCell(new Phrase(sM.getDescripcionAcciones(), font));
            celda.setColspan(3);
            table.addCell(celda);
            i++;
        }

    }
    document.add(table);
    document.close();
}

From source file:beans.OrdenDeTrabajoPDF.java

private void createPdf(String dest) throws IOException, DocumentException {
    Parametrizacion p = new Parametrizacion();
    this.listaPartes = new JsonParser().parse(ot.getPartes()).getAsJsonArray();
    this.listaDescripcionesTrabajos = new JsonParser().parse(ot.getDescripcionesTrabajos()).getAsJsonArray();
    this.listaMateriales = new JsonParser().parse(ot.getMateriales()).getAsJsonArray();

    Document document = new Document();
    PdfWriter.getInstance(document, new FileOutputStream(dest));
    document.open();/*w  ww .  j a va  2s . com*/
    PdfPTable table = new PdfPTable(12);
    BaseColor color = new BaseColor(142, 170, 219);
    PdfPCell celda;
    Phrase texto;
    Font font = new Font(Font.FontFamily.TIMES_ROMAN, 10);
    table.setWidthPercentage(100);

    Image img = Image.getInstance(p.getParametro("rutaImgServer") + "logo.png");
    celda = new PdfPCell(img, true);
    celda.setPadding(5);
    celda.setColspan(4);
    table.addCell(celda);
    celda = new PdfPCell(new Phrase("ORDEN DE TRABAJO N:" + this.ot.getNumeroOrdenDeTrabajo()
            + "\nFECHA INICIO:" + this.ot.getFechaInicio() + "\nFECHA FIN:" + this.ot.getFechaFin()
            + "\nSOLICITUD N:" + this.ot.getSolicitudDeMantenimiento().getCodigo() + "", font));
    celda.setColspan(8);
    // head.setBackgroundColor(BaseColor.CYAN);
    table.addCell(celda);
    String tipoSolicitud = ot.getTipoSolicitud();
    if (tipoSolicitud.equals("Urgente")) {
        celda = new PdfPCell(new Phrase("TIPO DE SOLICITUD    NORMAL:      URGENTE: X", font));
        celda.setColspan(12);
        table.addCell(celda);
    } else {
        celda = new PdfPCell(new Phrase("TIPO DE SOLICITUD    NORMAL: X    URGENTE:", font));
        celda.setColspan(12);
        table.addCell(celda);
    }

    if (ot.isDptAdmyControl()) {
        celda = new PdfPCell(new Phrase(
                "DTO.ADMS. Y CONTROL DE LA PRODUCCION" + " GENERA ORDEN DE TRABAJO DE MTTO SI:X           NO:",
                font));
        celda.setColspan(12);
        table.addCell(celda);
    } else {
        celda = new PdfPCell(new Phrase(
                "DTO.ADMS. Y CONTROL DE LA PRODUCCION" + " GENERA ORDEN DE TRABAJO DE MTTO SI:            NO:X",
                font));
        celda.setColspan(12);
        table.addCell(celda);
    }

    celda = new PdfPCell(
            new Phrase("CODIGO EQUIPO: " + ot.getSolicitudDeMantenimiento().getEquipo().getCodigo(), font));
    celda.setColspan(3);
    table.addCell(celda);
    celda = new PdfPCell(
            new Phrase("NOMBRE EQUIPO: " + ot.getSolicitudDeMantenimiento().getEquipo().getNombre(), font));
    celda.setColspan(9);
    table.addCell(celda);
    String tipoMantenimiento = "";
    for (String element : ot.getTiposDeMantenimiento()) {
        tipoMantenimiento += element + "\n";
    }

    celda = new PdfPCell(new Phrase("TIPO DE MANTENIMIENTO\n", font));
    celda.setColspan(12);
    celda.setBackgroundColor(new BaseColor(142, 170, 219));
    table.addCell(celda);
    celda = new PdfPCell(new Phrase(tipoMantenimiento, font));
    celda.setColspan(12);
    table.addCell(celda);

    celda = new PdfPCell(new Phrase("PARTE", font));
    celda.setColspan(3);
    celda.setBackgroundColor(new BaseColor(142, 170, 219));
    table.addCell(celda);

    celda = new PdfPCell(new Phrase("ANOMALIA", font));
    celda.setColspan(3);
    celda.setBackgroundColor(new BaseColor(142, 170, 219));
    table.addCell(celda);

    celda = new PdfPCell(new Phrase("CAUSA", font));
    celda.setColspan(3);
    celda.setBackgroundColor(new BaseColor(142, 170, 219));
    table.addCell(celda);

    celda = new PdfPCell(new Phrase("POSIBLE SOLUCION", font));
    celda.setColspan(3);
    celda.setBackgroundColor(new BaseColor(142, 170, 219));
    table.addCell(celda);

    for (int i = 0; i < listaPartes.size(); i++) {

        celda = new PdfPCell(new Phrase(
                listaPartes.get(i).getAsJsonObject().get("parte").toString().replace("\"", ""), font));
        celda.setColspan(3);
        table.addCell(celda);

        celda = new PdfPCell(new Phrase(
                listaPartes.get(i).getAsJsonObject().get("anomalia").toString().replace("\"", ""), font));
        celda.setColspan(3);
        table.addCell(celda);

        celda = new PdfPCell(new Phrase(
                listaPartes.get(i).getAsJsonObject().get("causa").toString().replace("\"", ""), font));
        celda.setColspan(3);
        table.addCell(celda);

        celda = new PdfPCell(new Phrase(
                listaPartes.get(i).getAsJsonObject().get("solucion").toString().replace("\"", ""), font));
        celda.setColspan(3);
        table.addCell(celda);

    }

    celda = new PdfPCell(new Phrase("SOLICTADA POR: " + ot.getSolicitadaPor() + "\n\nFIRMA", font));
    celda.setColspan(4);
    table.addCell(celda);

    celda = new PdfPCell(new Phrase("REVISADA POR: " + ot.getRevisadaPor() + "\n\nFIRMA", font));
    celda.setColspan(4);
    table.addCell(celda);

    celda = new PdfPCell(new Phrase("AUTORIZADA POR: " + ot.getAutorizadaPor() + "\n\nFIRMA", font));
    celda.setColspan(4);
    table.addCell(celda);

    celda = new PdfPCell(new Phrase("N", font));
    celda.setColspan(1);
    celda.setBackgroundColor(new BaseColor(142, 170, 219));
    table.addCell(celda);

    celda = new PdfPCell(new Phrase("DESCRIPCIN DE LOS TRABAJOS A REALIZAR", font));
    celda.setColspan(11);
    celda.setBackgroundColor(new BaseColor(142, 170, 219));
    table.addCell(celda);

    for (int i = 0; i < listaDescripcionesTrabajos.size(); i++) {

        celda = new PdfPCell(new Phrase((i + 1) + "", font));
        celda.setColspan(1);
        table.addCell(celda);

        celda = new PdfPCell(new Phrase(
                listaDescripcionesTrabajos.get(i).getAsJsonObject().get("trabajo").toString().replace("\"", ""),
                font));
        celda.setColspan(11);
        table.addCell(celda);

    }

    celda = new PdfPCell(new Phrase("MATERIALES", font));
    celda.setColspan(12);
    celda.setBackgroundColor(new BaseColor(142, 170, 219));
    table.addCell(celda);

    celda = new PdfPCell(new Phrase("N", font));
    celda.setColspan(1);
    celda.setBackgroundColor(new BaseColor(142, 170, 219));
    table.addCell(celda);

    celda = new PdfPCell(new Phrase("CANTIDAD", font));
    celda.setColspan(2);
    celda.setBackgroundColor(new BaseColor(142, 170, 219));
    table.addCell(celda);

    celda = new PdfPCell(new Phrase("DESCRIPCIN", font));
    celda.setColspan(3);
    celda.setBackgroundColor(new BaseColor(142, 170, 219));
    table.addCell(celda);

    celda = new PdfPCell(new Phrase("REFERENCIA", font));
    celda.setColspan(2);
    celda.setBackgroundColor(new BaseColor(142, 170, 219));
    table.addCell(celda);

    celda = new PdfPCell(new Phrase("VALOR UNI", font));
    celda.setColspan(2);
    celda.setBackgroundColor(new BaseColor(142, 170, 219));
    table.addCell(celda);

    celda = new PdfPCell(new Phrase("VALOR TOTAL", font));
    celda.setColspan(2);
    celda.setBackgroundColor(new BaseColor(142, 170, 219));
    table.addCell(celda);

    for (int i = 0; i < listaMateriales.size(); i++) {
        celda = new PdfPCell(new Phrase("" + (1 + i), font));
        celda.setColspan(1);
        table.addCell(celda);

        celda = new PdfPCell(new Phrase(
                listaMateriales.get(i).getAsJsonObject().get("cantidad").toString().replace("\"", ""), font));
        celda.setColspan(2);
        table.addCell(celda);

        celda = new PdfPCell(new Phrase(
                listaMateriales.get(i).getAsJsonObject().get("descripcion").toString().replace("\"", ""),
                font));
        celda.setColspan(3);
        table.addCell(celda);

        celda = new PdfPCell(new Phrase(
                listaMateriales.get(i).getAsJsonObject().get("referencia").toString().replace("\"", ""), font));
        celda.setColspan(2);
        table.addCell(celda);

        celda = new PdfPCell(new Phrase(
                listaMateriales.get(i).getAsJsonObject().get("unitario").toString().replace("\"", ""), font));
        celda.setColspan(2);
        table.addCell(celda);

        celda = new PdfPCell(new Phrase(
                listaMateriales.get(i).getAsJsonObject().get("total").toString().replace("\"", ""), font));
        celda.setColspan(2);
        table.addCell(celda);
    }
    celda = new PdfPCell(new Phrase("COSTOS", font));
    celda.setBackgroundColor(new BaseColor(142, 170, 219));
    celda.setColspan(12);
    table.addCell(celda);
    celda = new PdfPCell(new Phrase("MANO DE OBRA: $" + ot.getCostoManoDeObra() + "", font));
    celda.setColspan(4);
    table.addCell(celda);

    celda = new PdfPCell(new Phrase("MATERIALES: $" + ot.getCostoMateriales() + "", font));
    celda.setColspan(4);
    table.addCell(celda);

    celda = new PdfPCell(new Phrase("TOTAL: $" + ot.getCostoTotal() + "", font));
    celda.setColspan(4);
    table.addCell(celda);

    celda = new PdfPCell(new Phrase("TIEMPO EMPLEADO", font));
    celda.setBackgroundColor(new BaseColor(142, 170, 219));
    celda.setColspan(12);
    table.addCell(celda);

    celda = new PdfPCell(new Phrase("TOTAL HORAS MTO: " + ot.getTotalHorasMto() + "", font));
    celda.setColspan(6);
    table.addCell(celda);

    celda = new PdfPCell(new Phrase("TOTAL HORAS PARADA: " + ot.getTotalHorasParada() + "", font));
    celda.setColspan(6);
    table.addCell(celda);

    celda = new PdfPCell(new Phrase("DESCRIPCIN DE LOS DAOS ENCONTRADOS", font));
    celda.setBackgroundColor(new BaseColor(142, 170, 219));
    celda.setColspan(12);
    table.addCell(celda);

    celda = new PdfPCell(new Phrase("" + ot.getDescripcionDanos(), font));
    celda.setColspan(12);
    table.addCell(celda);

    celda = new PdfPCell(new Phrase("DESCRIPCIN DE LOS TRABAJOS REALIZADOS", font));
    celda.setBackgroundColor(new BaseColor(142, 170, 219));
    celda.setColspan(12);
    table.addCell(celda);

    celda = new PdfPCell(new Phrase("" + ot.getDescripcionTrabajosRealizados(), font));
    celda.setColspan(12);
    table.addCell(celda);

    celda = new PdfPCell(new Phrase("OBSERVACIONES Y RECOMENDACIONES", font));
    celda.setBackgroundColor(new BaseColor(142, 170, 219));
    celda.setColspan(12);
    table.addCell(celda);

    celda = new PdfPCell(new Phrase("" + ot.getObservaciones(), font));
    celda.setColspan(12);
    table.addCell(celda);

    celda = new PdfPCell(new Phrase("EJECUTO: " + ot.getEjecutadoPor() + "\n\nFIRMA", font));
    celda.setColspan(6);
    table.addCell(celda);

    celda = new PdfPCell(new Phrase("RECIBI Y APROB: " + ot.getRecibidoAprobadoPor() + "\n\nFIRMA", font));
    celda.setColspan(6);
    table.addCell(celda);

    document.add(table);
    document.close();
}

From source file:beans.SolicitudDeMantenimientoPDF.java

public void createPdf(String dest) throws IOException, DocumentException {
    Parametrizacion p = new Parametrizacion();
    Document document = new Document();
    PdfWriter.getInstance(document, new FileOutputStream(dest));
    document.open();// w  w  w. j ava  2 s . co  m
    PdfPTable table = new PdfPTable(12);
    Font font = new Font(Font.FontFamily.TIMES_ROMAN, 10);
    PdfPCell celda;
    table.setWidthPercentage(100);

    Image img = Image.getInstance(p.getParametro("rutaImgServer") + "logo.png");
    celda = new PdfPCell(img, true);
    celda.setPadding(5);
    celda.setColspan(4);
    table.addCell(celda);

    celda = new PdfPCell(new Phrase("CODIGO: " + sm.getCodigo() + "\nREVISION: " + sm.getRevision()
            + "\nSOLICITUD DE SERVICIO: " + sm.getSolicitudDeServicio() + "\nFECHA: " + sm.getFecha() + "",
            font));
    celda.setColspan(8);
    // head.setBackgroundColor(BaseColor.CYAN);
    table.addCell(celda);

    celda = new PdfPCell(new Phrase("SECCION", font));
    celda.setColspan(4);
    celda.setBackgroundColor(new BaseColor(142, 170, 219));
    table.addCell(celda);
    celda = new PdfPCell(new Phrase("MAQUINA", font));
    celda.setColspan(4);
    celda.setBackgroundColor(new BaseColor(142, 170, 219));
    table.addCell(celda);
    celda = new PdfPCell(new Phrase("NOMBRE DEL OPERARIO", font));
    celda.setColspan(4);
    celda.setBackgroundColor(new BaseColor(142, 170, 219));
    table.addCell(celda);

    celda = new PdfPCell(new Phrase("" + sm.getEquipo().getUbicacion(), font));
    celda.setColspan(4);
    table.addCell(celda);
    celda = new PdfPCell(new Phrase("" + sm.getEquipo().getNombre(), font));
    celda.setColspan(4);
    table.addCell(celda);
    celda = new PdfPCell(new Phrase("" + sm.getEquipo().getOperario(), font));
    celda.setColspan(4);
    table.addCell(celda);

    celda = new PdfPCell(new Phrase("SERVICIO SOLICITADO", font));
    celda.setBackgroundColor(new BaseColor(142, 170, 219));
    celda.setColspan(12);
    table.addCell(celda);

    String reparacion = " ";
    String mtoMecanico = " ";
    String mtoPreventivo = " ";
    String mtoElectrico = " ";
    String mtoCorrectivo = " ";
    String otros = " ";
    if (sm.isReparacion()) {
        reparacion += " X";
    }
    if (sm.isMtoMecanico()) {
        mtoMecanico += " X";
    }
    if (sm.isMtoPreventivo()) {
        mtoPreventivo += " X";
    }
    if (sm.isMtoElectrico()) {
        mtoElectrico += " X";
    }
    if (sm.isMtoCorrectivo()) {
        mtoCorrectivo += " X";
    }
    if (sm.isOtros()) {
        otros += " X";
    }

    celda = new PdfPCell(new Phrase("REPARACION", font));
    celda.setColspan(3);
    table.addCell(celda);
    celda = new PdfPCell(new Phrase(reparacion, font));
    celda.setColspan(1);
    table.addCell(celda);
    celda = new PdfPCell(new Phrase("MTO. MECANICO", font));
    celda.setColspan(3);
    table.addCell(celda);
    celda = new PdfPCell(new Phrase(mtoMecanico, font));
    celda.setColspan(1);
    table.addCell(celda);
    celda = new PdfPCell(new Phrase("MTO. PREVENTIVO", font));
    celda.setColspan(3);
    table.addCell(celda);
    celda = new PdfPCell(new Phrase(mtoPreventivo, font));
    celda.setColspan(1);
    table.addCell(celda);
    celda = new PdfPCell(new Phrase("MTO. ELECTRICO", font));
    celda.setColspan(3);
    table.addCell(celda);
    celda = new PdfPCell(new Phrase(mtoElectrico, font));
    celda.setColspan(1);
    table.addCell(celda);
    celda = new PdfPCell(new Phrase("MTO. CORRECTIVO", font));
    celda.setColspan(3);
    table.addCell(celda);
    celda = new PdfPCell(new Phrase(mtoCorrectivo, font));
    celda.setColspan(1);
    table.addCell(celda);
    celda = new PdfPCell(new Phrase("OTROS", font));
    celda.setColspan(3);
    table.addCell(celda);
    celda = new PdfPCell(new Phrase(otros, font));
    celda.setColspan(1);
    table.addCell(celda);

    celda = new PdfPCell(new Phrase("DESCRIPCIN DEL SERVICIO SOLICITADO", font));
    celda.setBackgroundColor(new BaseColor(142, 170, 219));
    celda.setColspan(12);
    table.addCell(celda);

    celda = new PdfPCell(new Phrase("" + sm.getDescripcionServicio(), font));
    celda.setColspan(12);
    table.addCell(celda);

    celda = new PdfPCell(new Phrase("DESCRIPCIN DE ACCIONES A REALIZAR", font));
    celda.setBackgroundColor(new BaseColor(142, 170, 219));
    celda.setColspan(12);
    table.addCell(celda);

    celda = new PdfPCell(new Phrase("" + sm.getDescripcionAcciones(), font));
    celda.setColspan(12);
    table.addCell(celda);

    celda = new PdfPCell(new Phrase("MATERIAL A EMPLEAR", font));
    celda.setBackgroundColor(new BaseColor(142, 170, 219));
    celda.setColspan(12);
    table.addCell(celda);

    celda = new PdfPCell(new Phrase("" + sm.getMaterial(), font));
    celda.setColspan(12);
    table.addCell(celda);

    celda = new PdfPCell(new Phrase("GENERALIDADES", font));
    celda.setBackgroundColor(new BaseColor(142, 170, 219));
    celda.setColspan(12);
    table.addCell(celda);

    celda = new PdfPCell(new Phrase("TOTAL HORAS PARADA: " + sm.getHorasParada() + "", font));
    celda.setColspan(6);
    table.addCell(celda);

    celda = new PdfPCell(new Phrase("HORA SOLICITUD: " + sm.getHoraSolicitud() + "", font));
    celda.setColspan(6);
    table.addCell(celda);

    celda = new PdfPCell(new Phrase("TOTAL HORAS MTO: " + sm.getHorasMTO() + "", font));
    celda.setColspan(6);
    table.addCell(celda);

    celda = new PdfPCell(new Phrase("HORA ENTREGA: " + sm.getHoraEntrega() + "", font));
    celda.setColspan(6);
    table.addCell(celda);

    celda = new PdfPCell(new Phrase("SERVICIO SOLICITADO POR: " + sm.getSolicitadoPor() + "\n"
            + "SERVICIO REALIZADO POR: " + sm.getRealizadoPor() + "\n" + "RECIBO A CONFORMIDAD: "
            + sm.getRecibidoPor() + "\n\n\n FIRMA", font));
    celda.setColspan(12);
    table.addCell(celda);
    document.add(table);
    document.close();
}

From source file:bencoding.pdf.ConvertersProxy.java

License:Open Source License

@Kroll.method
public TiBlob convertImageToPDF(TiBlob blob, @Kroll.argument(optional = true) Object resolution)
        throws Exception {
    TiBlob result = null;//from  w w w .ja v a 2 s  .co m
    Bitmap bitmap = null;
    ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
    TiDrawableReference ref = TiDrawableReference.fromBlob(getActivity(), blob);
    Document document = new Document();
    try {
        PdfWriter.getInstance(document, outputStream);
        document.open();
        bitmap = ref.getBitmap();
        ByteArrayOutputStream stream = new ByteArrayOutputStream();
        bitmap.compress(Bitmap.CompressFormat.JPEG, 100, stream);
        byte[] bitmapdata = stream.toByteArray();
        Image image1 = Image.getInstance(bitmapdata);
        document.add(image1);
        document.close();
        byte[] bytes = outputStream.toByteArray();
        result = TiBlob.blobFromData(bytes);
        return result;

    } catch (FileNotFoundException e) {
        e.printStackTrace();
        Log.i(PdfModule.MODULE_FULL_NAME, e.toString());
    } catch (DocumentException e) {
        Log.i(PdfModule.MODULE_FULL_NAME, e.toString());
        e.printStackTrace();
    } finally {
        if (bitmap != null) {
            bitmap.recycle();
            bitmap = null;
        }
        outputStream = null;
        ref = null;
        document = null;
    }

    return result;
}

From source file:biblioteca.database2.controladores.ControladorEstadisticas.java

License:Open Source License

public ArrayList<Element> estadisticasDocumentosDescargados(String dow, String dom, String month, String year,
        String tipo_usuario, String[] franja, String[] desde, String[] hasta, String area, String autor,
        String doc_tipo, String usuario, boolean todos, int salida)
        throws BadElementException, MalformedURLException, IOException {

    ArrayList<Element> Salida = new ArrayList<Element>(6);
    BufferedImage bufferedImage;/*from   w  w w. j  a va2 s  . c om*/
    Image image;
    ResultSet rs = new DaoEstadisticas().documentosMasDescargados(dow, dom, month, year, tipo_usuario, franja,
            desde, hasta, area, autor, doc_tipo, usuario, todos);
    int total = 0;
    ArrayList<ArrayList<String>> resultadosTabla = biblioteca.reportes.PdfCreator.resultSetToArrayList(rs);
    ArrayList<String> Array2DtoArrayPlane = biblioteca.reportes.PdfCreator.Array2DtoArrayPlane(resultadosTabla,
            1, 2);
    for (int i = 1; i < resultadosTabla.size(); i++) {
        total += Integer.parseInt(resultadosTabla.get(i).get(resultadosTabla.get(i).size() - 1));
    }
    PdfPTable tabla = biblioteca.reportes.PdfCreator.arrayListToStatisticTable(resultadosTabla, total, salida);

    Salida.add(tabla);
    Salida.add(new Paragraph("\r\n"));
    Salida.add(new Paragraph("* Diagrama de Pastel y Diagrama de Barras: Documentos Descargados"));
    JFreeChart chart = ChartCreator.generatePieChart(ChartCreator.asignarPieDataset(Array2DtoArrayPlane),
            "Documentos Descargados");
    bufferedImage = chart.createBufferedImage(500, 600);
    image = Image.getInstance(EncoderUtil.encode(bufferedImage, "png"));
    image.scaleAbsolute(250, 300);
    image.setAlignment(Image.MIDDLE);
    Salida.add(image);
    Salida.add(new Paragraph("\r\n"));
    chart = ChartCreator.generateBarChart(ChartCreator.asignarBarDataset(Array2DtoArrayPlane),
            "Documentos Descargados", "Identificador Documento", "Numero de Descargados");
    bufferedImage = chart.createBufferedImage(1000, 500);
    image = Image.getInstance(EncoderUtil.encode(bufferedImage, "png"));
    image.scaleAbsolute(500, 250);
    image.setAlignment(Image.MIDDLE);
    Salida.add(image);
    return Salida;
}

From source file:biblioteca.database2.controladores.ControladorEstadisticas.java

License:Open Source License

public ArrayList<Element> estadisticasDocumentosConsultados(String dow, String dom, String month, String year,
        String tipo_usuario, String[] franja, String[] desde, String[] hasta, String area, String autor,
        String doc_tipo, String usuario, boolean todos, int salida)
        throws BadElementException, MalformedURLException, IOException {

    ArrayList<Element> Salida = new ArrayList<Element>(6);
    BufferedImage bufferedImage;/*from w  ww  .j a  va2 s  .  co m*/
    Image image;
    ResultSet rs = new DaoEstadisticas().documentosMasConsultados(dow, dom, month, year, tipo_usuario, franja,
            desde, hasta, area, autor, doc_tipo, usuario, todos);
    int total = 0;
    ArrayList<ArrayList<String>> resultadosTabla = biblioteca.reportes.PdfCreator.resultSetToArrayList(rs);
    ArrayList<String> Array2DtoArrayPlane = biblioteca.reportes.PdfCreator.Array2DtoArrayPlane(resultadosTabla,
            0, 2);
    for (int i = 1; i < resultadosTabla.size(); i++) {
        total += Integer.parseInt(resultadosTabla.get(i).get(resultadosTabla.get(i).size() - 1));
    }
    PdfPTable tabla = biblioteca.reportes.PdfCreator.arrayListToStatisticTable(resultadosTabla, total, salida);

    Salida.add(tabla);
    Salida.add(new Paragraph("\r\n"));
    Salida.add(new Paragraph("* Diagrama de Pastel y Diagrama de Barras: Documentos Consultados"));
    JFreeChart chart = ChartCreator.generatePieChart(ChartCreator.asignarPieDataset(Array2DtoArrayPlane),
            "Documentos Consultados");
    bufferedImage = chart.createBufferedImage(500, 600);
    image = Image.getInstance(EncoderUtil.encode(bufferedImage, "png"));
    image.scaleAbsolute(250, 300);
    image.setAlignment(Image.MIDDLE);
    Salida.add(image);
    Salida.add(new Paragraph("\r\n"));
    chart = ChartCreator.generateBarChart(ChartCreator.asignarBarDataset(Array2DtoArrayPlane),
            "Documentos Consultados", "Identificador Documento", "Numero de Consultas");
    bufferedImage = chart.createBufferedImage(1000, 500);
    image = Image.getInstance(EncoderUtil.encode(bufferedImage, "png"));
    image.scaleAbsolute(500, 250);
    image.setAlignment(Image.MIDDLE);
    Salida.add(image);
    return Salida;
}

From source file:biblioteca.database2.controladores.ControladorEstadisticas.java

License:Open Source License

public ArrayList<Element> estadisticasUsuariosRegistradosMultiplesTablas(boolean dow, boolean dom, boolean mes,
        String Year, String[] franja, String desde[], String[] hasta, boolean genero, boolean vinculo,
        boolean tipo, boolean estado, boolean area, int salida)
        throws BadElementException, MalformedURLException, IOException {
    BufferedImage bufferedImage;//from  w w  w  . j ava2  s.  co  m
    Image image;
    ResultSet rs;
    ArrayList<Element> Salida = new ArrayList<Element>(100);
    ArrayList<Element> images = new ArrayList<Element>(100);
    DaoEstadisticas controlador = new DaoEstadisticas();
    JFreeChart chart;
    ArrayList<ArrayList<String>> resultadosTabla;
    ArrayList<String> Array2DtoArrayPlane;
    PdfPTable tabla = null;
    int total = 0;
    if (dow) {
        ArrayList<String> tmp = controlador.consultarUsuariosRegistradosPorDoW();
        float promedio = promedio(tmp, 2);
        Salida.add(new Paragraph("Resultados para los das de la semana"));
        Salida.add(new Paragraph("\r\n"));
        Salida.add(
                biblioteca.reportes.PdfCreator.plainArrayListToPdfPTable(agregarPorcentajesALista(tmp, 2), 3));
        Salida.add(new Paragraph("Promedio " + promedio));
        Salida.add(new Paragraph("\r\n"));
        Salida.add(new Paragraph(
                "* Ver Anexo: Diagrama de Pastel: Usuarios Registrados para los dias de la Semana"));
        Salida.add(new Paragraph("\r\n"));
        chart = ChartCreator.generatePieChart(ChartCreator.asignarPieDataset(tmp),
                "Usuarios Registrados para los das de la semana");
        bufferedImage = chart.createBufferedImage(400, 300);
        image = Image.getInstance(EncoderUtil.encode(bufferedImage, "png"));
        image.scaleAbsolute(300, 200);
        image.setAlignment(Image.MIDDLE);
        images.add(image);
        images.add(new Paragraph("\r\n"));
        Salida.add(new Paragraph(
                "* Ver Anexo: Diagrama de Barras: Usuarios Registrados para los dias de la Semana"));
        Salida.add(new Paragraph("\r\n"));
        chart = ChartCreator.generateBarChart(ChartCreator.asignarBarDataset(tmp),
                "Usuarios Registrados para los das de la semana", "Das de la Semana",
                "Cantidad de usuarios");
        bufferedImage = chart.createBufferedImage(700, 300);
        image = Image.getInstance(EncoderUtil.encode(bufferedImage, "png"));
        image.scaleAbsolute(400, 200);
        image.setAlignment(Image.MIDDLE);
        images.add(image);
        images.add(new Paragraph("\r\n"));
    }
    if (dom) {
        rs = controlador.consultarUsuariosRegistradosPorDoM();
        resultadosTabla = biblioteca.reportes.PdfCreator.resultSetToArrayList(rs);
        Array2DtoArrayPlane = biblioteca.reportes.PdfCreator.Array2DtoArrayPlane(resultadosTabla, 0, 1);
        for (int i = 1; i < resultadosTabla.size(); i++)
            total += Integer.parseInt(resultadosTabla.get(i).get(resultadosTabla.get(i).size() - 1));
        tabla = biblioteca.reportes.PdfCreator.arrayListToStatisticTable(resultadosTabla, total, salida);
        Salida.add(new Paragraph("Resultados para los das del mes"));
        Salida.add(new Paragraph("\r\n"));
        Salida.add(tabla);
        Salida.add(new Paragraph("\r\n"));
        Salida.add(
                new Paragraph("* Ver Anexo: Diagrama de Pastel: Usuarios Registrados para los dias del mes"));
        Salida.add(new Paragraph("\r\n"));
        chart = ChartCreator.generatePieChart(ChartCreator.asignarPieDataset(Array2DtoArrayPlane),
                "Usuarios Registrados para los das del mes");
        bufferedImage = chart.createBufferedImage(500, 600);
        image = Image.getInstance(EncoderUtil.encode(bufferedImage, "png"));
        image.scaleAbsolute(250, 300);
        image.setAlignment(Image.MIDDLE);
        images.add(image);
        images.add(new Paragraph("\r\n"));
        chart = ChartCreator.generateBarChart(ChartCreator.asignarBarDataset(Array2DtoArrayPlane),
                "Usuarios Registrados para los das del Mes", "Das del mes", "Cantidad de usuarios");
        bufferedImage = chart.createBufferedImage(1000, 500);
        image = Image.getInstance(EncoderUtil.encode(bufferedImage, "png"));
        image.scaleAbsolute(500, 250);
        image.setAlignment(Image.MIDDLE);
        Salida.add(
                new Paragraph("* Ver Anexo: Diagrama de Barras: Usuarios Registrados para los dias del mes"));
        Salida.add(new Paragraph("\r\n"));
        images.add(image);
        images.add(new Paragraph("\r\n"));
    }
    if (mes) {
        ArrayList<String> tmp = controlador.consultarUsuariosRegistradosPorMes();
        Salida.add(new Paragraph("Resultados para los meses"));
        Salida.add(new Paragraph("\r\n"));
        float promedio = promedio(tmp, 2);
        Salida.add(
                biblioteca.reportes.PdfCreator.plainArrayListToPdfPTable(agregarPorcentajesALista(tmp, 2), 3));
        Salida.add(new Paragraph("Promedio " + promedio));
        Salida.add(new Paragraph("\r\n"));
        Salida.add(new Paragraph("* Ver Anexo: Diagrama de Pastel: Usuarios Registrados para los meses"));
        Salida.add(new Paragraph("\r\n"));
        chart = ChartCreator.generatePieChart(ChartCreator.asignarPieDataset(tmp),
                "Usuarios Registrados para los meses");
        bufferedImage = chart.createBufferedImage(500, 300);
        image = Image.getInstance(EncoderUtil.encode(bufferedImage, "png"));
        image.scaleAbsolute(350, 200);
        image.setAlignment(Image.MIDDLE);
        images.add(image);
        images.add(new Paragraph("\r\n"));
        Salida.add(new Paragraph("* Ver Anexo: Diagrama de Barras: Usuarios Registrados para los meses"));
        Salida.add(new Paragraph("\r\n"));
        chart = ChartCreator.generateBarChart(ChartCreator.asignarBarDataset(tmp),
                "Usuarios Registrados para los Meses", "Meses", "Cantidad de usuarios");
        bufferedImage = chart.createBufferedImage(1000, 600);
        image = Image.getInstance(EncoderUtil.encode(bufferedImage, "png"));
        image.scaleAbsolute(500, 300);
        image.setAlignment(Image.MIDDLE);
        images.add(image);
        images.add(new Paragraph("\r\n"));
    }
    if (Year != null) {
        ArrayList<String> tmp = controlador.consultarUsuariosRegistradosPorYear(Year);
        Salida.add(new Paragraph("Resultados para el ao seleccionado"));
        Salida.add(new Paragraph("\r\n"));
        Salida.add(new Paragraph("Ao:" + tmp.get(0) + ", Resultados:" + tmp.get(1)));
        Salida.add(new Paragraph("\r\n"));
    }
    if (franja != null) {
        ArrayList<String> tmp = controlador.consultarUsuariosRegistradosPorFranja(franja[0], franja[1]);
        Salida.add(new Paragraph("Resultados para la franja seleccionada"));
        Salida.add(new Paragraph("\r\n"));
        Salida.add(new Paragraph("Franja:" + tmp.get(0) + ", Resultados:" + tmp.get(1)));
        Salida.add(new Paragraph("\r\n"));
    }
    if (desde != null && hasta != null) {
        ArrayList<String> tmp = controlador.consultarUsuariosRegistradosPorIntervalo(
                desde[0] + "-" + desde[1] + "-" + desde[2], hasta[0] + "-" + hasta[1] + "-" + hasta[2]);
        Salida.add(new Paragraph("Resultados para el intervalo de tiempo seleccionado"));
        Salida.add(new Paragraph("\r\n"));
        Salida.add(new Paragraph("Intervalo de Tiempo: " + tmp.get(0) + ", Resultados:" + tmp.get(1)));
        Salida.add(new Paragraph("\r\n"));
    }
    if (genero) {
        rs = controlador.consultarUsuariosRegistradosPorGenero();
        resultadosTabla = biblioteca.reportes.PdfCreator.resultSetToArrayList(rs);
        for (int i = 0; i < resultadosTabla.size(); i++) {
            if (resultadosTabla.get(i).get(0).equals("F") || resultadosTabla.get(i).get(0).equals("f"))
                resultadosTabla.get(i).set(0, "Femenino");
            if (resultadosTabla.get(i).get(0).equals("M") || resultadosTabla.get(i).get(0).equals("m"))
                resultadosTabla.get(i).set(0, "Masculino");
            if (resultadosTabla.get(i).get(0).equals("N") || resultadosTabla.get(i).get(0).equals("n")) {
                resultadosTabla.remove(i);
            }
        }
        Array2DtoArrayPlane = biblioteca.reportes.PdfCreator.Array2DtoArrayPlane(resultadosTabla, 0, 1);
        for (int i = 1; i < resultadosTabla.size(); i++)
            total += Integer.parseInt(resultadosTabla.get(i).get(resultadosTabla.get(i).size() - 1));
        tabla = biblioteca.reportes.PdfCreator.arrayListToStatisticTable(resultadosTabla, total, salida);
        Salida.add(new Paragraph("Estadisticas de Usuarios Registrados por Genero"));
        Salida.add(new Paragraph("\r\n"));
        Salida.add(tabla);
        Salida.add(new Paragraph("\r\n"));
        Salida.add(new Paragraph(
                "* Ver Anexo: Diagrama de Pastel: Estadisticas de Usuarios Registrados por Genero"));
        Salida.add(new Paragraph("\r\n"));
        chart = ChartCreator.generatePieChart(ChartCreator.asignarPieDataset(Array2DtoArrayPlane),
                "Estadisticas de Usuarios Registrados por Genero");
        bufferedImage = chart.createBufferedImage(450, 400);
        image = Image.getInstance(EncoderUtil.encode(bufferedImage, "png"));
        image.scaleAbsolute(250, 200);
        image.setAlignment(Image.MIDDLE);
        images.add(image);
        images.add(new Paragraph("\r\n"));
        chart = ChartCreator.generateBarChart(ChartCreator.asignarBarDataset(Array2DtoArrayPlane),
                "Estadisticas de Usuarios Registrados por Genero", "Genero", "Cantidad de Usuarios");
        bufferedImage = chart.createBufferedImage(400, 400);
        image = Image.getInstance(EncoderUtil.encode(bufferedImage, "png"));
        image.scaleAbsolute(200, 200);
        image.setAlignment(Image.MIDDLE);
        Salida.add(new Paragraph(
                "* Ver Anexo: Diagrama de Barras: Estadisticas de Usuarios Registrados por Genero"));
        Salida.add(new Paragraph("\r\n"));
        images.add(image);
        images.add(new Paragraph("\r\n"));
    }
    if (vinculo) {
        rs = controlador.consultarUsuariosRegistradosPorVinculo();
        resultadosTabla = biblioteca.reportes.PdfCreator.resultSetToArrayList(rs);
        Array2DtoArrayPlane = biblioteca.reportes.PdfCreator.Array2DtoArrayPlane(resultadosTabla, 0, 1);
        for (int i = 1; i < resultadosTabla.size(); i++)
            total += Integer.parseInt(resultadosTabla.get(i).get(resultadosTabla.get(i).size() - 1));
        tabla = biblioteca.reportes.PdfCreator.arrayListToStatisticTable(resultadosTabla, total, salida);
        Salida.add(new Paragraph("Estadisticas de Usuarios Registrados por Vinculo"));
        Salida.add(new Paragraph("\r\n"));
        Salida.add(tabla);
        Salida.add(new Paragraph("\r\n"));
        Salida.add(new Paragraph(
                "* Ver Anexo: Diagrama de Pastel: Estadisticas de Usuarios Registrados por Vinculo"));
        Salida.add(new Paragraph("\r\n"));
        chart = ChartCreator.generatePieChart(ChartCreator.asignarPieDataset(Array2DtoArrayPlane),
                "Estadisticas de Usuarios Registrados por Vinculo");
        bufferedImage = chart.createBufferedImage(500, 500);
        image = Image.getInstance(EncoderUtil.encode(bufferedImage, "png"));
        image.scaleAbsolute(300, 200);
        image.setAlignment(Image.MIDDLE);
        images.add(image);
        images.add(new Paragraph("\r\n"));
        chart = ChartCreator.generateBarChart(ChartCreator.asignarBarDataset(Array2DtoArrayPlane),
                "Estadisticas de Usuarios Registrados por Vinculo", "Vinculo", "Cantidad de Usuarios");
        bufferedImage = chart.createBufferedImage(500, 400);
        image = Image.getInstance(EncoderUtil.encode(bufferedImage, "png"));
        image.scaleAbsolute(200, 200);
        image.setAlignment(Image.MIDDLE);
        Salida.add(new Paragraph(
                "* Ver Anexo: Diagrama de Barras: Estadisticas de Usuarios Registrados por Vinculo"));
        Salida.add(new Paragraph("\r\n"));
        images.add(image);
        images.add(new Paragraph("\r\n"));
    }
    if (tipo) {
        rs = controlador.consultarUsuariosRegistradosPorTipoUsuario();
        resultadosTabla = biblioteca.reportes.PdfCreator.resultSetToArrayList(rs);
        for (int i = 0; i < resultadosTabla.size(); i++) {
            if (resultadosTabla.get(i).get(0).equals("3"))
                resultadosTabla.get(i).set(0, "Normal");
            else if (resultadosTabla.get(i).get(0).equals("2"))
                resultadosTabla.get(i).set(0, "Catalogador");
            else if (resultadosTabla.get(i).get(0).equals("1"))
                resultadosTabla.get(i).set(0, "Administrador");
            else if (resultadosTabla.get(i).get(0).equals("0"))
                resultadosTabla.remove(i);
        }
        Array2DtoArrayPlane = biblioteca.reportes.PdfCreator.Array2DtoArrayPlane(resultadosTabla, 0, 1);
        for (int i = 1; i < resultadosTabla.size(); i++)
            total += Integer.parseInt(resultadosTabla.get(i).get(resultadosTabla.get(i).size() - 1));
        tabla = biblioteca.reportes.PdfCreator.arrayListToStatisticTable(resultadosTabla, total, salida);
        Salida.add(new Paragraph("Estadisticas de Usuarios Registrados por Tipo de Usuario"));
        Salida.add(new Paragraph("\r\n"));
        Salida.add(tabla);
        Salida.add(new Paragraph("\r\n"));
        Salida.add(new Paragraph("* Ver Anexo: Diagrama de Pastel: Estadisticas de Usuarios Tipo de Usuario"));
        Salida.add(new Paragraph("\r\n"));
        chart = ChartCreator.generatePieChart(ChartCreator.asignarPieDataset(Array2DtoArrayPlane),
                "Estadisticas de Usuarios Tipo de Usuario");
        bufferedImage = chart.createBufferedImage(450, 400);
        image = Image.getInstance(EncoderUtil.encode(bufferedImage, "png"));
        image.scaleAbsolute(250, 200);
        image.setAlignment(Image.MIDDLE);
        images.add(image);
        images.add(new Paragraph("\r\n"));
        chart = ChartCreator.generateBarChart(ChartCreator.asignarBarDataset(Array2DtoArrayPlane),
                "Estadisticas de Usuarios Registrados por Tipo de Usuario", "Tipo de Usuario",
                "Cantidad de Usuarios");
        bufferedImage = chart.createBufferedImage(600, 400);
        image = Image.getInstance(EncoderUtil.encode(bufferedImage, "png"));
        image.scaleAbsolute(300, 200);
        image.setAlignment(Image.MIDDLE);
        Salida.add(new Paragraph(
                "* Ver Anexo: Diagrama de Barras: Estadisticas de Usuarios Registrados por Genero"));
        Salida.add(new Paragraph("\r\n"));
        images.add(image);
        images.add(new Paragraph("\r\n"));
    }
    if (estado) {
        rs = controlador.consultarUsuariosRegistradosPorEstado();
        resultadosTabla = biblioteca.reportes.PdfCreator.resultSetToArrayList(rs);
        for (int i = 0; i < resultadosTabla.size(); i++) {
            if (resultadosTabla.get(i).get(0).equals("t") || resultadosTabla.get(i).get(0).equals("T"))
                resultadosTabla.get(i).set(0, "Activo");
            if (resultadosTabla.get(i).get(0).equals("f") || resultadosTabla.get(i).get(0).equals("F"))
                resultadosTabla.get(i).set(0, "Inactivo");
        }
        Array2DtoArrayPlane = biblioteca.reportes.PdfCreator.Array2DtoArrayPlane(resultadosTabla, 0, 1);
        for (int i = 1; i < resultadosTabla.size(); i++)
            total += Integer.parseInt(resultadosTabla.get(i).get(resultadosTabla.get(i).size() - 1));
        tabla = biblioteca.reportes.PdfCreator.arrayListToStatisticTable(resultadosTabla, total, salida);
        Salida.add(new Paragraph("Estadisticas de Usuarios Registrados por Estado de Cuenta"));
        Salida.add(new Paragraph("\r\n"));
        Salida.add(tabla);
        Salida.add(new Paragraph("\r\n"));
        Salida.add(new Paragraph(
                "* Ver Anexo: Diagrama de Pastel: Estadisticas de Usuarios por Estado de Cuenta"));
        Salida.add(new Paragraph("\r\n"));
        chart = ChartCreator.generatePieChart(ChartCreator.asignarPieDataset(Array2DtoArrayPlane),
                "Estadisticas de Usuarios por Estado de Cuenta");
        bufferedImage = chart.createBufferedImage(450, 400);
        image = Image.getInstance(EncoderUtil.encode(bufferedImage, "png"));
        image.scaleAbsolute(250, 200);
        image.setAlignment(Image.MIDDLE);
        images.add(image);
        images.add(new Paragraph("\r\n"));
        chart = ChartCreator.generateBarChart(ChartCreator.asignarBarDataset(Array2DtoArrayPlane),
                "Estadisticas de Usuarios Registrados por Estado de Cuenta", "Estado de Cuenta",
                "Cantidad de Usuarios");
        bufferedImage = chart.createBufferedImage(600, 400);
        image = Image.getInstance(EncoderUtil.encode(bufferedImage, "png"));
        image.scaleAbsolute(300, 200);
        image.setAlignment(Image.MIDDLE);
        Salida.add(new Paragraph(
                "* Ver Anexo: Diagrama de Barras: Estadisticas de Usuarios Registrados por Estado de Cuenta"));
        Salida.add(new Paragraph("\r\n"));
        images.add(image);
        images.add(new Paragraph("\r\n"));
    }
    if (area) {
        total = 0;
        rs = controlador.consultarUsuariosRegistradosPorArea();
        resultadosTabla = biblioteca.reportes.PdfCreator.resultSetToArrayList(rs);
        Array2DtoArrayPlane = biblioteca.reportes.PdfCreator.Array2DtoArrayPlane(resultadosTabla, 0, 2);
        for (int i = 1; i < resultadosTabla.size(); i++)
            total += Integer.parseInt(resultadosTabla.get(i).get(resultadosTabla.get(i).size() - 1));
        tabla = biblioteca.reportes.PdfCreator.arrayListToStatisticTable(resultadosTabla, total, salida);
        Salida.add(new Paragraph("Areas con ms Documentos Catalogados"));
        Salida.add(new Paragraph("\r\n"));
        Salida.add(tabla);
        Salida.add(new Paragraph("\r\n"));
        Salida.add(new Paragraph(
                "* Ver Anexo Diagrama de Pastel y Diagrama de Barras para Areas con ms Documentos Catalogados"));
        Salida.add(new Paragraph("\r\n"));
        chart = ChartCreator.generatePieChart(ChartCreator.asignarPieDataset(Array2DtoArrayPlane),
                "Areas con ms Documentos Catalogados");
        bufferedImage = chart.createBufferedImage(600, 600);
        image = Image.getInstance(EncoderUtil.encode(bufferedImage, "png"));
        image.scaleAbsolute(300, 300);
        image.setAlignment(Image.MIDDLE);
        images.add(image);
        images.add(new Paragraph("\r\n"));
        chart = ChartCreator.generateBarChart(ChartCreator.asignarBarDataset(Array2DtoArrayPlane),
                "Areas con ms Documentos Catalogados", "Area_ID", "Numero de Documentos Catalogados");
        bufferedImage = chart.createBufferedImage(900, 500);
        image = Image.getInstance(EncoderUtil.encode(bufferedImage, "png"));
        image.scaleAbsolute(450, 250);
        image.setAlignment(Image.MIDDLE);
        images.add(image);
        images.add(new Paragraph("\r\n"));
    }
    if (!images.isEmpty()) {
        Salida.add(new Paragraph("Anexos:"));
        Salida.add(new Paragraph("\r\n"));
    }
    for (int i = 0; i < images.size(); i++) {
        Salida.add(images.get(i));
    }
    return Salida;
}

From source file:biblioteca.database2.controladores.ControladorEstadisticas.java

License:Open Source License

public ArrayList<Element> ConsultarDocumentosCatalogados(boolean dow, boolean dom, boolean month, String year,
        String[] franja, String[] desde, String[] Hasta, boolean area, boolean autor, boolean doc_tipo,
        boolean pc, boolean usuario, int salida)
        throws BadElementException, MalformedURLException, IOException {

    ArrayList<Element> Salida = new ArrayList<Element>(100);
    ArrayList<Element> Images = new ArrayList<Element>(100);
    DaoEstadisticas controlador = new DaoEstadisticas();
    ResultSet rs;//  w  ww.  ja  va  2  s. c om
    JFreeChart chart;
    BufferedImage bufferedImage;
    Image image;
    ArrayList<ArrayList<String>> resultadosTabla;
    ArrayList<String> Array2DtoArrayPlane;
    PdfPTable tabla = null;
    int total = 0;
    if (dow) {
        ArrayList<String> tmp = controlador.consultarDocumentosCatalogadosPorDoW();
        float promedio = promedio(tmp, 2);
        Salida.add(new Paragraph("Resultados de Documentos Catalogados para los das de la semana"));
        Salida.add(new Paragraph("\r\n"));
        Salida.add(
                biblioteca.reportes.PdfCreator.plainArrayListToPdfPTable(agregarPorcentajesALista(tmp, 2), 3));
        Salida.add(new Paragraph("Promedio " + promedio));
        Salida.add(new Paragraph("\r\n"));
        Salida.add(new Paragraph(
                "* Ver Anexo: Diagrama de Pastel: Documentos Catalogados para los dias de la Semana"));
        Salida.add(new Paragraph("\r\n"));
        chart = ChartCreator.generatePieChart(ChartCreator.asignarPieDataset(tmp),
                "Documentos Catalogados para los Das de la Semana");
        bufferedImage = chart.createBufferedImage(400, 300);
        image = Image.getInstance(EncoderUtil.encode(bufferedImage, "png"));
        image.scaleAbsolute(300, 200);
        image.setAlignment(Image.MIDDLE);
        Images.add(image);
        Images.add(new Paragraph("\r\n"));
        Salida.add(new Paragraph(
                "* Ver Anexo: Diagrama de Barras: Documentos Catalogados para los Das de la Semana"));
        Salida.add(new Paragraph("\r\n"));
        chart = ChartCreator.generateBarChart(ChartCreator.asignarBarDataset(tmp),
                "Documentos Catalogados para los Das de la Semana", "Das de la Semana",
                "Cantidad de Documentos Catalogados");
        bufferedImage = chart.createBufferedImage(700, 300);
        image = Image.getInstance(EncoderUtil.encode(bufferedImage, "png"));
        image.scaleAbsolute(400, 200);
        image.setAlignment(Image.MIDDLE);
        Images.add(image);
        Images.add(new Paragraph("\r\n"));
    }
    if (dom) {
        rs = controlador.consultarDocumentosCatalogadosPorDoM();
        resultadosTabla = biblioteca.reportes.PdfCreator.resultSetToArrayList(rs);
        Array2DtoArrayPlane = biblioteca.reportes.PdfCreator.Array2DtoArrayPlane(resultadosTabla, 0, 1);
        for (int i = 1; i < resultadosTabla.size(); i++)
            total += Integer.parseInt(resultadosTabla.get(i).get(resultadosTabla.get(i).size() - 1));
        tabla = biblioteca.reportes.PdfCreator.arrayListToStatisticTable(resultadosTabla, total, salida);
        Salida.add(new Paragraph("Resultados de Documentos Catalogados para los das del mes"));
        Salida.add(new Paragraph("\r\n"));
        Salida.add(tabla);
        Salida.add(new Paragraph("\r\n"));
        Salida.add(
                new Paragraph("* Ver Anexo: Diagrama de Pastel: Documentos Catalogados para los dias del mes"));
        Salida.add(new Paragraph("\r\n"));
        chart = ChartCreator.generatePieChart(ChartCreator.asignarPieDataset(Array2DtoArrayPlane),
                "Documentos Catalogados para los das del mes");
        bufferedImage = chart.createBufferedImage(500, 600);
        image = Image.getInstance(EncoderUtil.encode(bufferedImage, "png"));
        image.scaleAbsolute(250, 300);
        image.setAlignment(Image.MIDDLE);
        Images.add(image);
        Images.add(new Paragraph("\r\n"));
        chart = ChartCreator.generateBarChart(ChartCreator.asignarBarDataset(Array2DtoArrayPlane),
                "Documentos Catalogados para los das del Mes", "Das del mes", "Documentos Catalogados");
        bufferedImage = chart.createBufferedImage(1000, 500);
        image = Image.getInstance(EncoderUtil.encode(bufferedImage, "png"));
        image.scaleAbsolute(500, 250);
        image.setAlignment(Image.MIDDLE);
        Salida.add(
                new Paragraph("* Ver Anexo: Diagrama de Barras: Documentos Catalogados para los dias del mes"));
        Salida.add(new Paragraph("\r\n"));
        Images.add(image);
        Images.add(new Paragraph("\r\n"));
    }
    if (month) {
        ArrayList<String> tmp = controlador.consultarDocumentosCatalogadosPorMes();
        Salida.add(new Paragraph("Resultados de Documentos Catalogados para los meses"));
        Salida.add(new Paragraph("\r\n"));
        float promedio = promedio(tmp, 2);
        Salida.add(
                biblioteca.reportes.PdfCreator.plainArrayListToPdfPTable(agregarPorcentajesALista(tmp, 2), 3));
        Salida.add(new Paragraph("Promedio " + promedio));
        Salida.add(new Paragraph("\r\n"));
        Salida.add(new Paragraph("* Ver Anexo: Diagrama de Pastel: Documentos Catalogados para los meses"));
        Salida.add(new Paragraph("\r\n"));
        chart = ChartCreator.generatePieChart(ChartCreator.asignarPieDataset(tmp),
                "Documentos Catalogados para los meses");
        bufferedImage = chart.createBufferedImage(500, 300);
        image = Image.getInstance(EncoderUtil.encode(bufferedImage, "png"));
        image.scaleAbsolute(350, 200);
        image.setAlignment(Image.MIDDLE);
        Images.add(image);
        Images.add(new Paragraph("\r\n"));
        Salida.add(new Paragraph("* Ver Anexo: Diagrama de Barras: Documentos Catalogados para los meses"));
        Salida.add(new Paragraph("\r\n"));
        chart = ChartCreator.generateBarChart(ChartCreator.asignarBarDataset(tmp),
                "Documentos Catalogados para los Meses", "Meses", "Documentos Catalogados");
        bufferedImage = chart.createBufferedImage(1000, 600);
        image = Image.getInstance(EncoderUtil.encode(bufferedImage, "png"));
        image.scaleAbsolute(500, 300);
        image.setAlignment(Image.MIDDLE);
        Images.add(image);
        Images.add(new Paragraph("\r\n"));
    }
    if (year != null) {
        ArrayList<String> tmp = controlador.consultarDocumentosCatalogadosPorYear(year);
        Salida.add(new Paragraph("Resultados para el ao seleccionado"));
        Salida.add(new Paragraph("\r\n"));
        Salida.add(new Paragraph("Ao: " + tmp.get(0) + ", Resultados:" + tmp.get(1)));
        Salida.add(new Paragraph("\r\n"));
    }
    if (franja != null) {
        ArrayList<String> tmp = controlador.consultarDocumentosCatalogadosPorFranja(franja[0], franja[1]);
        Salida.add(new Paragraph("Resultados para la franja seleccionada"));
        Salida.add(new Paragraph("\r\n"));
        Salida.add(new Paragraph("Franja:" + tmp.get(0) + ", Resultados:" + tmp.get(1)));
        Salida.add(new Paragraph("\r\n"));
    }
    if (desde != null && Hasta != null) {
        ArrayList<String> tmp = controlador.consultarDocumentosCatalogadosPorIntervalo(
                desde[0] + "-" + desde[1] + "-" + desde[2], Hasta[0] + "-" + Hasta[1] + "-" + Hasta[2]);
        Salida.add(new Paragraph("Resultados para el intervalo de tiempo seleccionado"));
        Salida.add(new Paragraph("\r\n"));
        Salida.add(new Paragraph("Intervalo de Tiempo: " + tmp.get(0) + ", Resultados:" + tmp.get(1)));
        Salida.add(new Paragraph("\r\n"));
    }
    if (area) {
        total = 0;
        rs = controlador.consultarDocumentosCatalogadosPorArea();
        resultadosTabla = biblioteca.reportes.PdfCreator.resultSetToArrayList(rs);
        Array2DtoArrayPlane = biblioteca.reportes.PdfCreator.Array2DtoArrayPlane(resultadosTabla, 0, 2);
        for (int i = 1; i < resultadosTabla.size(); i++)
            total += Integer.parseInt(resultadosTabla.get(i).get(resultadosTabla.get(i).size() - 1));
        tabla = biblioteca.reportes.PdfCreator.arrayListToStatisticTable(resultadosTabla, total, salida);
        Salida.add(new Paragraph("Areas con ms Documentos Catalogados"));
        Salida.add(new Paragraph("\r\n"));
        Salida.add(tabla);
        Salida.add(new Paragraph("\r\n"));
        Salida.add(new Paragraph(
                "* Ver Anexo Diagrama de Pastel y Diagrama de Barras para Areas con ms Documentos Catalogados"));
        Salida.add(new Paragraph("\r\n"));
        chart = ChartCreator.generatePieChart(ChartCreator.asignarPieDataset(Array2DtoArrayPlane),
                "Areas con ms Documentos Catalogados");
        bufferedImage = chart.createBufferedImage(600, 600);
        image = Image.getInstance(EncoderUtil.encode(bufferedImage, "png"));
        image.scaleAbsolute(300, 300);
        image.setAlignment(Image.MIDDLE);
        Images.add(image);
        Images.add(new Paragraph("\r\n"));
        chart = ChartCreator.generateBarChart(ChartCreator.asignarBarDataset(Array2DtoArrayPlane),
                "Areas con ms Documentos Catalogados", "Area_ID", "Numero de Documentos Catalogados");
        bufferedImage = chart.createBufferedImage(900, 500);
        image = Image.getInstance(EncoderUtil.encode(bufferedImage, "png"));
        image.scaleAbsolute(450, 250);
        image.setAlignment(Image.MIDDLE);
        Images.add(image);
        Images.add(new Paragraph("\r\n"));
    }

    if (autor) {
        total = 0;
        rs = controlador.consultarDocumentosCatalogadosPorAutor();
        resultadosTabla = biblioteca.reportes.PdfCreator.resultSetToArrayList(rs);
        Array2DtoArrayPlane = biblioteca.reportes.PdfCreator.Array2DtoArrayPlane(resultadosTabla, 1, 3);
        for (int i = 1; i < resultadosTabla.size(); i++)
            total += Integer.parseInt(resultadosTabla.get(i).get(resultadosTabla.get(i).size() - 1));
        tabla = biblioteca.reportes.PdfCreator.arrayListToStatisticTable(resultadosTabla, total, salida);
        Salida.add(new Paragraph("Autores con ms Documentos Catalogados"));
        Salida.add(new Paragraph("\r\n"));
        Salida.add(tabla);
        Salida.add(new Paragraph("\r\n"));
        Salida.add(new Paragraph(
                "* Ver Anexo Diagrama de Pastel y Diagrama de Barras para Autores con ms Documentos Catalogados"));
        Salida.add(new Paragraph("\r\n"));
        chart = ChartCreator.generatePieChart(ChartCreator.asignarPieDataset(Array2DtoArrayPlane),
                "Autores con ms Documentos Catalogados");
        bufferedImage = chart.createBufferedImage(600, 600);
        image = Image.getInstance(EncoderUtil.encode(bufferedImage, "png"));
        image.scaleAbsolute(300, 300);
        image.setAlignment(Image.MIDDLE);
        Images.add(image);
        Images.add(new Paragraph("\r\n"));
        chart = ChartCreator.generateBarChart(ChartCreator.asignarBarDataset(Array2DtoArrayPlane),
                "Autores con ms Documentos Catalogados", "Nombre Autor", "Numero de Documentos Catalogados");
        bufferedImage = chart.createBufferedImage(1000, 600);
        image = Image.getInstance(EncoderUtil.encode(bufferedImage, "png"));
        image.scaleAbsolute(400, 300);
        image.setAlignment(Image.MIDDLE);
        Images.add(image);
        Images.add(new Paragraph("\r\n"));
    }
    if (doc_tipo) {
        total = 0;
        rs = controlador.consultarDocumentosCatalogadosPorTipoMaterial();
        resultadosTabla = biblioteca.reportes.PdfCreator.resultSetToArrayList(rs);
        Array2DtoArrayPlane = biblioteca.reportes.PdfCreator.Array2DtoArrayPlane(resultadosTabla, 0, 1);
        for (int i = 1; i < resultadosTabla.size(); i++)
            total += Integer.parseInt(resultadosTabla.get(i).get(resultadosTabla.get(i).size() - 1));
        tabla = biblioteca.reportes.PdfCreator.arrayListToStatisticTable(resultadosTabla, total, salida);
        Salida.add(new Paragraph("Tipos de Material con ms Documentos Catalogados"));
        Salida.add(new Paragraph("\r\n"));
        Salida.add(tabla);
        Salida.add(new Paragraph("\r\n"));
        Salida.add(new Paragraph(
                "* Ver Anexo Diagrama de Pastel y Diagrama de Barras para Tipos de Material con ms Documentos Catalogados"));
        Salida.add(new Paragraph("\r\n"));
        chart = ChartCreator.generatePieChart(ChartCreator.asignarPieDataset(Array2DtoArrayPlane),
                "Tipos de Material con ms Documentos Catalogados");
        bufferedImage = chart.createBufferedImage(600, 600);
        image = Image.getInstance(EncoderUtil.encode(bufferedImage, "png"));
        bufferedImage = chart.createBufferedImage(300, 300);
        image = Image.getInstance(EncoderUtil.encode(bufferedImage, "png"));
        image.setAlignment(Image.MIDDLE);
        Images.add(image);
        Images.add(new Paragraph("\r\n"));
        chart = ChartCreator.generateBarChart(ChartCreator.asignarBarDataset(Array2DtoArrayPlane),
                "Tipos de Material con ms Documentos Catalogados", "Tipo de Material",
                "Numero de Documentos Catalogados");
        bufferedImage = chart.createBufferedImage(900, 500);
        image = Image.getInstance(EncoderUtil.encode(bufferedImage, "png"));
        image.scaleAbsolute(450, 250);
        image.setAlignment(Image.MIDDLE);
        Images.add(image);
        Images.add(new Paragraph("\r\n"));
    }
    if (pc) {
        total = 0;
        rs = controlador.consultarDocumentosCatalogadosPorPalabraClave();
        resultadosTabla = biblioteca.reportes.PdfCreator.resultSetToArrayList(rs);
        Array2DtoArrayPlane = biblioteca.reportes.PdfCreator.Array2DtoArrayPlane(resultadosTabla, 0, 1);
        for (int i = 1; i < resultadosTabla.size(); i++)
            total += Integer.parseInt(resultadosTabla.get(i).get(resultadosTabla.get(i).size() - 1));
        tabla = biblioteca.reportes.PdfCreator.arrayListToStatisticTable(resultadosTabla, total, salida);
        Salida.add(new Paragraph("Palabras Clave con ms Documentos Catalogados"));
        Salida.add(new Paragraph("\r\n"));
        Salida.add(tabla);
        Salida.add(new Paragraph("\r\n"));
        Salida.add(new Paragraph(
                "* Ver Anexo Diagrama de Pastel y Diagrama de Barras para Palabras Clave con ms Documentos Catalogados"));
        Salida.add(new Paragraph("\r\n"));
        chart = ChartCreator.generatePieChart(ChartCreator.asignarPieDataset(Array2DtoArrayPlane),
                "Palabras Clave con ms Documentos Catalogados");
        bufferedImage = chart.createBufferedImage(500, 500);
        image = Image.getInstance(EncoderUtil.encode(bufferedImage, "png"));
        image.scaleAbsolute(250, 250);
        image.setAlignment(Image.MIDDLE);
        Images.add(image);
        Images.add(new Paragraph("\r\n"));
        chart = ChartCreator.generateBarChart(ChartCreator.asignarBarDataset(Array2DtoArrayPlane),
                "Palabras Clave con ms Documentos Catalogados", "Palabras Clave",
                "Numero de Documentos Catalogados");
        bufferedImage = chart.createBufferedImage(900, 500);
        image = Image.getInstance(EncoderUtil.encode(bufferedImage, "png"));
        image = Image.getInstance(EncoderUtil.encode(bufferedImage, "png"));
        image.scaleAbsolute(450, 250);
        Images.add(image);
        Images.add(new Paragraph("\r\n"));
    }
    if (usuario) {
        total = 0;
        rs = controlador.consultarDocumentosCatalogadosPorUsuarios();
        resultadosTabla = biblioteca.reportes.PdfCreator.resultSetToArrayList(rs);
        Array2DtoArrayPlane = biblioteca.reportes.PdfCreator.Array2DtoArrayPlane(resultadosTabla, 0, 2);
        for (int i = 1; i < resultadosTabla.size(); i++)
            total += Integer.parseInt(resultadosTabla.get(i).get(resultadosTabla.get(i).size() - 1));
        tabla = biblioteca.reportes.PdfCreator.arrayListToStatisticTable(resultadosTabla, total, salida);
        Salida.add(new Paragraph("Usuarios que mas Catalogan Documentos"));
        Salida.add(new Paragraph("\r\n"));
        Salida.add(tabla);
        Salida.add(new Paragraph("\r\n"));
        Salida.add(new Paragraph(
                "* Ver Anexo Diagrama de Pastel y Diagrama de Barras para Usuarios que mas Catalogan"));
        Salida.add(new Paragraph("\r\n"));
        chart = ChartCreator.generatePieChart(ChartCreator.asignarPieDataset(Array2DtoArrayPlane),
                "Usuarios que mas Catalogan");
        bufferedImage = chart.createBufferedImage(500, 500);
        image = Image.getInstance(EncoderUtil.encode(bufferedImage, "png"));
        image.scaleAbsolute(250, 250);
        image.setAlignment(Image.MIDDLE);
        Images.add(image);
        Images.add(new Paragraph("\r\n"));
        chart = ChartCreator.generateBarChart(ChartCreator.asignarBarDataset(Array2DtoArrayPlane),
                "Usuarios que mas Catalogan", "Username", "Numero de Documentos Catalogados");
        bufferedImage = chart.createBufferedImage(900, 500);
        image = Image.getInstance(EncoderUtil.encode(bufferedImage, "png"));
        image.scaleAbsolute(450, 250);
        image.setAlignment(Image.MIDDLE);
        Images.add(image);
        Images.add(new Paragraph("\r\n"));
    }
    if (!Images.isEmpty()) {
        Salida.add(new Paragraph("Anexos:"));
        Salida.add(new Paragraph("\r\n"));
    }
    for (int i = 0; i < Images.size(); i++) {
        Salida.add(Images.get(i));
    }
    return Salida;
}