Example usage for com.lowagie.text Element ALIGN_LEFT

List of usage examples for com.lowagie.text Element ALIGN_LEFT

Introduction

In this page you can find the example usage for com.lowagie.text Element ALIGN_LEFT.

Prototype

int ALIGN_LEFT

To view the source code for com.lowagie.text Element ALIGN_LEFT.

Click Source Link

Document

A possible value for paragraph alignment.

Usage

From source file:jm.Reporte.java

License:GNU General Public License

public void correos(HttpServletResponse response, ResultSet registros) {
    /* inicio PDF */
    Rectangle orientacion = (this.vertical) ? PageSize.A4 : PageSize.A4.rotate();
    Document document = new Document(orientacion);// paso 1
    document.setMargins(0, 0, 50, 80); /*Izquierda, derecha, tope, pie */
    try {/*www . j  a  va 2  s  .co  m*/
        PdfWriter writer = PdfWriter.getInstance(document, response.getOutputStream()); // paso 2
        writer.setPageEvent(new Reporte(this.vertical, this.logo, this.titulo, this.ruc, this.subtitulo,
                this.direccion, this.sucursal, this.rep_pie));
        document.open(); // paso 3

        /* todo el cuerpo del doc es el paso 4 */

        document.add(Addons.setCabecera(this.logo, this.titulo, this.ruc, this.subtitulo, this.direccion,
                this.sucursal));

        PdfPTable tbl_det = new PdfPTable(new float[] { 20, 80 });
        String aux = "";
        String columna1 = "";
        String columna2 = "";
        boolean uno = true;
        try {
            tbl_det.addCell(
                    Addons.setCeldaPDF("SECTOR", Font.TIMES_ROMAN, 8, Font.BOLD, Element.ALIGN_CENTER, 1));
            tbl_det.addCell(Addons.setCeldaPDF("CORREOS ELECTRONICOS", Font.TIMES_ROMAN, 8, Font.BOLD,
                    Element.ALIGN_CENTER, 1));
            while (registros.next()) {
                columna1 = (registros.getString(1) != null) ? registros.getString(1) : "";
                columna2 += ((registros.getString(2) != null) ? registros.getString(2) : "") + ", ";
                if (aux.compareTo(columna1) != 0 && !uno) {
                    tbl_det.addCell(Addons.setCeldaPDF(columna1, Font.TIMES_ROMAN, 8, Font.NORMAL,
                            Element.ALIGN_LEFT, 1));
                    tbl_det.addCell(Addons.setCeldaPDF(columna2.substring(0, columna2.length() - 2),
                            Font.TIMES_ROMAN, 8, Font.NORMAL, Element.ALIGN_LEFT, 1));
                    aux = columna1;
                    columna2 = "";
                }
                uno = false;
            }
            registros.close();
        } catch (Exception e) {
            e.printStackTrace();
        }

        document.add(tbl_det);

    } catch (IllegalStateException ie) {
        ie.printStackTrace();
    } catch (DocumentException e) {
        e.printStackTrace();
    } catch (Exception e) {
        e.printStackTrace();
    }

    document.close(); // paso 5
    /* fin PDF */
}

From source file:jm.Reporte.java

License:GNU General Public License

public void activosPersonalizadosClientes(HttpServletResponse response, String[] cabTabla, float[] anchoTabla,
        ResultSet registros, DataBase objDB) {
    /* inicio PDF */
    Rectangle orientacion = (this.vertical) ? PageSize.A4 : PageSize.A4.rotate();
    Document document = new Document(orientacion);// paso 1
    document.setMargins(0, 0, 50, 80); /*Izquierda, derecha, tope, pie */
    try {//from ww  w.  ja va  2 s .com
        PdfWriter writer = PdfWriter.getInstance(document, response.getOutputStream()); // paso 2
        writer.setPageEvent(new Reporte(this.vertical, this.logo, this.titulo, this.ruc, this.subtitulo,
                this.direccion, this.sucursal, this.rep_pie));

        document.open(); // paso 3

        /* todo el cuerpo del doc es el paso 4 */

        document.add(Addons.setCabecera(this.logo, this.titulo, this.ruc, this.subtitulo, this.direccion,
                this.sucursal));

        document.add(Addons.setCabeceraTabla(cabTabla, anchoTabla));

        PdfPTable tbl_det = new PdfPTable(anchoTabla);
        try {
            while (registros.next()) {
                String persona_recibe = "";
                String num_personalizacion = (registros.getString("num_personalizacion") != null)
                        ? registros.getString("num_personalizacion")
                        : "";
                try {
                    ResultSet rs = objDB
                            .consulta("select * from tbl_activo_personalizacion where num_documento="
                                    + num_personalizacion);
                    if (rs.next()) {
                        persona_recibe = (rs.getString("persona_recibe") != null)
                                ? rs.getString("persona_recibe")
                                : "";
                        rs.close();
                    }
                } catch (Exception e) {
                    e.printStackTrace();
                }
                tbl_det.addCell(Addons.setCeldaPDF(String.valueOf(persona_recibe), Font.TIMES_ROMAN, 8,
                        Font.NORMAL, Element.ALIGN_LEFT, 1));

                String mac = (registros.getString("codigo_activo") != null)
                        ? registros.getString("codigo_activo")
                        : "";
                tbl_det.addCell(Addons.setCeldaPDF(String.valueOf(mac), Font.TIMES_ROMAN, 8, Font.NORMAL,
                        Element.ALIGN_LEFT, 1));
            }

            registros.close();
        } catch (Exception e) {
            e.printStackTrace();
        }

        document.add(tbl_det);

    } catch (IllegalStateException ie) {
        ie.printStackTrace();
    } catch (DocumentException e) {
        e.printStackTrace();
    } catch (Exception e) {
        e.printStackTrace();
    }

    document.close(); // paso 5
    /* fin PDF */
}

From source file:jm.seg.frmGeneraPdf.java

License:GNU General Public License

public void GenerarFactura(String ruta_xml, String dir, String _archivoNombre) throws FileNotFoundException {
    File _archivo = null;//  w w  w.  j a  v a2 s.  c  om
    Xml xml = new Xml(ruta_xml + ".xml");

    String numeroAutorizacion = xml.getValor("numeroAutorizacion");
    String fechaAutorizacion = xml.getValor("fechaAutorizacion");

    String doc = xml.getValor("comprobante");
    try {

        _archivo = new File(dir, _archivoNombre + "xml.xml");
        if (!_archivo.exists()) {
            //byte[] bytes = (res.getString(campoBytea)!=null) ? res.getBytes(campoBytea) : null;
            RandomAccessFile archivo = new RandomAccessFile(dir + _archivoNombre + "xml.xml", "rw");
            archivo.writeBytes(doc);
            archivo.close();
        }
    } catch (Exception e) {
        e.printStackTrace();
    }

    //infoTributaria
    Xml xml2 = new Xml(ruta_xml + "xml.xml");
    String ambiente = xml2.getValor("ambiente");
    String tipoEmision = xml2.getValor("tipoEmision");
    String razonSocial = xml2.getValor("razonSocial");
    String nombreComercial = xml2.getValor("nombreComercial");
    String ruc = xml2.getValor("ruc");
    String claveAcceso = xml2.getValor("claveAcceso");
    String codDoc = xml2.getValor("codDoc");
    String numFac = xml2.getValor("estab") + "-" + xml2.getValor("ptoEmi") + "-" + xml2.getValor("secuencial");
    String dirMatriz = xml2.getValor("dirMatriz");

    String EMAIL = "";
    String DIRECCION = "";
    String ARCOTEL = "";

    int limiteAdi = xml2.getNumNodos("campoAdicional");
    try {
        //Campos Adicionales
        for (int i = 0; i < limiteAdi; i++) {
            if (xml2.getAtributo("campoAdicional", i, "nombre").toUpperCase().compareTo("EMAIL") == 0) {
                EMAIL = xml2.getValor("campoAdicional", i);
            }
            if (xml2.getAtributo("campoAdicional", i, "nombre").toUpperCase().compareTo("DIRECCION") == 0) {
                DIRECCION = xml2.getValor("campoAdicional", i);
            }
            if (xml2.getAtributo("campoAdicional", i, "nombre").toUpperCase().compareTo("ARCOTEL") == 0) {
                ARCOTEL = xml2.getValor("campoAdicional", i);
            }
        }
    } catch (Exception e) {
        e.printStackTrace();
    }

    if (ambiente.compareTo("1") == 0) {
        ambiente = "Pruebas";
    }
    if (ambiente.compareTo("2") == 0) {
        ambiente = "Produccin";
    }
    if (tipoEmision.compareTo("1") == 0) {
        tipoEmision = "Normal";
    }
    if (tipoEmision.compareTo("2") == 0) {
        tipoEmision = "Contingencia";
    }

    if (codDoc.compareTo("01") == 0) {
        //infoFactura
        String fechaEmision = xml2.getValor("fechaEmision");
        String dirEstablecimiento = xml2.getValor("dirEstablecimiento");
        String contribuyenteEspecial = xml2.getValor("contribuyenteEspecial");
        String obligadoContabilidad = xml2.getValor("obligadoContabilidad");
        String razonSocialComprador = xml2.getValor("razonSocialComprador");
        String identificacionComprador = xml2.getValor("identificacionComprador");
        String totalSinImpuestos = xml2.getValor("totalSinImpuestos");
        String totalDescuento = xml2.getValor("totalDescuento");
        String codigoPorcentaje = xml2.getValor("codigoPorcentaje");//0% 0 >>12% 2>>mo objeto de impuesto 6>>Excento al iva 7
        String baseImponible = xml2.getValor("baseImponible"); //Depende del codigo porcentaje
        String valor = xml2.getValor("valor");// va en el Iva 12%
        String importeTotal = xml2.getValor("importeTotal");//Sumatoria de todo

        //detalles
        int limite = xml2.getNumNodos("detalle");
        String[][] array = new String[limite][6];
        for (int i = 0; i < limite; i++) {
            array[i][0] = xml2.getValor("codigoPrincipal");
            array[i][1] = xml2.getValor("descripcion");
            array[i][2] = xml2.getValor("cantidad");
            array[i][3] = xml2.getValor("precioUnitario");
            array[i][4] = xml2.getValor("descuento");
            array[i][5] = xml2.getValor("precioTotalSinImpuesto");
        }

        /* inicio PDF */
        Document pdf = new Document(PageSize.A4);// paso 1
        pdf.setMargins(-35, -45, 40, 10); /*Izquierda, derecha, tope, pie */

        try {
            PdfWriter writer = PdfWriter.getInstance(pdf, new FileOutputStream(dir + claveAcceso + ".pdf"));
            pdf.open();

            //pdf.open(); // paso 3
            // Para enviar a la impresora automticamente.
            //writer.addJavaScript("this.print(false);", false);

            /* todo el cuerpo del doc es el paso 4 */
            //PdfPTable tbl_titulo = new PdfPTable(1);
            PdfPTable tbl_titulo = new PdfPTable(new float[] { 49f, 2f, 49f });
            PdfPTable tbl_1 = new PdfPTable(new float[] { 37f, 63f });
            PdfPTable tbl_2 = new PdfPTable(1);
            //titulos izquierda
            tbl_1.addCell(Addons.setLogo(dir + "logo.jpg", 250, 83, Element.ALIGN_CENTER));//ancho,alto
            tbl_1.addCell(
                    Addons.setCeldaPDF(" ", Font.STRIKETHRU, 10, Font.NORMAL, Element.ALIGN_LEFT, 0, 5, 2));
            tbl_1.addCell(Addons.setCeldaPDF(razonSocial + " '" + nombreComercial + "' ", Font.STRIKETHRU, 10,
                    Font.NORMAL, Element.ALIGN_CENTER, 0, 8, 2));
            tbl_1.addCell(Addons.setCeldaPDF("Direccin Matriz: ", Font.STRIKETHRU, 10, Font.NORMAL,
                    Element.ALIGN_LEFT, 0, 5, 0));
            tbl_1.addCell(Addons.setCeldaPDF(dirMatriz, Font.STRIKETHRU, 10, Font.NORMAL, Element.ALIGN_LEFT, 0,
                    5, 0));
            tbl_1.addCell(Addons.setCeldaPDF("Direccin Sucursal: ", Font.STRIKETHRU, 10, Font.NORMAL,
                    Element.ALIGN_LEFT, 0, 5, 0));
            tbl_1.addCell(Addons.setCeldaPDF(dirEstablecimiento, Font.STRIKETHRU, 10, Font.NORMAL,
                    Element.ALIGN_LEFT, 0, 5, 0));
            tbl_1.addCell(Addons.setCeldaPDF("Contribuyente Especial Nro. " + contribuyenteEspecial,
                    Font.STRIKETHRU, 10, Font.NORMAL, Element.ALIGN_LEFT, 0, 5, 2));
            tbl_1.addCell(Addons.setCeldaPDF("OBLIGADO A LLEVAR CONTABILIDAD: " + obligadoContabilidad,
                    Font.STRIKETHRU, 10, Font.NORMAL, Element.ALIGN_LEFT, 0, 5, 2));

            //Titulos derecha
            tbl_2.addCell(Addons.setCeldaPDF("R.U.C: " + ruc, Font.STRIKETHRU, 10, Font.NORMAL,
                    Element.ALIGN_LEFT, 0, 5));
            tbl_2.addCell(Addons.setCeldaPDF("F A C T U R A ", Font.STRIKETHRU, 10, Font.NORMAL,
                    Element.ALIGN_LEFT, 0, 5));
            tbl_2.addCell(Addons.setCeldaPDF("No. " + numFac, Font.STRIKETHRU, 10, Font.NORMAL,
                    Element.ALIGN_LEFT, 0, 5));
            tbl_2.addCell(Addons.setCeldaPDF("NMERO DE AUTORIZACIN", Font.STRIKETHRU, 10, Font.NORMAL,
                    Element.ALIGN_LEFT, 0, 5));
            tbl_2.addCell(Addons.setCeldaPDF(numeroAutorizacion, Font.STRIKETHRU, 10, Font.NORMAL,
                    Element.ALIGN_LEFT, 0, 5));
            tbl_2.addCell(Addons.setCeldaPDF("FECHA Y HORA DE AUTORIZACION", Font.STRIKETHRU, 10, Font.NORMAL,
                    Element.ALIGN_LEFT, 0, 5));
            tbl_2.addCell(Addons.setCeldaPDF(fechaAutorizacion, Font.STRIKETHRU, 10, Font.NORMAL,
                    Element.ALIGN_LEFT, 0, 5));
            tbl_2.addCell(Addons.setCeldaPDF("AMBIENTE: " + ambiente, Font.STRIKETHRU, 10, Font.NORMAL,
                    Element.ALIGN_LEFT, 0, 5));
            tbl_2.addCell(Addons.setCeldaPDF("EMISIN:  " + tipoEmision, Font.STRIKETHRU, 10, Font.NORMAL,
                    Element.ALIGN_LEFT, 0, 5));
            tbl_2.addCell(Addons.setCeldaPDF("CLAVE DE ACCESO", Font.STRIKETHRU, 10, Font.NORMAL,
                    Element.ALIGN_LEFT, 0, 5));
            tbl_2.addCell(Addons.setBarCode(this.getBarcode(writer, claveAcceso)));//ancho,alto

            tbl_titulo.addCell(Addons.setCeldaPDF(tbl_1, 0, 1));
            tbl_titulo.addCell(Addons.setCeldaPDF(" ", Font.TIMES_ROMAN, 1, Font.NORMAL, 0, 0));
            tbl_titulo.addCell(Addons.setCeldaPDF(tbl_2, 0, 1));
            tbl_titulo.addCell(Addons.setFilaBlanco(3, 20));
            pdf.add(tbl_titulo);

            //Informacion Cliente
            PdfPTable tbl_info = new PdfPTable(1);
            PdfPTable tbl_info1 = new PdfPTable(new float[] { 32f, 43f, 25f });
            tbl_info1.addCell(Addons.setCeldaPDF("Razn Social / Nombres y Apellidos: ", Font.STRIKETHRU, 10,
                    Font.NORMAL, Element.ALIGN_LEFT, 0, 8));
            tbl_info1.addCell(Addons.setCeldaPDF(razonSocialComprador, Font.STRIKETHRU, 10, Font.NORMAL,
                    Element.ALIGN_LEFT, 0, 8));
            tbl_info1.addCell(Addons.setCeldaPDF("RUC/CI: " + identificacionComprador, Font.STRIKETHRU, 10,
                    Font.NORMAL, Element.ALIGN_LEFT, 0, 8));
            tbl_info1.addCell(Addons.setCeldaPDF("Fecha de emisin:    " + fechaEmision, Font.STRIKETHRU, 10,
                    Font.NORMAL, Element.ALIGN_LEFT, 0, 8, 1));
            tbl_info1.addCell(Addons.setCeldaPDF("DIRECCION: " + DIRECCION, Font.STRIKETHRU, 10, Font.NORMAL,
                    Element.ALIGN_LEFT, 0, 8, 2));
            tbl_info.addCell(Addons.setCeldaPDF(tbl_info1, 0, 1));
            tbl_info.addCell(Addons.setFilaBlanco(3, 20));
            pdf.add(tbl_info);

            //Detalles
            PdfPTable tbl_det = new PdfPTable(1);
            PdfPTable tbl_det1 = new PdfPTable(new float[] { 10f, 10f, 50f, 10f, 10f, 10f });

            tbl_det1.addCell(Addons.setCeldaPDF("Cod. Principal", Font.STRIKETHRU, 10, Font.NORMAL,
                    Element.ALIGN_CENTER, 1, 5));
            tbl_det1.addCell(
                    Addons.setCeldaPDF("Cant.", Font.STRIKETHRU, 10, Font.NORMAL, Element.ALIGN_CENTER, 1, 5));
            tbl_det1.addCell(Addons.setCeldaPDF("Descripcin", Font.STRIKETHRU, 10, Font.NORMAL,
                    Element.ALIGN_CENTER, 1, 5));
            tbl_det1.addCell(Addons.setCeldaPDF("Precio Unitario", Font.STRIKETHRU, 10, Font.NORMAL,
                    Element.ALIGN_CENTER, 1, 5));
            tbl_det1.addCell(
                    Addons.setCeldaPDF("Desc.", Font.STRIKETHRU, 10, Font.NORMAL, Element.ALIGN_CENTER, 1, 5));
            tbl_det1.addCell(
                    Addons.setCeldaPDF("Total", Font.STRIKETHRU, 10, Font.NORMAL, Element.ALIGN_CENTER, 1, 5));
            for (int i = 0; i < limite; i++) {
                tbl_det1.addCell(Addons.setCeldaPDF(array[i][0], Font.STRIKETHRU, 10, Font.NORMAL,
                        Element.ALIGN_LEFT, 1, 5));
                tbl_det1.addCell(Addons.setCeldaPDF(array[i][2], Font.STRIKETHRU, 10, Font.NORMAL,
                        Element.ALIGN_LEFT, 1, 5));
                tbl_det1.addCell(Addons.setCeldaPDF(array[i][1], Font.STRIKETHRU, 10, Font.NORMAL,
                        Element.ALIGN_LEFT, 1, 5));
                tbl_det1.addCell(Addons.setCeldaPDF(array[i][3], Font.STRIKETHRU, 10, Font.NORMAL,
                        Element.ALIGN_RIGHT, 1, 5));
                tbl_det1.addCell(Addons.setCeldaPDF(array[i][4], Font.STRIKETHRU, 10, Font.NORMAL,
                        Element.ALIGN_RIGHT, 1, 5));
                tbl_det1.addCell(Addons.setCeldaPDF(array[i][5], Font.STRIKETHRU, 10, Font.NORMAL,
                        Element.ALIGN_RIGHT, 1, 5));
            }
            tbl_det.addCell(Addons.setCeldaPDF(tbl_det1, 0, 1));
            tbl_det.addCell(Addons.setFilaBlanco(6, 20));
            pdf.add(tbl_det);

            //Informacion Adicional
            PdfPTable tbl_info_ad = new PdfPTable(new float[] { 40f, 10f, 50f });
            PdfPTable tbl_info_ad1 = new PdfPTable(new float[] { 30f, 70f });
            PdfPTable tbl_info_ad2 = new PdfPTable(new float[] { 70f, 30f });
            //titulos izquierda
            tbl_info_ad1.addCell(Addons.setCeldaPDF("Informacin Adicional", Font.STRIKETHRU, 10, Font.NORMAL,
                    Element.ALIGN_CENTER, 0, 5, 2));
            tbl_info_ad1.addCell(Addons.setCeldaPDF("Contacto: ", Font.STRIKETHRU, 10, Font.NORMAL,
                    Element.ALIGN_LEFT, 0, 8, 0));
            tbl_info_ad1.addCell(Addons.setCeldaPDF("062609177 / 062610330", Font.STRIKETHRU, 10, Font.NORMAL,
                    Element.ALIGN_LEFT, 0, 8, 0));
            tbl_info_ad1.addCell(Addons.setCeldaPDF("Email: ", Font.STRIKETHRU, 10, Font.NORMAL,
                    Element.ALIGN_LEFT, 0, 8, 0));
            tbl_info_ad1.addCell(
                    Addons.setCeldaPDF(EMAIL, Font.STRIKETHRU, 10, Font.NORMAL, Element.ALIGN_LEFT, 0, 8, 0));
            tbl_info_ad1.addCell(Addons.setCeldaPDF("Sitio Web:", Font.STRIKETHRU, 10, Font.NORMAL,
                    Element.ALIGN_LEFT, 0, 8, 0));
            tbl_info_ad1.addCell(Addons.setCeldaPDF("www.saitel.ec", Font.STRIKETHRU, 10, Font.NORMAL,
                    Element.ALIGN_LEFT, 0, 8, 0));
            tbl_info_ad1.addCell(
                    Addons.setCeldaPDF(ARCOTEL, Font.STRIKETHRU, 10, Font.NORMAL, Element.ALIGN_LEFT, 0, 8, 2));

            //Titulos derecha
            if (codigoPorcentaje.compareTo("0") == 0) {
                tbl_info_ad2.addCell(Addons.setCeldaPDF("SUBTOTAL 12% ", Font.STRIKETHRU, 10, Font.NORMAL,
                        Element.ALIGN_LEFT, 0, 5, 2));
                tbl_info_ad2.addCell(Addons.setCeldaPDF("0.00", Font.STRIKETHRU, 10, Font.NORMAL,
                        Element.ALIGN_RIGHT, 0, 5, 2));

                tbl_info_ad2.addCell(Addons.setCeldaPDF("SUBTOTAL 0% ", Font.STRIKETHRU, 10, Font.NORMAL,
                        Element.ALIGN_CENTER, 0, 8, 0));
                tbl_info_ad2.addCell(Addons.setCeldaPDF(baseImponible, Font.STRIKETHRU, 10, Font.NORMAL,
                        Element.ALIGN_RIGHT, 0, 5, 2));

                tbl_info_ad2.addCell(Addons.setCeldaPDF("SUBTOTAL No objeto de IVA", Font.STRIKETHRU, 10,
                        Font.NORMAL, Element.ALIGN_CENTER, 0, 8, 0));
                tbl_info_ad2.addCell(Addons.setCeldaPDF("0.00", Font.STRIKETHRU, 10, Font.NORMAL,
                        Element.ALIGN_RIGHT, 0, 5, 2));

                tbl_info_ad2.addCell(Addons.setCeldaPDF("SUBTOTAL SIN IMPUESTOS", Font.STRIKETHRU, 10,
                        Font.NORMAL, Element.ALIGN_CENTER, 0, 8, 0));
                tbl_info_ad2.addCell(Addons.setCeldaPDF(totalSinImpuestos, Font.STRIKETHRU, 10, Font.NORMAL,
                        Element.ALIGN_RIGHT, 0, 5, 2));

                tbl_info_ad2.addCell(Addons.setCeldaPDF("SUBTOTAL Exento de IVA", Font.STRIKETHRU, 10,
                        Font.NORMAL, Element.ALIGN_CENTER, 0, 8, 0));
                tbl_info_ad2.addCell(Addons.setCeldaPDF(valor, Font.STRIKETHRU, 10, Font.NORMAL,
                        Element.ALIGN_RIGHT, 0, 5, 2));

                tbl_info_ad2.addCell(Addons.setCeldaPDF("DESCUENTO", Font.STRIKETHRU, 10, Font.NORMAL,
                        Element.ALIGN_CENTER, 0, 8, 0));
                tbl_info_ad2.addCell(Addons.setCeldaPDF(totalDescuento, Font.STRIKETHRU, 10, Font.NORMAL,
                        Element.ALIGN_RIGHT, 0, 5, 2));

                tbl_info_ad2.addCell(Addons.setCeldaPDF("IVA 12%", Font.STRIKETHRU, 10, Font.NORMAL,
                        Element.ALIGN_CENTER, 0, 8, 0));
                tbl_info_ad2.addCell(Addons.setCeldaPDF("0.00", Font.STRIKETHRU, 10, Font.NORMAL,
                        Element.ALIGN_RIGHT, 0, 5, 2));
            }

            if (codigoPorcentaje.compareTo("2") == 0) {
                tbl_info_ad2.addCell(Addons.setCeldaPDF("SUBTOTAL 12% ", Font.STRIKETHRU, 10, Font.NORMAL,
                        Element.ALIGN_LEFT, 1, 5));
                tbl_info_ad2.addCell(Addons.setCeldaPDF(baseImponible, Font.STRIKETHRU, 10, Font.NORMAL,
                        Element.ALIGN_RIGHT, 1, 5));

                tbl_info_ad2.addCell(Addons.setCeldaPDF("SUBTOTAL 0% ", Font.STRIKETHRU, 10, Font.NORMAL,
                        Element.ALIGN_LEFT, 1, 5));
                tbl_info_ad2.addCell(Addons.setCeldaPDF("0.00", Font.STRIKETHRU, 10, Font.NORMAL,
                        Element.ALIGN_RIGHT, 1, 5));

                tbl_info_ad2.addCell(Addons.setCeldaPDF("SUBTOTAL No objeto de IVA", Font.STRIKETHRU, 10,
                        Font.NORMAL, Element.ALIGN_LEFT, 1, 5));
                tbl_info_ad2.addCell(Addons.setCeldaPDF("0.00", Font.STRIKETHRU, 10, Font.NORMAL,
                        Element.ALIGN_RIGHT, 1, 5));

                tbl_info_ad2.addCell(Addons.setCeldaPDF("SUBTOTAL SIN IMPUESTOS", Font.STRIKETHRU, 10,
                        Font.NORMAL, Element.ALIGN_LEFT, 1, 5));
                tbl_info_ad2.addCell(Addons.setCeldaPDF(totalSinImpuestos, Font.STRIKETHRU, 10, Font.NORMAL,
                        Element.ALIGN_RIGHT, 1, 5));

                tbl_info_ad2.addCell(Addons.setCeldaPDF("SUBTOTAL Exento de IVA", Font.STRIKETHRU, 10,
                        Font.NORMAL, Element.ALIGN_LEFT, 1, 5));
                tbl_info_ad2.addCell(Addons.setCeldaPDF("0.00", Font.STRIKETHRU, 10, Font.NORMAL,
                        Element.ALIGN_RIGHT, 1, 5));

                tbl_info_ad2.addCell(Addons.setCeldaPDF("DESCUENTO", Font.STRIKETHRU, 10, Font.NORMAL,
                        Element.ALIGN_LEFT, 1, 5));
                tbl_info_ad2.addCell(Addons.setCeldaPDF(totalDescuento, Font.STRIKETHRU, 10, Font.NORMAL,
                        Element.ALIGN_RIGHT, 1, 5));

                tbl_info_ad2.addCell(Addons.setCeldaPDF("IVA 12%", Font.STRIKETHRU, 10, Font.NORMAL,
                        Element.ALIGN_LEFT, 1, 5));
                tbl_info_ad2.addCell(
                        Addons.setCeldaPDF(valor, Font.STRIKETHRU, 10, Font.NORMAL, Element.ALIGN_RIGHT, 1, 5));
            }

            tbl_info_ad2.addCell(Addons.setCeldaPDF("VALOR TOTAL", Font.STRIKETHRU, 10, Font.NORMAL,
                    Element.ALIGN_LEFT, 1, 5));
            tbl_info_ad2.addCell(Addons.setCeldaPDF(Addons.redondear(importeTotal), Font.STRIKETHRU, 10,
                    Font.NORMAL, Element.ALIGN_RIGHT, 1, 5));

            tbl_info_ad.addCell(Addons.setCeldaPDF(tbl_info_ad1, 0, 1));
            tbl_info_ad.addCell(Addons.setCeldaPDF(" ", Font.TIMES_ROMAN, 1, Font.NORMAL, 0, 0));
            tbl_info_ad.addCell(Addons.setCeldaPDF(tbl_info_ad2, 0, 1));
            pdf.add(tbl_info_ad);

        } catch (IllegalStateException ie) {
            ie.printStackTrace();
        } catch (DocumentException e) {
            e.printStackTrace();
        } finally {
        }
        pdf.close(); // paso 5
        /* fin PDF */
    }

    //Nota de credito
    if (codDoc.compareTo("04") == 0) {
        //infoFactura
        String fechaEmision = xml2.getValor("fechaEmision");
        String dirEstablecimiento = xml2.getValor("dirEstablecimiento");
        String razonSocialComprador = xml2.getValor("razonSocialComprador");
        String identificacionComprador = xml2.getValor("identificacionComprador");
        String contribuyenteEspecial = xml2.getValor("contribuyenteEspecial");
        String obligadoContabilidad = xml2.getValor("obligadoContabilidad");
        String codDocModificado = xml2.getValor("codDocModificado");
        String numDocModificado = xml2.getValor("numDocModificado");
        String fechaEmisionDocSustento = xml2.getValor("fechaEmisionDocSustento");
        String motivo = xml2.getValor("motivo");
        String totalSinImpuestos = xml2.getValor("totalSinImpuestos");

        if (codDocModificado.compareTo("01") == 0) {
            codDocModificado = "FACTURA";
        }
        if (codDocModificado.compareTo("04") == 0) {
            codDocModificado = "NOTA DE CRDITO";
        }
        if (codDocModificado.compareTo("05") == 0) {
            codDocModificado = "NOTA DE DBITO";
        }
        if (codDocModificado.compareTo("06") == 0) {
            codDocModificado = "GU?A DE REMISION";
        }
        if (codDocModificado.compareTo("07") == 0) {
            codDocModificado = "COMPROBANTE DE RETENCIN";
        }

        String codigoPorcentaje = xml2.getValor("codigoPorcentaje");//0% 0 >>12% 2>>mo objeto de impuesto 6>>Excento al iva 7
        String baseImponible = xml2.getValor("baseImponible"); //Depende del codigo porcentaje
        String valor = xml2.getValor("valor");// va en el Iva 12%

        //detalles
        int limite = xml2.getNumNodos("detalle");
        String[][] array = new String[limite][6];
        for (int i = 0; i < limite; i++) {
            array[i][0] = xml2.getValor("codigoPrincipal");
            array[i][1] = xml2.getValor("descripcion");
            array[i][2] = xml2.getValor("cantidad");
            array[i][3] = xml2.getValor("precioUnitario");
            array[i][4] = xml2.getValor("descuento");
            array[i][5] = xml2.getValor("precioTotalSinImpuesto");
        }

        /* inicio PDF */
        Document pdf = new Document(PageSize.A4);// paso 1
        pdf.setMargins(-35, -45, 40, 10); /*Izquierda, derecha, tope, pie */

        try {
            PdfWriter writer = PdfWriter.getInstance(pdf, new FileOutputStream(dir + claveAcceso + ".pdf"));
            pdf.open();

            //pdf.open(); // paso 3
            // Para enviar a la impresora automticamente.
            //writer.addJavaScript("this.print(false);", false);

            /* todo el cuerpo del doc es el paso 4 */
            //PdfPTable tbl_titulo = new PdfPTable(1);
            PdfPTable tbl_titulo = new PdfPTable(new float[] { 49f, 2f, 49f });
            PdfPTable tbl_1 = new PdfPTable(new float[] { 37f, 63f });
            PdfPTable tbl_2 = new PdfPTable(1);
            //titulos izquierda
            tbl_1.addCell(Addons.setLogo(dir + "logo.jpg", 250, 83, Element.ALIGN_CENTER));//ancho,alto
            tbl_1.addCell(
                    Addons.setCeldaPDF(" ", Font.STRIKETHRU, 10, Font.NORMAL, Element.ALIGN_LEFT, 0, 5, 2));
            tbl_1.addCell(Addons.setCeldaPDF(razonSocial + " '" + nombreComercial + "' ", Font.STRIKETHRU, 10,
                    Font.NORMAL, Element.ALIGN_CENTER, 0, 8, 2));
            tbl_1.addCell(Addons.setCeldaPDF("Direccin Matriz: ", Font.STRIKETHRU, 10, Font.NORMAL,
                    Element.ALIGN_LEFT, 0, 5, 0));
            tbl_1.addCell(Addons.setCeldaPDF(dirMatriz, Font.STRIKETHRU, 10, Font.NORMAL, Element.ALIGN_LEFT, 0,
                    5, 0));
            tbl_1.addCell(Addons.setCeldaPDF("Direccin Sucursal: ", Font.STRIKETHRU, 10, Font.NORMAL,
                    Element.ALIGN_LEFT, 0, 5, 0));
            tbl_1.addCell(Addons.setCeldaPDF(dirEstablecimiento, Font.STRIKETHRU, 10, Font.NORMAL,
                    Element.ALIGN_LEFT, 0, 5, 0));
            tbl_1.addCell(Addons.setCeldaPDF("Contribuyente Especial Nro. " + contribuyenteEspecial,
                    Font.STRIKETHRU, 10, Font.NORMAL, Element.ALIGN_LEFT, 0, 5, 2));
            tbl_1.addCell(Addons.setCeldaPDF("OBLIGADO A LLEVAR CONTABILIDAD: " + obligadoContabilidad,
                    Font.STRIKETHRU, 10, Font.NORMAL, Element.ALIGN_LEFT, 0, 5, 2));

            //Titulos derecha
            tbl_2.addCell(Addons.setCeldaPDF("R.U.C: " + ruc, Font.STRIKETHRU, 10, Font.NORMAL,
                    Element.ALIGN_LEFT, 0, 5));
            tbl_2.addCell(Addons.setCeldaPDF("F A C T U R A ", Font.STRIKETHRU, 10, Font.NORMAL,
                    Element.ALIGN_LEFT, 0, 5));
            tbl_2.addCell(Addons.setCeldaPDF("No. " + numFac, Font.STRIKETHRU, 10, Font.NORMAL,
                    Element.ALIGN_LEFT, 0, 5));
            tbl_2.addCell(Addons.setCeldaPDF("NMERO DE AUTORIZACIN", Font.STRIKETHRU, 10, Font.NORMAL,
                    Element.ALIGN_LEFT, 0, 5));
            tbl_2.addCell(Addons.setCeldaPDF(numeroAutorizacion, Font.STRIKETHRU, 10, Font.NORMAL,
                    Element.ALIGN_LEFT, 0, 5));
            tbl_2.addCell(Addons.setCeldaPDF("FECHA Y HORA DE AUTORIZACIN", Font.STRIKETHRU, 10, Font.NORMAL,
                    Element.ALIGN_LEFT, 0, 5));
            tbl_2.addCell(Addons.setCeldaPDF(fechaAutorizacion, Font.STRIKETHRU, 10, Font.NORMAL,
                    Element.ALIGN_LEFT, 0, 5));
            tbl_2.addCell(Addons.setCeldaPDF("AMBIENTE: " + ambiente, Font.STRIKETHRU, 10, Font.NORMAL,
                    Element.ALIGN_LEFT, 0, 5));
            tbl_2.addCell(Addons.setCeldaPDF("EMISIN:  " + tipoEmision, Font.STRIKETHRU, 10, Font.NORMAL,
                    Element.ALIGN_LEFT, 0, 5));
            tbl_2.addCell(Addons.setCeldaPDF("CLAVE DE ACCESO", Font.STRIKETHRU, 10, Font.NORMAL,
                    Element.ALIGN_LEFT, 0, 5));
            tbl_2.addCell(Addons.setBarCode(this.getBarcode(writer, claveAcceso)));//ancho,alto

            tbl_titulo.addCell(Addons.setCeldaPDF(tbl_1, 0, 1));
            tbl_titulo.addCell(Addons.setCeldaPDF(" ", Font.TIMES_ROMAN, 1, Font.NORMAL, 0, 0));
            tbl_titulo.addCell(Addons.setCeldaPDF(tbl_2, 0, 1));
            tbl_titulo.addCell(Addons.setFilaBlanco(3, 20));
            pdf.add(tbl_titulo);

            //Informacion Cliente
            PdfPTable tbl_info = new PdfPTable(1);
            PdfPTable tbl_info1 = new PdfPTable(new float[] { 32f, 43f, 25f });
            tbl_info1.addCell(Addons.setCeldaPDF("Razn Social / Nombres y Apellidos: ", Font.STRIKETHRU, 10,
                    Font.NORMAL, Element.ALIGN_LEFT, 0, 5));
            tbl_info1.addCell(Addons.setCeldaPDF(razonSocialComprador, Font.STRIKETHRU, 10, Font.NORMAL,
                    Element.ALIGN_LEFT, 0, 5));
            tbl_info1.addCell(Addons.setCeldaPDF("RUC/CI: " + identificacionComprador, Font.STRIKETHRU, 10,
                    Font.NORMAL, Element.ALIGN_LEFT, 0, 5));
            tbl_info1.addCell(Addons.setCeldaPDF("Fecha de emisin:" + fechaEmision, Font.STRIKETHRU, 10,
                    Font.NORMAL, Element.ALIGN_LEFT, 0, 5, 3));

            tbl_info1.addCell(Addons.setCeldaPDF(
                    "-------------------------------------------------------------------------------------------------------------",
                    Font.STRIKETHRU, 10, Font.NORMAL, Element.ALIGN_CENTER, 0, 5, 3));
            tbl_info1.addCell(Addons.setCeldaPDF("Comprobante que se Modifica:", Font.STRIKETHRU, 10,
                    Font.NORMAL, Element.ALIGN_LEFT, 0, 5));
            tbl_info1.addCell(Addons.setCeldaPDF(codDocModificado + ": " + numDocModificado, Font.STRIKETHRU,
                    10, Font.NORMAL, Element.ALIGN_LEFT, 0, 5, 2));
            tbl_info1.addCell(Addons.setCeldaPDF("Fecha emisin (Comprobante a Modificar)", Font.STRIKETHRU,
                    10, Font.NORMAL, Element.ALIGN_LEFT, 0, 5));
            tbl_info1.addCell(Addons.setCeldaPDF(fechaEmisionDocSustento, Font.STRIKETHRU, 10, Font.NORMAL,
                    Element.ALIGN_LEFT, 0, 5, 2));
            tbl_info1.addCell(Addons.setCeldaPDF("Razn de Modificacin: ", Font.STRIKETHRU, 10, Font.NORMAL,
                    Element.ALIGN_LEFT, 0, 5));
            tbl_info1.addCell(
                    Addons.setCeldaPDF(motivo, Font.STRIKETHRU, 10, Font.NORMAL, Element.ALIGN_LEFT, 0, 5, 2));
            tbl_info.addCell(Addons.setCeldaPDF(tbl_info1, 0, 1));
            tbl_info.addCell(Addons.setFilaBlanco(3, 20));
            pdf.add(tbl_info);

            //Detalles
            PdfPTable tbl_det = new PdfPTable(1);
            PdfPTable tbl_det1 = new PdfPTable(new float[] { 10f, 10f, 50f, 10f, 10f, 10f });

            tbl_det1.addCell(Addons.setCeldaPDF("Cod. Principal", Font.STRIKETHRU, 10, Font.NORMAL,
                    Element.ALIGN_CENTER, 1, 5));
            tbl_det1.addCell(
                    Addons.setCeldaPDF("Cant.", Font.STRIKETHRU, 10, Font.NORMAL, Element.ALIGN_CENTER, 1, 5));
            tbl_det1.addCell(Addons.setCeldaPDF("Descripcin", Font.STRIKETHRU, 10, Font.NORMAL,
                    Element.ALIGN_CENTER, 1, 5));
            tbl_det1.addCell(Addons.setCeldaPDF("Precio Unitario", Font.STRIKETHRU, 10, Font.NORMAL,
                    Element.ALIGN_CENTER, 1, 5));
            tbl_det1.addCell(
                    Addons.setCeldaPDF("Desc.", Font.STRIKETHRU, 10, Font.NORMAL, Element.ALIGN_CENTER, 1, 5));
            tbl_det1.addCell(
                    Addons.setCeldaPDF("Total", Font.STRIKETHRU, 10, Font.NORMAL, Element.ALIGN_CENTER, 1, 5));
            for (int i = 0; i < limite; i++) {
                tbl_det1.addCell(Addons.setCeldaPDF(array[i][0], Font.STRIKETHRU, 10, Font.NORMAL,
                        Element.ALIGN_LEFT, 1, 5));
                tbl_det1.addCell(Addons.setCeldaPDF(array[i][2], Font.STRIKETHRU, 10, Font.NORMAL,
                        Element.ALIGN_LEFT, 1, 5));
                tbl_det1.addCell(Addons.setCeldaPDF(array[i][1], Font.STRIKETHRU, 10, Font.NORMAL,
                        Element.ALIGN_LEFT, 1, 5));
                tbl_det1.addCell(Addons.setCeldaPDF(array[i][3], Font.STRIKETHRU, 10, Font.NORMAL,
                        Element.ALIGN_RIGHT, 1, 5));
                tbl_det1.addCell(Addons.setCeldaPDF(array[i][4], Font.STRIKETHRU, 10, Font.NORMAL,
                        Element.ALIGN_RIGHT, 1, 5));
                tbl_det1.addCell(Addons.setCeldaPDF(array[i][5], Font.STRIKETHRU, 10, Font.NORMAL,
                        Element.ALIGN_RIGHT, 1, 5));
            }
            tbl_det.addCell(Addons.setCeldaPDF(tbl_det1, 0, 1));
            tbl_det.addCell(Addons.setFilaBlanco(6, 20));
            pdf.add(tbl_det);

            //Informacion Adicional
            PdfPTable tbl_info_ad = new PdfPTable(new float[] { 40f, 10f, 50f });
            PdfPTable tbl_info_ad1 = new PdfPTable(new float[] { 30f, 70f });
            PdfPTable tbl_info_ad2 = new PdfPTable(new float[] { 70f, 30f });
            //titulos izquierda
            tbl_info_ad1.addCell(Addons.setCeldaPDF("Informacin Adicional", Font.STRIKETHRU, 10, Font.NORMAL,
                    Element.ALIGN_CENTER, 0, 5, 2));
            tbl_info_ad1.addCell(Addons.setCeldaPDF("Contacto: ", Font.STRIKETHRU, 10, Font.NORMAL,
                    Element.ALIGN_LEFT, 0, 8, 0));
            tbl_info_ad1.addCell(Addons.setCeldaPDF("062609177 / 062610330", Font.STRIKETHRU, 10, Font.NORMAL,
                    Element.ALIGN_LEFT, 0, 8, 0));
            tbl_info_ad1.addCell(Addons.setCeldaPDF("Email: ", Font.STRIKETHRU, 10, Font.NORMAL,
                    Element.ALIGN_LEFT, 0, 8, 0));
            tbl_info_ad1.addCell(
                    Addons.setCeldaPDF(EMAIL, Font.STRIKETHRU, 10, Font.NORMAL, Element.ALIGN_LEFT, 0, 8, 0));
            tbl_info_ad1.addCell(Addons.setCeldaPDF("Sitio Web:", Font.STRIKETHRU, 10, Font.NORMAL,
                    Element.ALIGN_LEFT, 0, 8, 0));
            tbl_info_ad1.addCell(Addons.setCeldaPDF("www.saitel.ec", Font.STRIKETHRU, 10, Font.NORMAL,
                    Element.ALIGN_LEFT, 0, 8, 0));
            tbl_info_ad1.addCell(
                    Addons.setCeldaPDF(ARCOTEL, Font.STRIKETHRU, 10, Font.NORMAL, Element.ALIGN_LEFT, 0, 8, 2));

            //Titulos derecha
            if (codigoPorcentaje.compareTo("0") == 0) {
                tbl_info_ad2.addCell(Addons.setCeldaPDF("SUBTOTAL 12% ", Font.STRIKETHRU, 10, Font.NORMAL,
                        Element.ALIGN_LEFT, 0, 5, 2));
                tbl_info_ad2.addCell(Addons.setCeldaPDF("0.00", Font.STRIKETHRU, 10, Font.NORMAL,
                        Element.ALIGN_RIGHT, 0, 5, 2));

                tbl_info_ad2.addCell(Addons.setCeldaPDF("SUBTOTAL 0% ", Font.STRIKETHRU, 10, Font.NORMAL,
                        Element.ALIGN_CENTER, 0, 8, 0));
                tbl_info_ad2.addCell(Addons.setCeldaPDF(baseImponible, Font.STRIKETHRU, 10, Font.NORMAL,
                        Element.ALIGN_RIGHT, 0, 5, 2));

                tbl_info_ad2.addCell(Addons.setCeldaPDF("SUBTOTAL No objeto de IVA", Font.STRIKETHRU, 10,
                        Font.NORMAL, Element.ALIGN_CENTER, 0, 8, 0));
                tbl_info_ad2.addCell(Addons.setCeldaPDF("0.00", Font.STRIKETHRU, 10, Font.NORMAL,
                        Element.ALIGN_RIGHT, 0, 5, 2));

                tbl_info_ad2.addCell(Addons.setCeldaPDF("SUBTOTAL SIN IMPUESTOS", Font.STRIKETHRU, 10,
                        Font.NORMAL, Element.ALIGN_CENTER, 0, 8, 0));
                tbl_info_ad2.addCell(Addons.setCeldaPDF(totalSinImpuestos, Font.STRIKETHRU, 10, Font.NORMAL,
                        Element.ALIGN_RIGHT, 0, 5, 2));

                tbl_info_ad2.addCell(Addons.setCeldaPDF("SUBTOTAL Exento de IVA", Font.STRIKETHRU, 10,
                        Font.NORMAL, Element.ALIGN_CENTER, 0, 8, 0));
                tbl_info_ad2.addCell(Addons.setCeldaPDF(valor, Font.STRIKETHRU, 10, Font.NORMAL,
                        Element.ALIGN_RIGHT, 0, 5, 2));

                tbl_info_ad2.addCell(Addons.setCeldaPDF("IVA 12%", Font.STRIKETHRU, 10, Font.NORMAL,
                        Element.ALIGN_CENTER, 0, 8, 0));
                tbl_info_ad2.addCell(Addons.setCeldaPDF("0.00", Font.STRIKETHRU, 10, Font.NORMAL,
                        Element.ALIGN_RIGHT, 0, 5, 2));
            }

            else {
                tbl_info_ad2.addCell(Addons.setCeldaPDF("SUBTOTAL 12% ", Font.STRIKETHRU, 10, Font.NORMAL,
                        Element.ALIGN_LEFT, 1, 5));
                tbl_info_ad2.addCell(Addons.setCeldaPDF(baseImponible, Font.STRIKETHRU, 10, Font.NORMAL,
                        Element.ALIGN_RIGHT, 1, 5));

                tbl_info_ad2.addCell(Addons.setCeldaPDF("SUBTOTAL 0% ", Font.STRIKETHRU, 10, Font.NORMAL,
                        Element.ALIGN_LEFT, 1, 5));
                tbl_info_ad2.addCell(Addons.setCeldaPDF("0.00", Font.STRIKETHRU, 10, Font.NORMAL,
                        Element.ALIGN_RIGHT, 1, 5));

                tbl_info_ad2.addCell(Addons.setCeldaPDF("SUBTOTAL No objeto de IVA", Font.STRIKETHRU, 10,
                        Font.NORMAL, Element.ALIGN_LEFT, 1, 5));
                tbl_info_ad2.addCell(Addons.setCeldaPDF("0.00", Font.STRIKETHRU, 10, Font.NORMAL,
                        Element.ALIGN_RIGHT, 1, 5));

                tbl_info_ad2.addCell(Addons.setCeldaPDF("SUBTOTAL SIN IMPUESTOS", Font.STRIKETHRU, 10,
                        Font.NORMAL, Element.ALIGN_LEFT, 1, 5));
                tbl_info_ad2.addCell(Addons.setCeldaPDF(totalSinImpuestos, Font.STRIKETHRU, 10, Font.NORMAL,
                        Element.ALIGN_RIGHT, 1, 5));

                tbl_info_ad2.addCell(Addons.setCeldaPDF("SUBTOTAL Exento de IVA", Font.STRIKETHRU, 10,
                        Font.NORMAL, Element.ALIGN_LEFT, 1, 5));
                tbl_info_ad2.addCell(Addons.setCeldaPDF("0.00", Font.STRIKETHRU, 10, Font.NORMAL,
                        Element.ALIGN_RIGHT, 1, 5));

                tbl_info_ad2.addCell(Addons.setCeldaPDF("IVA 12%", Font.STRIKETHRU, 10, Font.NORMAL,
                        Element.ALIGN_LEFT, 1, 5));
                tbl_info_ad2.addCell(
                        Addons.setCeldaPDF(valor, Font.STRIKETHRU, 10, Font.NORMAL, Element.ALIGN_RIGHT, 1, 5));
            }

            tbl_info_ad.addCell(Addons.setCeldaPDF(tbl_info_ad1, 0, 1));
            tbl_info_ad.addCell(Addons.setCeldaPDF(" ", Font.TIMES_ROMAN, 1, Font.NORMAL, 0, 0));
            tbl_info_ad.addCell(Addons.setCeldaPDF(tbl_info_ad2, 0, 1));
            pdf.add(tbl_info_ad);

        } catch (IllegalStateException ie) {
            ie.printStackTrace();
        } catch (DocumentException e) {
            e.printStackTrace();
        } finally {
        }
        pdf.close(); // paso 5
        /* fin PDF */
    }

    //Comprobante de retencion
    if (codDoc.compareTo("07") == 0) {
        //infoCompRetencion
        String fechaEmision = xml2.getValor("fechaEmision");
        String dirEstablecimiento = xml2.getValor("dirEstablecimiento");
        String contribuyenteEspecial = xml2.getValor("contribuyenteEspecial");
        String obligadoContabilidad = xml2.getValor("obligadoContabilidad");
        String tipoIdentificacionSujetoRetenido = xml2.getValor("tipoIdentificacionSujetoRetenido");
        String razonSocialSujetoRetenido = xml2.getValor("razonSocialSujetoRetenido");
        String identificacionSujetoRetenido = xml2.getValor("identificacionSujetoRetenido");
        String periodoFiscal = xml2.getValor("periodoFiscal");

        //detalles
        int limite = xml2.getNumNodos("impuesto");
        String[][] array = new String[limite][7];
        for (int i = 0; i < limite; i++) {
            array[i][0] = xml2.getValor("codigo", i);
            array[i][1] = xml2.getValor("codigoRetencion", i);
            array[i][2] = xml2.getValor("baseImponible", i);
            array[i][3] = xml2.getValor("porcentajeRetener", i);
            array[i][4] = xml2.getValor("valorRetenido", i);
            array[i][5] = xml2.getValor("codDocSustento", i);
            array[i][6] = xml2.getValor("numDocSustento", i);
        }

        /* inicio PDF */
        Document pdf = new Document(PageSize.A4);// paso 1
        pdf.setMargins(-35, -45, 40, 10); /*Izquierda, derecha, tope, pie */

        try {
            PdfWriter writer = PdfWriter.getInstance(pdf, new FileOutputStream(dir + claveAcceso + ".pdf"));
            pdf.open();

            //pdf.open(); // paso 3
            // Para enviar a la impresora automticamente.
            //writer.addJavaScript("this.print(false);", false);

            /* todo el cuerpo del doc es el paso 4 */
            //PdfPTable tbl_titulo = new PdfPTable(1);
            PdfPTable tbl_titulo = new PdfPTable(new float[] { 49f, 2f, 49f });
            PdfPTable tbl_1 = new PdfPTable(new float[] { 37f, 63f });
            PdfPTable tbl_2 = new PdfPTable(1);
            //titulos izquierda
            tbl_1.addCell(Addons.setLogo(dir + "logo.jpg", 250, 83, Element.ALIGN_CENTER));//ancho,alto
            tbl_1.addCell(
                    Addons.setCeldaPDF(" ", Font.STRIKETHRU, 10, Font.NORMAL, Element.ALIGN_LEFT, 0, 5, 2));
            tbl_1.addCell(Addons.setCeldaPDF(razonSocial + " '" + nombreComercial + "' ", Font.STRIKETHRU, 10,
                    Font.NORMAL, Element.ALIGN_CENTER, 0, 8, 2));
            tbl_1.addCell(Addons.setCeldaPDF("Direccin Matriz: ", Font.STRIKETHRU, 10, Font.NORMAL,
                    Element.ALIGN_LEFT, 0, 5, 0));
            tbl_1.addCell(Addons.setCeldaPDF(dirMatriz, Font.STRIKETHRU, 10, Font.NORMAL, Element.ALIGN_LEFT, 0,
                    5, 0));
            tbl_1.addCell(Addons.setCeldaPDF("Direccin Sucursal: ", Font.STRIKETHRU, 10, Font.NORMAL,
                    Element.ALIGN_LEFT, 0, 5, 0));
            tbl_1.addCell(Addons.setCeldaPDF(dirEstablecimiento, Font.STRIKETHRU, 10, Font.NORMAL,
                    Element.ALIGN_LEFT, 0, 5, 0));
            tbl_1.addCell(Addons.setCeldaPDF("Contribuyente Especial Nro. " + contribuyenteEspecial,
                    Font.STRIKETHRU, 10, Font.NORMAL, Element.ALIGN_LEFT, 0, 5, 2));
            tbl_1.addCell(Addons.setCeldaPDF("OBLIGADO A LLEVAR CONTABILIDAD: " + obligadoContabilidad,
                    Font.STRIKETHRU, 10, Font.NORMAL, Element.ALIGN_LEFT, 0, 5, 2));

            //Titulos derecha
            tbl_2.addCell(Addons.setCeldaPDF("R.U.C: " + ruc, Font.STRIKETHRU, 10, Font.NORMAL,
                    Element.ALIGN_LEFT, 0, 5));
            tbl_2.addCell(Addons.setCeldaPDF("COMPROBANTE DE RETENCIN", Font.STRIKETHRU, 10, Font.NORMAL,
                    Element.ALIGN_LEFT, 0, 5));
            tbl_2.addCell(Addons.setCeldaPDF("No. " + numFac, Font.STRIKETHRU, 10, Font.NORMAL,
                    Element.ALIGN_LEFT, 0, 5));
            tbl_2.addCell(Addons.setCeldaPDF("NMERO DE AUTORIZACIN", Font.STRIKETHRU, 10, Font.NORMAL,
                    Element.ALIGN_LEFT, 0, 5));
            tbl_2.addCell(Addons.setCeldaPDF(numeroAutorizacion, Font.STRIKETHRU, 10, Font.NORMAL,
                    Element.ALIGN_LEFT, 0, 5));
            tbl_2.addCell(Addons.setCeldaPDF("FECHA Y HORA DE AUTORIZACIN", Font.STRIKETHRU, 10, Font.NORMAL,
                    Element.ALIGN_LEFT, 0, 5));
            tbl_2.addCell(Addons.setCeldaPDF(fechaAutorizacion, Font.STRIKETHRU, 10, Font.NORMAL,
                    Element.ALIGN_LEFT, 0, 5));
            tbl_2.addCell(Addons.setCeldaPDF("AMBIENTE: " + ambiente, Font.STRIKETHRU, 10, Font.NORMAL,
                    Element.ALIGN_LEFT, 0, 5));
            tbl_2.addCell(Addons.setCeldaPDF("EMISIN:  " + tipoEmision, Font.STRIKETHRU, 10, Font.NORMAL,
                    Element.ALIGN_LEFT, 0, 5));
            tbl_2.addCell(Addons.setCeldaPDF("CLAVE DE ACCESO", Font.STRIKETHRU, 10, Font.NORMAL,
                    Element.ALIGN_LEFT, 0, 5));
            tbl_2.addCell(Addons.setBarCode(this.getBarcode(writer, claveAcceso)));//ancho,alto

            tbl_titulo.addCell(Addons.setCeldaPDF(tbl_1, 0, 1));
            tbl_titulo.addCell(Addons.setCeldaPDF(" ", Font.TIMES_ROMAN, 1, Font.NORMAL, 0, 0));
            tbl_titulo.addCell(Addons.setCeldaPDF(tbl_2, 0, 1));
            tbl_titulo.addCell(Addons.setFilaBlanco(3, 20));
            pdf.add(tbl_titulo);

            //Informacion Cliente
            PdfPTable tbl_info = new PdfPTable(1);
            PdfPTable tbl_info1 = new PdfPTable(new float[] { 32f, 43f, 25f });
            tbl_info1.addCell(Addons.setCeldaPDF("Razn Social / Nombres y Apellidos: ", Font.STRIKETHRU, 10,
                    Font.NORMAL, Element.ALIGN_LEFT, 0, 8));
            tbl_info1.addCell(Addons.setCeldaPDF(razonSocialSujetoRetenido, Font.STRIKETHRU, 10, Font.NORMAL,
                    Element.ALIGN_LEFT, 0, 8));
            tbl_info1.addCell(Addons.setCeldaPDF("RUC/CI: " + identificacionSujetoRetenido, Font.STRIKETHRU, 10,
                    Font.NORMAL, Element.ALIGN_LEFT, 0, 8));
            tbl_info1.addCell(Addons.setCeldaPDF("Fecha de emisin: " + fechaEmision, Font.STRIKETHRU, 10,
                    Font.NORMAL, Element.ALIGN_LEFT, 0, 8, 3));
            tbl_info.addCell(Addons.setCeldaPDF(tbl_info1, 0, 1));
            tbl_info.addCell(Addons.setFilaBlanco(3, 20));
            pdf.add(tbl_info);

            //Detalles
            PdfPTable tbl_det = new PdfPTable(1);
            PdfPTable tbl_det1 = new PdfPTable(new float[] { 14f, 18f, 12f, 10f, 13f, 10f, 13f, 10f });

            tbl_det1.addCell(Addons.setCeldaPDF("Comprobante", Font.STRIKETHRU, 10, Font.NORMAL,
                    Element.ALIGN_LEFT, 1, 5));
            tbl_det1.addCell(
                    Addons.setCeldaPDF("Nmero", Font.STRIKETHRU, 10, Font.NORMAL, Element.ALIGN_LEFT, 1, 5));
            tbl_det1.addCell(Addons.setCeldaPDF("Fecha Emisin", Font.STRIKETHRU, 10, Font.NORMAL,
                    Element.ALIGN_LEFT, 1, 5));
            tbl_det1.addCell(Addons.setCeldaPDF("Ejercicio Fiscal", Font.STRIKETHRU, 10, Font.NORMAL,
                    Element.ALIGN_LEFT, 1, 5));
            tbl_det1.addCell(Addons.setCeldaPDF("Base Imponible para la retencion", Font.STRIKETHRU, 8,
                    Font.NORMAL, Element.ALIGN_LEFT, 1, 5));
            tbl_det1.addCell(
                    Addons.setCeldaPDF("Impuesto", Font.STRIKETHRU, 10, Font.NORMAL, Element.ALIGN_LEFT, 1, 5));
            tbl_det1.addCell(Addons.setCeldaPDF("Porcentaje de Retencin", Font.STRIKETHRU, 10, Font.NORMAL,
                    Element.ALIGN_LEFT, 1, 5));
            tbl_det1.addCell(Addons.setCeldaPDF("Valor Retenido", Font.STRIKETHRU, 10, Font.NORMAL,
                    Element.ALIGN_LEFT, 1, 5));
            Double val_ret = 0.0;

            //detalles
            for (int i = 0; i < limite; i++) {
                //Comprobante
                if (array[i][5].compareTo("01") == 0) {
                    tbl_det1.addCell(Addons.setCeldaPDF("FACTURA", Font.STRIKETHRU, 10, Font.NORMAL,
                            Element.ALIGN_LEFT, 1, 5));
                }
                if (array[i][5].compareTo("04") == 0) {
                    tbl_det1.addCell(Addons.setCeldaPDF("NOTA DE CRDITO", Font.STRIKETHRU, 10, Font.NORMAL,
                            Element.ALIGN_LEFT, 1, 5));
                }
                if (array[i][5].compareTo("05") == 0) {
                    tbl_det1.addCell(Addons.setCeldaPDF("NOTA DE DBITO", Font.STRIKETHRU, 10, Font.NORMAL,
                            Element.ALIGN_LEFT, 1, 5));
                }
                if (array[i][5].compareTo("06") == 0) {
                    tbl_det1.addCell(Addons.setCeldaPDF("GU?A DE REMISION", Font.STRIKETHRU, 10, Font.NORMAL,
                            Element.ALIGN_LEFT, 1, 5));
                }
                if (array[i][5].compareTo("07") == 0) {
                    tbl_det1.addCell(Addons.setCeldaPDF("COMPROBANTE DE RETENCIN", Font.STRIKETHRU, 10,
                            Font.NORMAL, Element.ALIGN_LEFT, 1, 5));
                }

                //Nmero
                tbl_det1.addCell(Addons.setCeldaPDF(array[i][6], Font.STRIKETHRU, 10, Font.NORMAL,
                        Element.ALIGN_LEFT, 1, 5));

                //Fecha Emisin
                tbl_det1.addCell(Addons.setCeldaPDF(fechaEmision, Font.STRIKETHRU, 10, Font.NORMAL,
                        Element.ALIGN_LEFT, 1, 5));

                //Ejercicio Fiscal
                tbl_det1.addCell(Addons.setCeldaPDF(periodoFiscal, Font.STRIKETHRU, 10, Font.NORMAL,
                        Element.ALIGN_LEFT, 1, 5));

                //Base Imponible para la retencion
                tbl_det1.addCell(Addons.setCeldaPDF(array[i][2], Font.STRIKETHRU, 10, Font.NORMAL,
                        Element.ALIGN_LEFT, 1, 5));

                //Impuesto
                if (array[i][0].compareTo("1") == 0) {
                    tbl_det1.addCell(Addons.setCeldaPDF("RENTA", Font.STRIKETHRU, 10, Font.NORMAL,
                            Element.ALIGN_LEFT, 1, 5));
                }
                if (array[i][0].compareTo("2") == 0) {
                    tbl_det1.addCell(Addons.setCeldaPDF("IVA", Font.STRIKETHRU, 10, Font.NORMAL,
                            Element.ALIGN_LEFT, 1, 5));
                }
                if (array[i][0].compareTo("6") == 0) {
                    tbl_det1.addCell(Addons.setCeldaPDF("ISD", Font.STRIKETHRU, 10, Font.NORMAL,
                            Element.ALIGN_LEFT, 1, 5));
                }

                //Porcentaje de Retencin
                tbl_det1.addCell(Addons.setCeldaPDF(array[i][3], Font.STRIKETHRU, 10, Font.NORMAL,
                        Element.ALIGN_LEFT, 1, 5));

                //Valor Retenido
                tbl_det1.addCell(Addons.setCeldaPDF(array[i][4], Font.STRIKETHRU, 10, Font.NORMAL,
                        Element.ALIGN_LEFT, 1, 5));

                val_ret += Double.parseDouble(array[i][4]);
            }
            tbl_det1.addCell(Addons.setCeldaPDF("Valor Retenido", Font.STRIKETHRU, 10, Font.NORMAL,
                    Element.ALIGN_RIGHT, 1, 5, 7));
            tbl_det1.addCell(Addons.setCeldaPDF(Addons.redondear(val_ret) + "", Font.STRIKETHRU, 10,
                    Font.NORMAL, Element.ALIGN_LEFT, 1, 5, 1));
            tbl_det.addCell(Addons.setCeldaPDF(tbl_det1, 0, 1));
            tbl_det.addCell(Addons.setFilaBlanco(6, 20));
            pdf.add(tbl_det);

            //Informacion Adicional
            PdfPTable tbl_info_ad = new PdfPTable(new float[] { 40f, 10f, 50f });
            PdfPTable tbl_info_ad1 = new PdfPTable(new float[] { 30f, 70f });
            //titulos izquierda
            tbl_info_ad1.addCell(Addons.setCeldaPDF("Informacin Adicional", Font.STRIKETHRU, 10, Font.NORMAL,
                    Element.ALIGN_CENTER, 0, 5, 2));
            tbl_info_ad1.addCell(Addons.setCeldaPDF("Contacto: ", Font.STRIKETHRU, 10, Font.NORMAL,
                    Element.ALIGN_LEFT, 0, 8, 0));
            tbl_info_ad1.addCell(Addons.setCeldaPDF("062609177 / 062610330", Font.STRIKETHRU, 10, Font.NORMAL,
                    Element.ALIGN_LEFT, 0, 8, 0));
            tbl_info_ad1.addCell(Addons.setCeldaPDF("Email: ", Font.STRIKETHRU, 10, Font.NORMAL,
                    Element.ALIGN_LEFT, 0, 8, 0));
            tbl_info_ad1.addCell(
                    Addons.setCeldaPDF(EMAIL, Font.STRIKETHRU, 10, Font.NORMAL, Element.ALIGN_LEFT, 0, 8, 0));
            tbl_info_ad1.addCell(Addons.setCeldaPDF("Sitio Web:", Font.STRIKETHRU, 10, Font.NORMAL,
                    Element.ALIGN_LEFT, 0, 8, 0));
            tbl_info_ad1.addCell(Addons.setCeldaPDF("www.saitel.ec", Font.STRIKETHRU, 10, Font.NORMAL,
                    Element.ALIGN_LEFT, 0, 8, 0));
            tbl_info_ad1.addCell(
                    Addons.setCeldaPDF(ARCOTEL, Font.STRIKETHRU, 10, Font.NORMAL, Element.ALIGN_LEFT, 0, 8, 2));
            tbl_info_ad.addCell(Addons.setCeldaPDF(tbl_info_ad1, 0, 1));
            tbl_info_ad.addCell(Addons.setCeldaPDF(" ", Font.TIMES_ROMAN, 1, Font.NORMAL, 0, 0));
            tbl_info_ad.addCell(Addons.setCeldaPDF(" ", Font.TIMES_ROMAN, 1, Font.NORMAL, 0, 0));
            pdf.add(tbl_info_ad);

        } catch (IllegalStateException ie) {
            ie.printStackTrace();
        } catch (DocumentException e) {
            e.printStackTrace();
        } finally {
        }
        pdf.close(); // paso 5
        /* fin PDF */
    }

}

From source file:jm.web.Addons.java

License:GNU General Public License

public static PdfPTable setHistorial(ResultSet histo) {
    float bar[] = new float[103];
    bar[0] = 20f;/*  w w w .  j  a  v  a2s. c  om*/
    bar[1] = 2f;
    for (int i = 2; i <= 101; i++) {
        bar[i] = 1f;
    }
    bar[102] = 20f;

    PdfPTable tabla = new PdfPTable(bar);
    tabla.addCell(Addons.setFilaBlanco(103, 1));

    String historial[][] = DatosDinamicos.ResultSetToMatriz(histo);
    float maximo = DatosDinamicos.valMaximo(historial, 1); /* es el valor mximo de los consumos */

    int porcentaje = 100;
    if (maximo / 10000 >= 1) {
        porcentaje = 100000;
    }
    if (maximo / 1000 >= 1) {
        porcentaje = 10000;
    }
    if (maximo / 100 >= 1) {
        porcentaje = 1000;
    }

    for (int i = 0; i < historial.length; i++) {
        tabla.addCell(Addons.setCeldaPDF(historial[i][0], Font.HELVETICA, 5, Font.NORMAL, Element.ALIGN_RIGHT,
                0, 0, 1));
        tabla.addCell(Addons.setCeldaPDF(" ", Font.HELVETICA, 5, Font.NORMAL, Element.ALIGN_RIGHT, 0, 0, 1));
        int ancho = Math.round(Float.parseFloat(historial[i][1]) * maximo / porcentaje);
        tabla.addCell(Addons.setBarra(ancho, 0f)); /* barra de consumo */
        if (ancho == 0) {
            ancho = 1;
        }
        tabla.addCell(Addons.setBarra(100 - ancho, 10f)); /* barra complementaria blanca */
        tabla.addCell(Addons.setCeldaPDF(" " + historial[i][1], Font.HELVETICA, 3, Font.NORMAL,
                Element.ALIGN_LEFT, 0, 0, 1));
        tabla.addCell(Addons.setFilaBlanco(103, 2));
    }

    return tabla;
}

From source file:jm.web.Addons.java

License:GNU General Public License

public static PdfPTable setCabecera(String logo, String titulo, String ruc, String subtitulo, String direccion,
        String sucursal) {//from  w  ww  .ja va 2 s. c  o m
    PdfPTable encabezado = new PdfPTable(new float[] { 80f, 400f });
    PdfPTable tbl_encab = new PdfPTable(1);
    Image imagelogo = null;
    try {
        imagelogo = Image.getInstance(logo);
        imagelogo.scaleAbsolute(150, 70);
        PdfPCell celdaImg = new PdfPCell(imagelogo);
        celdaImg.setBorderWidth(0);
        celdaImg.setPadding(0);
        encabezado.addCell(celdaImg);
    } catch (Exception e) {
        encabezado.addCell("");
    }
    tbl_encab.addCell(Addons.setCeldaPDF(titulo, Font.HELVETICA, 13, Font.BOLD, Element.ALIGN_CENTER, 0));
    tbl_encab.addCell(Addons.setCeldaPDF(direccion, Font.HELVETICA, 11, Font.NORMAL, Element.ALIGN_CENTER, 0));
    if (ruc.compareTo("") != 0) {
        tbl_encab.addCell(
                Addons.setCeldaPDF("RUC: " + ruc, Font.HELVETICA, 11, Font.NORMAL, Element.ALIGN_CENTER, 0));
    }
    tbl_encab.addCell(Addons.setCeldaPDF(subtitulo, Font.HELVETICA, 10, Font.NORMAL, Element.ALIGN_CENTER, 0));

    encabezado.addCell(Addons.setCeldaPDF(tbl_encab, Element.ALIGN_CENTER, 0));

    encabezado.addCell(Addons.setFilaBlanco(2, 6));

    if (sucursal.compareTo("") != 0) {
        encabezado.addCell(Addons.setCeldaPDF("Sucursal: " + sucursal, Font.HELVETICA, 10, Font.NORMAL,
                Element.ALIGN_LEFT, 0, 0, 2));
    }

    encabezado.addCell(Addons.setCeldaPDF("Fecha de impresin: " + Fecha.getFecha("SQL"), Font.HELVETICA, 10,
            Font.NORMAL, Element.ALIGN_LEFT, 0, 0, 2));

    encabezado.addCell(Addons.setFilaBlanco(2, 4));

    return encabezado;
}

From source file:jm.web.Addons.java

License:GNU General Public License

public static void setEncabezado(PdfWriter writer, Document document, String texto) {
    if (writer.getPageNumber() > 1) {
        try {/*  ww w  .  j av  a 2s.c o  m*/
            PdfPTable encabezado = new PdfPTable(1);
            encabezado.setTotalWidth(document.right() - document.left() - 120);
            encabezado.addCell(Addons.setCeldaPDF(texto, Font.HELVETICA, 9, Font.BOLD, Element.ALIGN_LEFT, 0));
            encabezado.writeSelectedRows(0, -1, 60, document.top() + 25, writer.getDirectContent());

            PdfContentByte cb = writer.getDirectContent();
            cb.setLineWidth(2);
            cb.moveTo(60, document.top() + 10);
            cb.lineTo(document.right() - document.left() - 58, document.top() + 10);
        } catch (Exception e) {
            throw new ExceptionConverter(e);
        }
    }
}

From source file:jm.web.Addons.java

License:GNU General Public License

public static void setPie(PdfWriter writer, Document document, String rep_pie) {
    try {//from   w w w .  ja va  2 s  . c om
        PdfContentByte cb = writer.getDirectContent();
        /*cb.setLineWidth(2);
        cb.moveTo(60, document.bottomMargin()-5);
        cb.lineTo(document.right() - document.left()-70, document.bottomMargin()-5);
        */
        PdfPTable pie = new PdfPTable(1);
        pie.setTotalWidth(document.right() - document.left() - 120);
        pie.addCell(Addons.setCeldaPDF(rep_pie, Font.HELVETICA, 9, Font.BOLD, Element.ALIGN_CENTER, 0));
        pie.addCell(Addons.setCeldaPDF("Pg " + String.valueOf(writer.getPageNumber()), Font.HELVETICA, 9,
                Font.BOLD, Element.ALIGN_RIGHT, 0));
        pie.addCell(Addons.setCeldaPDF(
                "Reporte diseado por: Jorge Mueses Cevallos.      Mvil: 095204832     mail:jorge_mueses@yahoo.com",
                Font.HELVETICA, 5, Font.BOLD, Element.ALIGN_LEFT, 0));
        pie.writeSelectedRows(0, -1, 60, document.bottomMargin() - 10, cb);
    } catch (Exception e) {
        throw new ExceptionConverter(e);
    }
}

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);/* ww  w .  java2 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:mitm.common.pdf.MessagePDFBuilder.java

License:Open Source License

public void buildPDF(MimeMessage message, String replyURL, OutputStream pdfStream)
        throws DocumentException, MessagingException, IOException {
    Document document = createDocument();

    PdfWriter pdfWriter = createPdfWriter(document, pdfStream);

    document.open();/*from  ww  w .ja  v a  2s  . co m*/

    String[] froms = null;

    try {
        froms = EmailAddressUtils.addressesToStrings(message.getFrom(), true /* mime decode */);
    } catch (MessagingException e) {
        logger.warn("From address is not a valid email address.");
    }

    if (froms != null) {
        for (String from : froms) {
            document.addAuthor(from);
        }
    }

    String subject = null;

    try {
        subject = message.getSubject();
    } catch (MessagingException e) {
        logger.error("Error getting subject.", e);
    }

    if (subject != null) {
        document.addSubject(subject);
        document.addTitle(subject);
    }

    String[] tos = null;

    try {
        tos = EmailAddressUtils.addressesToStrings(message.getRecipients(RecipientType.TO),
                true /* mime decode */);
    } catch (MessagingException e) {
        logger.warn("To is not a valid email address.");
    }

    String[] ccs = null;

    try {
        ccs = EmailAddressUtils.addressesToStrings(message.getRecipients(RecipientType.CC),
                true /* mime decode */);
    } catch (MessagingException e) {
        logger.warn("CC is not a valid email address.");
    }

    Date sentDate = null;

    try {
        sentDate = message.getSentDate();
    } catch (MessagingException e) {
        logger.error("Error getting sent date.", e);
    }

    Collection<Part> attachments = new LinkedList<Part>();

    String body = BodyPartUtils.getPlainBodyAndAttachments(message, attachments);

    attachments = preprocessAttachments(attachments);

    if (body == null) {
        body = MISSING_BODY;
    }

    /*
     * PDF does not have tab support so we convert tabs to spaces
     */
    body = StringReplaceUtils.replaceTabsWithSpaces(body, tabWidth);

    PdfPTable headerTable = new PdfPTable(2);

    headerTable.setHorizontalAlignment(Element.ALIGN_LEFT);
    headerTable.setWidthPercentage(100);
    headerTable.setWidths(new int[] { 1, 6 });
    headerTable.getDefaultCell().setBorder(Rectangle.NO_BORDER);

    Font headerFont = createHeaderFont();

    FontSelector headerFontSelector = createHeaderFontSelector();

    PdfPCell cell = new PdfPCell(new Paragraph("From:", headerFont));
    cell.setBorder(Rectangle.NO_BORDER);
    cell.setHorizontalAlignment(Element.ALIGN_RIGHT);

    headerTable.addCell(cell);

    String decodedFroms = StringUtils.defaultString(StringUtils.join(froms, ", "));

    headerTable.addCell(headerFontSelector.process(decodedFroms));

    cell = new PdfPCell(new Paragraph("To:", headerFont));
    cell.setBorder(Rectangle.NO_BORDER);
    cell.setHorizontalAlignment(Element.ALIGN_RIGHT);

    headerTable.addCell(cell);
    headerTable.addCell(headerFontSelector.process(StringUtils.defaultString(StringUtils.join(tos, ", "))));

    cell = new PdfPCell(new Paragraph("CC:", headerFont));
    cell.setBorder(Rectangle.NO_BORDER);
    cell.setHorizontalAlignment(Element.ALIGN_RIGHT);

    headerTable.addCell(cell);
    headerTable.addCell(headerFontSelector.process(StringUtils.defaultString(StringUtils.join(ccs, ", "))));

    cell = new PdfPCell(new Paragraph("Subject:", headerFont));
    cell.setBorder(Rectangle.NO_BORDER);
    cell.setHorizontalAlignment(Element.ALIGN_RIGHT);

    headerTable.addCell(cell);
    headerTable.addCell(headerFontSelector.process(StringUtils.defaultString(subject)));

    cell = new PdfPCell(new Paragraph("Date:", headerFont));
    cell.setBorder(Rectangle.NO_BORDER);
    cell.setHorizontalAlignment(Element.ALIGN_RIGHT);

    headerTable.addCell(cell);
    headerTable.addCell(ObjectUtils.toString(sentDate));

    cell = new PdfPCell(new Paragraph("Attachments:", headerFont));
    cell.setBorder(Rectangle.NO_BORDER);
    cell.setHorizontalAlignment(Element.ALIGN_RIGHT);

    headerTable.addCell(cell);
    headerTable
            .addCell(headerFontSelector.process(StringUtils.defaultString(getAttachmentHeader(attachments))));

    document.add(headerTable);

    if (replyURL != null) {
        addReplyLink(document, replyURL);
    }

    /*
     * Body table will contain the body of the message
     */
    PdfPTable bodyTable = new PdfPTable(1);
    bodyTable.setWidthPercentage(100f);

    bodyTable.setSplitLate(false);

    bodyTable.setSpacingBefore(15f);
    bodyTable.setHorizontalAlignment(Element.ALIGN_LEFT);

    addBodyAndAttachments(pdfWriter, document, bodyTable, body, attachments);

    Phrase footer = new Phrase(FOOTER_TEXT);

    PdfContentByte cb = pdfWriter.getDirectContent();

    ColumnText.showTextAligned(cb, Element.ALIGN_RIGHT, footer, document.right(), document.bottom(), 0);

    document.close();
}

From source file:net.bull.javamelody.internal.web.pdf.PdfCacheInformationsReport.java

License:Apache License

private void writeCacheInformations(CacheInformations cacheInformations) {
    final PdfPCell defaultCell = getDefaultCell();
    defaultCell.setHorizontalAlignment(Element.ALIGN_LEFT);
    addCell(cacheInformations.getName());
    defaultCell.setHorizontalAlignment(Element.ALIGN_RIGHT);
    if (configurationEnabled) {
        addCell(integerFormat.format(cacheInformations.getInMemoryPercentUsed()));
    }//  w  w  w . j  a  v a 2 s . c o  m
    addCell(integerFormat.format(cacheInformations.getInMemoryObjectCount()));
    addCell(integerFormat.format(cacheInformations.getOnDiskObjectCount()));
    if (hitsRatioEnabled) {
        addCell(integerFormat.format(cacheInformations.getInMemoryHitsRatio()));
        addCell(integerFormat.format(cacheInformations.getHitsRatio()));
    }
    if (configurationEnabled) {
        defaultCell.setHorizontalAlignment(Element.ALIGN_LEFT);
        addCell(cacheInformations.getConfiguration());
    }
}