Example usage for com.itextpdf.text Rectangle BOTTOM

List of usage examples for com.itextpdf.text Rectangle BOTTOM

Introduction

In this page you can find the example usage for com.itextpdf.text Rectangle BOTTOM.

Prototype

int BOTTOM

To view the source code for com.itextpdf.text Rectangle BOTTOM.

Click Source Link

Document

This represents one side of the border of the Rectangle.

Usage

From source file:Compras.Formatos.java

void ordenCompraExternosDCG(int pedido, String tipo) {
    h = new Herramientas(usr, 0);
    h.session(sessionPrograma);//from  w ww.  ja v a2 s  . c o m
    session = HibernateUtil.getSessionFactory().openSession();
    //ord=(Orden)session.get(Orden.class, ord.getIdOrden());
    try {
        DecimalFormat formatoPorcentaje = new DecimalFormat("#,##0.000");
        formatoPorcentaje.setMinimumFractionDigits(2);

        session.beginTransaction().begin();
        BaseFont bf = BaseFont.createFont(BaseFont.HELVETICA, BaseFont.WINANSI, BaseFont.NOT_EMBEDDED);

        PDF reporte = new PDF();
        Date fecha = new Date();
        DateFormat dateFormat = new SimpleDateFormat("dd-MM-yyyyHH-mm-ss");//YYYY-MM-DD HH:MM:SS
        String valor = dateFormat.format(fecha);
        File folder = new File("reportes/externos");
        folder.mkdirs();
        reporte.Abrir(PageSize.LETTER, "cabecera", "reportes/externos/" + valor + "-ordenDCG.pdf");
        //Font font = new Font(Font.FontFamily.HELVETICA, 6, Font.BOLD);
        Font font = new Font(Font.FontFamily.TIMES_ROMAN, 8, Font.BOLD);
        BaseColor contenido = BaseColor.WHITE;
        int centro = Element.ALIGN_CENTER;
        int izquierda = Element.ALIGN_LEFT;
        int derecha = Element.ALIGN_RIGHT;
        float tam[] = new float[] { 20, 20, 40, 220, 90, 50, 50 };
        PdfPTable tabla = reporte.crearTabla(7, tam, 100, Element.ALIGN_LEFT);

        Pedido ped = (Pedido) session.get(Pedido.class, pedido);
        if (ped.getUsuarioByAutorizo() != null && ped.getUsuarioByAutorizo2() != null) {
            reporte.estatusAutoriza(ped.getUsuarioByAutorizo().getEmpleado().getNombre(),
                    ped.getUsuarioByAutorizo2().getEmpleado().getNombre());
        } else
            reporte.estatusAutoriza("", "       NO AUTORIZADO");
        if (ped.getTipoPedido().compareToIgnoreCase("Externo") == 0)
            cabeceraCompraExDCG(reporte, bf, tabla, ped, tipo);
        if (ped.getTipoPedido().compareToIgnoreCase("Adicional") == 0)
            cabeceraCompraDCG(reporte, bf, tabla, ped, tipo);

        PartidaExterna[] cuentas = (PartidaExterna[]) session.createCriteria(PartidaExterna.class).
        //add(Restrictions.eq("ordenByIdOrden.idOrden", ord.getIdOrden())).
                add(Restrictions.eq("pedido.idPedido", pedido)).addOrder(Order.asc("idPartidaExterna")).list()
                .toArray(new PartidaExterna[0]);
        int ren = 0;
        double total = 0d;
        if (cuentas.length > 0) {
            for (int i = 0; i < cuentas.length; i++) {
                int r = i + 1;
                //consecutivo
                tabla.addCell(reporte.celda("" + r, font, contenido, izquierda, 0, 1, Rectangle.RECTANGLE));

                //cantidad a comprar
                tabla.addCell(reporte.celda("" + cuentas[i].getCantidad(), font, contenido, derecha, 0, 1,
                        Rectangle.RECTANGLE));

                //Unidad
                tabla.addCell(reporte.celda(cuentas[i].getUnidad(), font, contenido, derecha, 0, 1,
                        Rectangle.RECTANGLE));

                //Descripcion
                tabla.addCell(reporte.celda(cuentas[i].getDescripcion(), font, contenido, izquierda, 0, 1,
                        Rectangle.RECTANGLE));

                tabla.addCell(reporte.celda("" + cuentas[i].getNoParte(), font, contenido, derecha, 0, 1,
                        Rectangle.RECTANGLE));

                //costo unit
                tabla.addCell(reporte.celda(formatoPorcentaje.format(cuentas[i].getCosto()), font, contenido,
                        derecha, 0, 1, Rectangle.RECTANGLE));

                double sum = cuentas[i].getCantidad() * cuentas[i].getCosto();
                total += sum;
                tabla.addCell(reporte.celda(formatoPorcentaje.format(sum), font, contenido, derecha, 0, 1,
                        Rectangle.RECTANGLE));

                /*if(ren==38)
                {
                    reporte.agregaObjeto(tabla);
                    reporte.writer.newPage();
                    tabla=reporte.crearTabla(7, tam, 100, Element.ALIGN_LEFT);
                    cabeceraCompraEx(reporte, bf, tabla, ped);
                    ren=-1;
                }*/
                ren++;
            }
        }
        if (ped.getNotas() != null)
            tabla.addCell(reporte.celda("Notas:" + ped.getNotas(), font, contenido, izquierda, 7, 1,
                    Rectangle.BOTTOM));
        else
            tabla.addCell(reporte.celda("Notas:", font, contenido, izquierda, 7, 1, Rectangle.BOTTOM));
        tabla.addCell(reporte.celda("[Los montos estan en Pesos]", font, contenido, izquierda, 4, 1,
                Rectangle.NO_BORDER));
        tabla.addCell(reporte.celda("Sub-total:", font, contenido, derecha, 2, 1, Rectangle.NO_BORDER));
        tabla.addCell(reporte.celda(formatoPorcentaje.format(total), font, contenido, derecha, 0, 1,
                Rectangle.RECTANGLE));
        tabla.addCell(reporte.celda("IVA:", font, contenido, derecha, 6, 1, Rectangle.NO_BORDER));
        double iva = total * 0.16d;
        tabla.addCell(reporte.celda(formatoPorcentaje.format(iva), font, contenido, derecha, 0, 1,
                Rectangle.RECTANGLE));
        tabla.addCell(reporte.celda("Total:", font, contenido, derecha, 6, 1, Rectangle.NO_BORDER));
        total += iva;
        tabla.addCell(reporte.celda(formatoPorcentaje.format(total), font, contenido, derecha, 0, 1,
                Rectangle.RECTANGLE));
        tabla.setHeaderRows(1);
        session.beginTransaction().rollback();

        reporte.agregaObjeto(tabla);

        reporte.cerrar();
        reporte.visualizar("reportes/externos/" + valor + "-ordenDCG.pdf");

    } catch (Exception e) {
        System.out.println(e);
        e.printStackTrace();
        JOptionPane.showMessageDialog(null, "No se pudo realizar el reporte si el archivo esta abierto.");
    }
}

From source file:Compras.Formatos.java

void ordenCompraExternos(int pedido) {
    h = new Herramientas(usr, 0);
    h.session(sessionPrograma);//ww w .j  a v  a 2s.  c o  m
    session = HibernateUtil.getSessionFactory().openSession();
    //ord=(Orden)session.get(Orden.class, ord.getIdOrden());
    try {
        DecimalFormat formatoPorcentaje = new DecimalFormat("#,##0.000");
        formatoPorcentaje.setMinimumFractionDigits(2);

        session.beginTransaction().begin();
        BaseFont bf = BaseFont.createFont(BaseFont.HELVETICA, BaseFont.WINANSI, BaseFont.NOT_EMBEDDED);

        PDF reporte = new PDF();
        Date fecha = new Date();
        DateFormat dateFormat = new SimpleDateFormat("dd-MM-yyyyHH-mm-ss");//YYYY-MM-DD HH:MM:SS
        String valor = dateFormat.format(fecha);
        File folder = new File("reportes/externos");
        folder.mkdirs();
        reporte.Abrir(PageSize.LETTER, "cabecera", "reportes/externos/" + valor + "-orden.pdf");
        //Font font = new Font(Font.FontFamily.HELVETICA, 6, Font.BOLD);
        Font font = new Font(Font.FontFamily.TIMES_ROMAN, 8, Font.BOLD);
        BaseColor contenido = BaseColor.WHITE;
        int centro = Element.ALIGN_CENTER;
        int izquierda = Element.ALIGN_LEFT;
        int derecha = Element.ALIGN_RIGHT;
        float tam[] = new float[] { 20, 20, 220, 40, 90, 50, 50 };
        PdfPTable tabla = reporte.crearTabla(7, tam, 100, Element.ALIGN_LEFT);

        Pedido ped = (Pedido) session.get(Pedido.class, pedido);

        //Pedido ped = (Pedido)session.get(Pedido.class, Integer.parseInt(this.no_ped));
        if (ped.getUsuarioByAutorizo() != null && ped.getUsuarioByAutorizo2() != null) {
            reporte.estatusAutoriza(ped.getUsuarioByAutorizo().getEmpleado().getNombre(),
                    ped.getUsuarioByAutorizo2().getEmpleado().getNombre());
        } else
            reporte.estatusAutoriza("", "       NO AUTORIZADO");
        if (ped.getTipoPedido().compareToIgnoreCase("Externo") == 0)
            cabeceraCompraEx(reporte, bf, tabla, ped);
        if (ped.getTipoPedido().compareToIgnoreCase("Adicional") == 0)
            cabeceraCompra(reporte, bf, tabla, ped);

        PartidaExterna[] cuentas = (PartidaExterna[]) session.createCriteria(PartidaExterna.class).
        //add(Restrictions.eq("ordenByIdOrden.idOrden", ord.getIdOrden())).
                add(Restrictions.eq("pedido.idPedido", pedido)).addOrder(Order.asc("idPartidaExterna")).list()
                .toArray(new PartidaExterna[0]);
        int ren = 0;
        double total = 0d;
        if (cuentas.length > 0) {
            for (int i = 0; i < cuentas.length; i++) {
                int r = i + 1;
                //consecutivo
                tabla.addCell(reporte.celda("" + r, font, contenido, izquierda, 0, 1, Rectangle.RECTANGLE));

                //cantidad a comprar
                tabla.addCell(reporte.celda("" + cuentas[i].getCantidad(), font, contenido, derecha, 0, 1,
                        Rectangle.RECTANGLE));

                //Descripcion
                tabla.addCell(reporte.celda(cuentas[i].getDescripcion(), font, contenido, izquierda, 0, 1,
                        Rectangle.RECTANGLE));

                //folio del articulo-partida-subpartida
                if (cuentas[i].getPartida() != null)
                    tabla.addCell(reporte.celda(cuentas[i].getPartida() + "-" + cuentas[i].getIdValuacion(),
                            font, contenido, derecha, 0, 1, Rectangle.RECTANGLE));
                else
                    tabla.addCell(reporte.celda("", font, contenido, derecha, 0, 1, Rectangle.RECTANGLE));

                tabla.addCell(reporte.celda("" + cuentas[i].getNoParte(), font, contenido, derecha, 0, 1,
                        Rectangle.RECTANGLE));

                //costo unit
                tabla.addCell(reporte.celda(formatoPorcentaje.format(cuentas[i].getCosto()), font, contenido,
                        derecha, 0, 1, Rectangle.RECTANGLE));

                double sum = cuentas[i].getCantidad() * cuentas[i].getCosto();
                total += sum;
                tabla.addCell(reporte.celda(formatoPorcentaje.format(sum), font, contenido, derecha, 0, 1,
                        Rectangle.RECTANGLE));

                /*if(ren==38)
                {
                    reporte.agregaObjeto(tabla);
                    reporte.writer.newPage();
                    tabla=reporte.crearTabla(7, tam, 100, Element.ALIGN_LEFT);
                    cabeceraCompraEx(reporte, bf, tabla, ped);
                    ren=-1;
                }*/
                ren++;
            }
        }
        if (ped.getNotas() != null)
            tabla.addCell(reporte.celda("Notas:" + ped.getNotas(), font, contenido, izquierda, 7, 1,
                    Rectangle.BOTTOM));
        else
            tabla.addCell(reporte.celda("Notas:", font, contenido, izquierda, 7, 1, Rectangle.BOTTOM));
        tabla.addCell(reporte.celda("[Los montos estan en Pesos]", font, contenido, izquierda, 3, 1,
                Rectangle.NO_BORDER));
        tabla.addCell(reporte.celda("Sub-total:", font, contenido, derecha, 3, 1, Rectangle.NO_BORDER));
        tabla.addCell(reporte.celda(formatoPorcentaje.format(total), font, contenido, derecha, 0, 1,
                Rectangle.RECTANGLE));
        tabla.addCell(reporte.celda("IVA:", font, contenido, derecha, 6, 1, Rectangle.NO_BORDER));
        double iva = total * 0.16d;
        tabla.addCell(reporte.celda(formatoPorcentaje.format(iva), font, contenido, derecha, 0, 1,
                Rectangle.RECTANGLE));
        tabla.addCell(reporte.celda("Total:", font, contenido, derecha, 6, 1, Rectangle.NO_BORDER));
        total += iva;
        tabla.addCell(reporte.celda(formatoPorcentaje.format(total), font, contenido, derecha, 0, 1,
                Rectangle.RECTANGLE));
        tabla.addCell(reporte.celda(
                "[NO SE RECIBIR? MATERIAL EN ALMACN SIN ESTA ORDEN DE COMPRA Y REMISIN O FACTURA CORRESPONDIENTE]",
                font, contenido, centro, 7, 1, Rectangle.NO_BORDER));
        tabla.setHeaderRows(1);
        session.beginTransaction().rollback();

        reporte.agregaObjeto(tabla);

        reporte.cerrar();
        reporte.visualizar("reportes/externos/" + valor + "-orden.pdf");

    } catch (Exception e) {
        System.out.println(e);
        e.printStackTrace();
        JOptionPane.showMessageDialog(null, "No se pudo realizar el reporte si el archivo esta abierto.");
    }
}

From source file:Compras.Formatos.java

private void cabeceraPre(PDF reporte, BaseFont bf, PdfPTable tabla) {
    reporte.contenido.setLineWidth(0.5f);
    //reporte.contenido.setColorStroke(new GrayColor(0.2f));
    reporte.contenido.setColorFill(new GrayColor(0.9f));
    reporte.contenido.roundRectangle(35, 660, 543, 40, 5);//cuadro cliente
    reporte.contenido.roundRectangle(35, 618, 543, 40, 5);//cuadro unidad
    //reporte.contenido.roundRectangle(35, 600, 543, 14, 5);//cuadro cabecera tabla

    reporte.contenido.roundRectangle(353, 738, 223, 10, 0);//cuadro fecha
    reporte.contenido.roundRectangle(353, 728, 223, 10, 0);//cuadro F.Fiscal
    reporte.contenido.roundRectangle(353, 718, 223, 10, 0);//cuadro C. SAT
    reporte.contenido.roundRectangle(353, 708, 223, 10, 0);//cuadro C. Emisor

    Configuracion con = (Configuracion) session.get(Configuracion.class, 1);

    reporte.inicioTexto();//www  . j av a2s. c  om
    reporte.agregaObjeto(reporte.crearImagen("imagenes/factura300115.jpg", 00, -32, 40));
    reporte.contenido.setFontAndSize(bf, 10);
    reporte.contenido.setColorFill(BaseColor.BLACK);
    reporte.contenido.showTextAligned(PdfContentByte.ALIGN_CENTER, "FACTURA", 520, 765, 0);
    reporte.contenido.showTextAligned(PdfContentByte.ALIGN_CENTER, "", 520, 755, 0);
    reporte.contenido.setFontAndSize(bf, 8);
    reporte.contenido.showTextAligned(PdfContentByte.ALIGN_RIGHT, "Fecha:", 425, 740, 0);
    reporte.contenido.showTextAligned(PdfContentByte.ALIGN_LEFT,
            new SimpleDateFormat("dd-MM-yyyy HH:mm:ss").format(new Date()), 430, 740, 0);
    reporte.contenido.showTextAligned(PdfContentByte.ALIGN_RIGHT, "Folio Fiscal:", 425, 730, 0);
    reporte.contenido.showTextAligned(PdfContentByte.ALIGN_RIGHT, "Certificado SAT:", 425, 720, 0);
    reporte.contenido.showTextAligned(PdfContentByte.ALIGN_RIGHT, "Certificado Emisor:", 425, 710, 0);
    reporte.contenido.setFontAndSize(bf, 6);
    reporte.contenido.showTextAligned(PdfContentByte.ALIGN_LEFT,
            "2a. DE LA CADENA S/N COL. SAN PEDRO TOTOLTEPEC MEXICO CP 50200", 40, 702, 0);
    reporte.contenido.showTextAligned(PdfContentByte.ALIGN_RIGHT, "Tel. (01 722) 199-24- 04", 570, 702, 0);

    ord = (Orden) session.get(Orden.class, ord.getIdOrden());
    reporte.contenido.setFontAndSize(bf, 8);
    //************************datos del cliente****************************
    DateFormat dateFormat = new SimpleDateFormat("dd-MM-yyyy");//YYYY-MM-DD HH:MM:SS
    reporte.contenido.showTextAligned(PdfContentByte.ALIGN_RIGHT, "Cliente: ", 80, 692, 0);
    reporte.contenido.showTextAligned(PdfContentByte.ALIGN_RIGHT, "Direccion: ", 80, 682, 0);
    reporte.contenido.showTextAligned(PdfContentByte.ALIGN_RIGHT, "Ciudad: ", 80, 672, 0);
    reporte.contenido.showTextAligned(PdfContentByte.ALIGN_RIGHT, "R.F.C.: ", 80, 662, 0);

    //**********************datos de la unidad*****************************
    reporte.contenido.showTextAligned(PdfContentByte.ALIGN_RIGHT, "Marca: ", 80, 650, 0);
    reporte.contenido.showTextAligned(PdfContentByte.ALIGN_RIGHT, "Tipo: ", 80, 640, 0);
    reporte.contenido.showTextAligned(PdfContentByte.ALIGN_RIGHT, "No. Serie: ", 80, 630, 0);
    //reporte.contenido.showTextAligned(PdfContentByte.ALIGN_RIGHT, "asegurado: ", 80, 620, 0);

    reporte.contenido.showTextAligned(PdfContentByte.ALIGN_RIGHT, "Modelo: ", 350, 650, 0);
    reporte.contenido.showTextAligned(PdfContentByte.ALIGN_RIGHT, "Placas: ", 350, 640, 0);
    reporte.contenido.showTextAligned(PdfContentByte.ALIGN_RIGHT, "Poliza: ", 350, 630, 0);
    reporte.contenido.showTextAligned(PdfContentByte.ALIGN_RIGHT, "Km: ", 350, 620, 0);

    reporte.contenido.showTextAligned(PdfContentByte.ALIGN_RIGHT, "Sinisestro: ", 490, 650, 0);
    reporte.contenido.showTextAligned(PdfContentByte.ALIGN_RIGHT, "INC: ", 490, 640, 0);
    reporte.contenido.showTextAligned(PdfContentByte.ALIGN_RIGHT, "Reporte: ", 490, 630, 0);

    if (factura == null) {
        reporte.contenido.showTextAligned(PdfContentByte.ALIGN_LEFT, ord.getMarca().getMarcaNombre(), 80, 650,
                0);
        reporte.contenido.showTextAligned(PdfContentByte.ALIGN_LEFT, ord.getTipo().getTipoNombre(), 80, 640, 0);
        if (ord.getNoSerie() != null)
            reporte.contenido.showTextAligned(PdfContentByte.ALIGN_LEFT, ord.getNoSerie(), 80, 630, 0);

        reporte.contenido.showTextAligned(PdfContentByte.ALIGN_LEFT, "" + ord.getModelo(), 350, 650, 0);
        if (ord.getNoPlacas() != null)
            reporte.contenido.showTextAligned(PdfContentByte.ALIGN_LEFT, ord.getNoPlacas(), 350, 640, 0);
        if (ord.getPoliza() != null)
            reporte.contenido.showTextAligned(PdfContentByte.ALIGN_LEFT, ord.getPoliza(), 350, 630, 0);

        if (ord.getTipoCliente().compareTo("2") == 0 || ord.getTipoCliente().compareTo("3") == 0) {
            reporte.contenido.showTextAligned(PdfContentByte.ALIGN_RIGHT, "Tercero: ", 80, 620, 0);
            reporte.contenido.showTextAligned(PdfContentByte.ALIGN_LEFT, ord.getClientes().getNombre(), 80, 620,
                    0);
        } else {
            reporte.contenido.showTextAligned(PdfContentByte.ALIGN_RIGHT, "Asegurado: ", 80, 620, 0);
            reporte.contenido.showTextAligned(PdfContentByte.ALIGN_LEFT, ord.getClientes().getNombre(), 80, 620,
                    0);
        }

        if (ord.getKm() != null)
            reporte.contenido.showTextAligned(PdfContentByte.ALIGN_RIGHT, ord.getKm(), 365, 620, 0);

        if (ord.getSiniestro() != null)
            reporte.contenido.showTextAligned(PdfContentByte.ALIGN_LEFT, ord.getSiniestro(), 490, 650, 0);
        if (ord.getInciso() != null)
            reporte.contenido.showTextAligned(PdfContentByte.ALIGN_LEFT, ord.getInciso(), 490, 640, 0);
        if (ord.getNoReporte() != null)
            reporte.contenido.showTextAligned(PdfContentByte.ALIGN_LEFT, ord.getNoReporte(), 490, 630, 0);
    }
    reporte.finTexto();

    //agregamos renglones vacios para dejar un espacio
    reporte.agregaObjeto(new Paragraph(" "));
    reporte.agregaObjeto(new Paragraph(" "));
    reporte.agregaObjeto(new Paragraph(" "));
    reporte.agregaObjeto(new Paragraph(" "));
    reporte.agregaObjeto(new Paragraph(" "));
    reporte.agregaObjeto(new Paragraph(" "));
    reporte.agregaObjeto(new Paragraph(" "));
    reporte.agregaObjeto(new Paragraph(" "));

    Font font = new Font(Font.FontFamily.HELVETICA, 6, Font.BOLD);
    Font font_mini = new Font(Font.FontFamily.HELVETICA, 1, Font.BOLD);
    BaseColor cabecera = BaseColor.GRAY;
    BaseColor contenido = BaseColor.WHITE;
    int centro = Element.ALIGN_CENTER;
    int izquierda = Element.ALIGN_LEFT;
    int derecha = Element.ALIGN_RIGHT;

    tabla.addCell(reporte.celda("Cant", font, contenido, centro, 0, 1, Rectangle.RECTANGLE + Rectangle.TOP));
    tabla.addCell(reporte.celda("U/Med", font, contenido, centro, 0, 1, Rectangle.RECTANGLE + Rectangle.TOP));
    tabla.addCell(reporte.celda("D E S C R I P C I O N", font, contenido, centro, 0, 1,
            Rectangle.RECTANGLE + Rectangle.TOP));
    tabla.addCell(
            reporte.celda("Precio c/u", font, contenido, centro, 0, 1, Rectangle.RECTANGLE + Rectangle.TOP));
    tabla.addCell(
            reporte.celda("T O T A L", font, contenido, centro, 0, 1, Rectangle.RECTANGLE + Rectangle.TOP));
    tabla.addCell(reporte.celda(" ", font_mini, null, centro, 5, 1, Rectangle.BOTTOM));
}

From source file:Compras.Formatos.java

public void factura() {
    h = new Herramientas(usr, 0);
    h.session(sessionPrograma);/*from w w  w.  ja va 2s.c o m*/
    session = HibernateUtil.getSessionFactory().openSession();
    factura = (Factura) session.get(Factura.class, factura.getIdFactura());

    String ruta = "";
    try {
        ruta = "";
        FileReader f = new FileReader("config.txt");
        BufferedReader b = new BufferedReader(f);
        if ((ruta = b.readLine()) == null)
            ruta = "";
        b.close();
    } catch (IOException e) {
        e.printStackTrace();
    }
    try {
        DecimalFormat formatoPorcentaje = new DecimalFormat("#,##0.000");
        formatoPorcentaje.setMinimumFractionDigits(2);
        BaseFont bf = BaseFont.createFont(BaseFont.HELVETICA, BaseFont.WINANSI, BaseFont.NOT_EMBEDDED);

        PDF reporte = new PDF();
        Date fecha = new Date();
        DateFormat dateFormat = new SimpleDateFormat("dd-MM-yyyyHH-mm-ss");//YYYY-MM-DD HH:MM:SS
        String valor = dateFormat.format(fecha);
        File folder = new File(ruta + "xml-timbrados/");
        folder.mkdirs();
        String fi = "xml-timbrados/" + factura.getRfcEmisor() + "_" + factura.getSerie() + "_"
                + factura.getFolio() + "_" + factura.getRfcReceptor() + ".pdf";
        reporte.Abrir(PageSize.LETTER, "Pedido", "xml-timbrados/" + factura.getRfcEmisor() + "_"
                + factura.getSerie() + "_" + factura.getFolio() + "_" + factura.getRfcReceptor() + ".pdf");
        Font font = new Font(Font.FontFamily.HELVETICA, 6, Font.BOLD);
        BaseColor contenido = BaseColor.WHITE;
        int centro = Element.ALIGN_CENTER;
        int izquierda = Element.ALIGN_LEFT;
        int derecha = Element.ALIGN_RIGHT;
        float tam[] = new float[] { 40, 40, 350, 70, 70 };
        PdfPTable tabla = reporte.crearTabla(5, tam, 100, Element.ALIGN_LEFT);

        this.cabeceraFac(reporte, bf, tabla, factura);

        Concepto[] concepto = (Concepto[]) session.createCriteria(Concepto.class)
                .add(Restrictions.eq("factura.idFactura", factura.getIdFactura()))
                .addOrder(Order.asc("idConcepto")).list().toArray(new Concepto[0]);

        int ren = 0;
        double total = 0.0;
        if (concepto.length > 0) {
            for (int i = 0; i < concepto.length; i++) {
                tabla.addCell(
                        reporte.celda("" + concepto[i].getCantidad(), font, contenido, derecha, 0, 1, 12));
                tabla.addCell(reporte.celda(concepto[i].getMedida(), font, contenido, izquierda, 0, 1, 12));
                tabla.addCell(reporte.celda(concepto[i].getDescripcion().toUpperCase(), font, contenido,
                        izquierda, 0, 1, 12));
                tabla.addCell(reporte.celda("" + formatoPorcentaje.format(concepto[i].getPrecio()), font,
                        contenido, derecha, 0, 1, 12));
                double tot = concepto[i].getPrecio() * concepto[i].getCantidad();
                total += tot;
                tabla.addCell(
                        reporte.celda("" + formatoPorcentaje.format(tot), font, contenido, derecha, 0, 1, 12));
            }
        }
        PdfPTable tabla1 = reporte.crearTabla(5, tam, 100, Element.ALIGN_LEFT);
        tabla1.addCell(reporte.celda("Metodo de Pago:" + factura.getMetodoPago(), font, contenido, izquierda, 3,
                1, Rectangle.TOP));
        tabla1.addCell(reporte.celda("SUB-TOTAL:", font, contenido, derecha, 0, 1,
                Rectangle.TOP + Rectangle.BOTTOM + 12));
        tabla1.addCell(reporte.celda(formatoPorcentaje.format(total), font, contenido, derecha, 0, 1,
                Rectangle.TOP + Rectangle.BOTTOM + 12));
        tabla1.addCell(reporte.celda(
                "Lugar de Expedicin: " + factura.getMunicipioEmisor() + ", " + factura.getEstadoEmisor(),
                font, contenido, izquierda, 3, 1, Rectangle.NO_BORDER));
        tabla1.addCell(reporte.celda("IVA:", font, contenido, derecha, 0, 1, Rectangle.RECTANGLE));
        Configuracion con = (Configuracion) session.get(Configuracion.class, 1);
        double iva = total * (con.getIva() * 0.01);
        tabla1.addCell(reporte.celda(formatoPorcentaje.format(iva), font, contenido, derecha, 0, 1,
                Rectangle.RECTANGLE));
        tabla1.addCell(
                reporte.celda("(CANTIDAD CON LETRA)", font, contenido, izquierda, 3, 2, Rectangle.NO_BORDER));
        tabla1.addCell(reporte.celda("DEDUCIBLE:", font, contenido, derecha, 0, 1, Rectangle.RECTANGLE));
        tabla1.addCell(reporte.celda("" + factura.getDeducible(), font, contenido, derecha, 0, 1,
                Rectangle.RECTANGLE));
        tabla1.addCell(reporte.celda("TOTAL:", font, contenido, derecha, 0, 1, Rectangle.RECTANGLE));
        total += iva;
        tabla1.addCell(reporte.celda(formatoPorcentaje.format(total), font, contenido, derecha, 0, 1,
                Rectangle.RECTANGLE));
        tabla1.addCell(reporte.celda("PAGO EN UNA SOLA EXHIBICIN", font, contenido, izquierda, 3, 1,
                Rectangle.NO_BORDER));
        tabla1.addCell(
                reporte.celda("EFECTOS FISCALES AL PAGO", font, contenido, centro, 2, 1, Rectangle.NO_BORDER));
        session.beginTransaction().rollback();

        tabla.setHeaderRows(2);
        reporte.agregaObjeto(tabla);
        float tam1[] = new float[] { 180, 180, 180, 180 };
        PdfPTable tabla2 = reporte.crearTabla(4, tam1, 100, Element.ALIGN_LEFT);
        tabla2.addCell(
                reporte.celda(reporte.Imagen("imagenes/rq.png"), contenido, centro, 0, 8, Rectangle.NO_BORDER));
        tabla2.addCell(reporte.celda("Regimen Fiscal:REGIMEN GENERAL DE LEY DE PERSONAS MORALES", font,
                contenido, centro, 3, 1, Rectangle.BOTTOM));
        tabla2.addCell(reporte.celda("Sello Digital del SAT:", font, contenido, izquierda, 3, 1, 12));
        tabla2.addCell(reporte.celda(" ", font, contenido, izquierda, 3, 1, 12));
        tabla2.addCell(reporte.celda("Sello Digital del Emisor:", font, contenido, izquierda, 3, 1, 12));
        tabla2.addCell(reporte.celda(" ", font, contenido, izquierda, 3, 1, 12));
        tabla2.addCell(reporte.celda("Cadena original del complemento de certificacin digital del SAT:", font,
                contenido, izquierda, 3, 1, 12));
        tabla2.addCell(reporte.celda(" ", font, contenido, izquierda, 3, 1, 12));
        tabla2.addCell(reporte.celda("Este documento es una representacin impresa de un CFDI", font,
                contenido, izquierda, 3, 1, Rectangle.TOP));

        reporte.agregaObjeto(tabla1);
        reporte.agregaObjeto(tabla2);
        reporte.cerrar();
        reporte.visualizar(fi);

    } catch (Exception e) {
        System.out.println(e);
        e.printStackTrace();
        JOptionPane.showMessageDialog(null, "No se pudo realizar el reporte si el archivo esta abierto.");
    }
}

From source file:Compras.Formatos.java

private void cabeceraFac(PDF reporte, BaseFont bf, PdfPTable tabla, Factura fac) {
    reporte.contenido.setLineWidth(0.5f);
    reporte.contenido.setColorFill(new GrayColor(0.9f));
    reporte.contenido.roundRectangle(35, 660, 543, 40, 5);//cuadro cliente
    reporte.contenido.roundRectangle(35, 618, 543, 40, 5);//cuadro unidad

    reporte.contenido.roundRectangle(353, 738, 223, 10, 0);//cuadro fecha
    reporte.contenido.roundRectangle(353, 728, 223, 10, 0);//cuadro F.Fiscal
    reporte.contenido.roundRectangle(353, 718, 223, 10, 0);//cuadro C. SAT
    reporte.contenido.roundRectangle(353, 708, 223, 10, 0);//cuadro C. Emisor

    Configuracion con = (Configuracion) session.get(Configuracion.class, 1);

    reporte.inicioTexto();/*w w w  .ja va2  s. co  m*/
    reporte.agregaObjeto(reporte.crearImagen("imagenes/factura300115.jpg", 00, -32, 40));
    reporte.contenido.setFontAndSize(bf, 10);
    reporte.contenido.setColorFill(BaseColor.BLACK);
    reporte.contenido.showTextAligned(PdfContentByte.ALIGN_CENTER, "FACTURA", 520, 765, 0);
    reporte.contenido.showTextAligned(PdfContentByte.ALIGN_CENTER, fac.getFolio(), 520, 755, 0);
    reporte.contenido.setFontAndSize(bf, 8);
    reporte.contenido.showTextAligned(PdfContentByte.ALIGN_RIGHT, "Fecha:", 425, 740, 0);
    reporte.contenido.showTextAligned(PdfContentByte.ALIGN_LEFT,
            fac.getFechaFiscal()/*new SimpleDateFormat("dd-MM-yyyy HH:mm:ss").format(new Date())*/, 430, 740,
            0);
    reporte.contenido.showTextAligned(PdfContentByte.ALIGN_RIGHT, "Folio Fiscal:", 425, 730, 0);
    reporte.contenido.showTextAligned(PdfContentByte.ALIGN_LEFT, fac.getFFiscal(), 430, 730, 0);
    reporte.contenido.showTextAligned(PdfContentByte.ALIGN_RIGHT, "Certificado SAT:", 425, 720, 0);
    reporte.contenido.showTextAligned(PdfContentByte.ALIGN_RIGHT, "Certificado Emisor:", 425, 710, 0);
    reporte.contenido.setFontAndSize(bf, 6);
    reporte.contenido.showTextAligned(PdfContentByte.ALIGN_LEFT,
            "2a. DE LA CADENA S/N COL. SAN PEDRO TOTOLTEPEC MEXICO CP 50200", 40, 702, 0);
    reporte.contenido.showTextAligned(PdfContentByte.ALIGN_RIGHT, "Tel. (01 722) 199-24- 04", 570, 702, 0);

    reporte.contenido.setFontAndSize(bf, 8);
    //************************datos del cliente****************************
    DateFormat dateFormat = new SimpleDateFormat("dd-MM-yyyy");//YYYY-MM-DD HH:MM:SS
    reporte.contenido.showTextAligned(PdfContentByte.ALIGN_RIGHT, "Cliente: " + fac.getNombreReceptor(), 80,
            692, 0);
    reporte.contenido.showTextAligned(PdfContentByte.ALIGN_LEFT, fac.getNombreReceptor(), 85, 692, 0);
    reporte.contenido.showTextAligned(PdfContentByte.ALIGN_RIGHT, "Direccion: ", 80, 682, 0);
    reporte.contenido.showTextAligned(PdfContentByte.ALIGN_LEFT,
            fac.getCalleReceptor() + " " + fac.getNumeroExteriorReceptor() + " Col:" + fac.getColoniaReceptor(),
            85, 682, 0);
    reporte.contenido.showTextAligned(PdfContentByte.ALIGN_RIGHT, "Ciudad: ", 80, 672, 0);
    reporte.contenido.showTextAligned(PdfContentByte.ALIGN_RIGHT,
            fac.getMunicipioReceptor() + " " + fac.getMunicipioReceptor(), 85, 672, 0);
    reporte.contenido.showTextAligned(PdfContentByte.ALIGN_RIGHT, "R.F.C.: ", 80, 662, 0);
    reporte.contenido.showTextAligned(PdfContentByte.ALIGN_RIGHT, fac.getRfcReceptor(), 85, 662, 0);

    //**********************datos de la unidad*****************************
    reporte.contenido.showTextAligned(PdfContentByte.ALIGN_RIGHT, "Marca: ", 80, 650, 0);
    reporte.contenido.showTextAligned(PdfContentByte.ALIGN_RIGHT, "Tipo: ", 80, 640, 0);
    reporte.contenido.showTextAligned(PdfContentByte.ALIGN_RIGHT, "No. Serie: ", 80, 630, 0);
    //reporte.contenido.showTextAligned(PdfContentByte.ALIGN_RIGHT, "asegurado: ", 80, 620, 0);

    reporte.contenido.showTextAligned(PdfContentByte.ALIGN_RIGHT, "Modelo: ", 350, 650, 0);
    reporte.contenido.showTextAligned(PdfContentByte.ALIGN_RIGHT, "Placas: ", 350, 640, 0);
    reporte.contenido.showTextAligned(PdfContentByte.ALIGN_RIGHT, "Poliza: ", 350, 630, 0);
    reporte.contenido.showTextAligned(PdfContentByte.ALIGN_RIGHT, "Km: ", 350, 620, 0);

    reporte.contenido.showTextAligned(PdfContentByte.ALIGN_RIGHT, "Sinisestro: ", 490, 650, 0);
    reporte.contenido.showTextAligned(PdfContentByte.ALIGN_RIGHT, "INC: ", 490, 640, 0);
    reporte.contenido.showTextAligned(PdfContentByte.ALIGN_RIGHT, "Reporte: ", 490, 630, 0);

    /*if(factura==null)
    {
    reporte.contenido.showTextAligned(PdfContentByte.ALIGN_LEFT, ord.getMarca().getMarcaNombre(), 80, 650, 0);
    reporte.contenido.showTextAligned(PdfContentByte.ALIGN_LEFT, ord.getTipo().getTipoNombre(), 80, 640, 0);
    if(ord.getNoSerie()!=null)
        reporte.contenido.showTextAligned(PdfContentByte.ALIGN_LEFT, ord.getNoSerie(), 80, 630, 0);
            
    reporte.contenido.showTextAligned(PdfContentByte.ALIGN_LEFT, ""+ord.getModelo(), 350, 650, 0);
    if(ord.getNoPlacas()!=null)
        reporte.contenido.showTextAligned(PdfContentByte.ALIGN_LEFT, ord.getNoPlacas(), 350, 640, 0);
    if(ord.getPoliza()!=null)
        reporte.contenido.showTextAligned(PdfContentByte.ALIGN_LEFT, ord.getPoliza(), 350, 630, 0);
            
    if(ord.getTipoCliente().compareTo("2")==0 || ord.getTipoCliente().compareTo("3")==0)
    {
        reporte.contenido.showTextAligned(PdfContentByte.ALIGN_RIGHT, "Tercero: ", 80, 620, 0);
        reporte.contenido.showTextAligned(PdfContentByte.ALIGN_LEFT, ord.getClientes().getNombre(), 80, 620, 0);
    }
    else
    {
        reporte.contenido.showTextAligned(PdfContentByte.ALIGN_RIGHT, "Asegurado: ", 80, 620, 0);
        reporte.contenido.showTextAligned(PdfContentByte.ALIGN_LEFT, ord.getClientes().getNombre(), 80, 620, 0);
    }
            
    if(ord.getKm()!=null)
        reporte.contenido.showTextAligned(PdfContentByte.ALIGN_RIGHT, ord.getKm(), 365, 620, 0);
            
    if(ord.getSiniestro()!=null)
        reporte.contenido.showTextAligned(PdfContentByte.ALIGN_LEFT, ord.getSiniestro(), 490, 650, 0);
    if(ord.getInciso()!=null)
        reporte.contenido.showTextAligned(PdfContentByte.ALIGN_LEFT, ord.getInciso(), 490, 640, 0);
    if(ord.getNoReporte()!=null)
    reporte.contenido.showTextAligned(PdfContentByte.ALIGN_LEFT, ord.getNoReporte(), 490, 630, 0);
    }*/
    reporte.finTexto();

    //agregamos renglones vacios para dejar un espacio
    reporte.agregaObjeto(new Paragraph(" "));
    reporte.agregaObjeto(new Paragraph(" "));
    reporte.agregaObjeto(new Paragraph(" "));
    reporte.agregaObjeto(new Paragraph(" "));
    reporte.agregaObjeto(new Paragraph(" "));
    reporte.agregaObjeto(new Paragraph(" "));
    reporte.agregaObjeto(new Paragraph(" "));
    reporte.agregaObjeto(new Paragraph(" "));

    Font font = new Font(Font.FontFamily.HELVETICA, 6, Font.BOLD);
    Font font_mini = new Font(Font.FontFamily.HELVETICA, 1, Font.BOLD);
    BaseColor cabecera = BaseColor.GRAY;
    BaseColor contenido = BaseColor.WHITE;
    int centro = Element.ALIGN_CENTER;
    int izquierda = Element.ALIGN_LEFT;
    int derecha = Element.ALIGN_RIGHT;

    tabla.addCell(reporte.celda("Cant", font, contenido, centro, 0, 1, Rectangle.RECTANGLE + Rectangle.TOP));
    tabla.addCell(reporte.celda("U/Med", font, contenido, centro, 0, 1, Rectangle.RECTANGLE + Rectangle.TOP));
    tabla.addCell(reporte.celda("D E S C R I P C I O N", font, contenido, centro, 0, 1,
            Rectangle.RECTANGLE + Rectangle.TOP));
    tabla.addCell(
            reporte.celda("Precio c/u", font, contenido, centro, 0, 1, Rectangle.RECTANGLE + Rectangle.TOP));
    tabla.addCell(
            reporte.celda("T O T A L", font, contenido, centro, 0, 1, Rectangle.RECTANGLE + Rectangle.TOP));
    tabla.addCell(reporte.celda(" ", font_mini, null, centro, 5, 1, Rectangle.BOTTOM));
}

From source file:de.aidger.utils.pdf.BalanceReportConverter.java

License:Open Source License

/**
 * Creates a row with the data of one course and returns it.
 * //from w  w w  . j  a v a 2s .c o m
 * @param course
 *            The course of which the data shall be written to a row.
 * @return The row as a PdfPCell
 */
private PdfPCell addRow(BalanceCourse balanceCourse, float[] columnwidths, ArrayList<Integer> costUnits) {
    PdfPTable groupContentTable = new PdfPTable(columnwidths);
    ArrayList<Object> rowObjectVector = new ArrayList<Object>();
    Font tableContentFont;
    try {
        tableContentFont = new Font(BaseFont.createFont(BaseFont.HELVETICA, BaseFont.CP1252, BaseFont.EMBEDDED),
                9);
        for (int i = 0; i < 6; i++) {
            rowObjectVector.add((balanceCourse).getCourseObject()[i]);
        }

        sums.set(4, (Double) sums.get(4) + (Double) rowObjectVector.get(4));
        sums.set(5, (Double) sums.get(5) + (Double) rowObjectVector.get(5));

        int i = 0;
        for (Integer costUnit : costUnits) {
            boolean foundCostUnit = false;
            for (BudgetCost budgetCost : balanceCourse.getBudgetCosts()) {
                int budgetCostId = budgetCost.getId();
                /*
                 * Set the budget cost of the cost unit to the one
                 * specified.
                 */
                if (budgetCostId == costUnit) {
                    rowObjectVector.add(budgetCost.getValue());
                    foundCostUnit = true;
                }
            }
            if (!foundCostUnit) {
                rowObjectVector.add(0.0);
            }
            if (sums.size() < rowObjectVector.size()) {
                sums.add(rowObjectVector.get(rowObjectVector.size() - 1));
            } else {
                sums.set(rowObjectVector.size() - 1, (Double) sums.get(rowObjectVector.size() - 1)
                        + (Double) rowObjectVector.get(rowObjectVector.size() - 1));
            }
        }
        for (Object courseObject : rowObjectVector.toArray()) {
            PdfPCell cell = null;
            if (courseObject.getClass().equals(Double.class)) {
                /*
                 * Round to the configured precision.
                 */
                int decimalPlace = Integer.parseInt(Runtime.getInstance().getOption("rounding", "2"));
                double rounded = new BigDecimal((Double) courseObject)
                        .setScale(decimalPlace, BigDecimal.ROUND_HALF_EVEN).doubleValue();
                cell = new PdfPCell(
                        new Phrase(new BigDecimal(rounded).setScale(2, BigDecimal.ROUND_HALF_EVEN).toString(),
                                tableContentFont));
            } else {
                cell = new PdfPCell(new Phrase(courseObject.toString(), tableContentFont));
            }
            if (i != 0) {
                cell.setBorder(4 + Rectangle.BOTTOM);
            } else {
                cell.setBorder(0 + Rectangle.BOTTOM);
                i++;
            }
            cell.setPaddingBottom(5);
            groupContentTable.addCell(cell);
        }
        PdfPCell cell = new PdfPCell(groupContentTable);
        cell.setBorder(0);
        return cell;
    } catch (DocumentException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
    return null;
}

From source file:es.baudlord.pcpartpicker.model.Build.java

License:Open Source License

public PdfPTable createPdfPTable(Font font) throws DocumentException {
    List<PdfPCell> cellList = new ArrayList<>();

    cellList.addAll(Arrays.asList(new PdfPCell(new Phrase(GENERAL_BUNDLE.getString("column.Name"), font)),
            new PdfPCell(new Phrase(GENERAL_BUNDLE.getString("column.UnitPrice"), font)),
            new PdfPCell(new Phrase(GENERAL_BUNDLE.getString("column.Amount"), font)),
            new PdfPCell(new Phrase(GENERAL_BUNDLE.getString("column.Price"), font))));

    for (Product.Category c : Product.Category.values()) {
        ArrayList<Part> parts = getParts(c);
        if (parts.isEmpty())
            continue;

        parts.forEach(product -> cellList
                .addAll(Arrays.asList(new PdfPCell(new Phrase(product.getDescription(), font)),
                        new PdfPCell(new Phrase(Coin.formatNet(product.getPrice()), font)),
                        new PdfPCell(new Phrase(String.valueOf(product.getAmount()), font)),
                        new PdfPCell(new Phrase(Coin.formatNet(product.getTotalPrice()), font)))));
    }/*from ww  w .j a va  2s . c o  m*/
    PdfPCell line = new PdfPCell(new Phrase(""));
    line.setColspan(4);
    cellList.add(line);

    double totalPrice = this.getTotalPrice();
    font.setSize(font.getSize() + 2);

    PdfPCell total = new PdfPCell(new Phrase(GENERAL_BUNDLE.getString("total.price").toUpperCase(), font));
    total.setColspan(3);
    cellList.addAll(Arrays.asList(total, new PdfPCell(new Phrase(Coin.formatNet(totalPrice), font))));

    PdfPCell totalTax = new PdfPCell(new Phrase(GENERAL_BUNDLE.getString("total.tax").toUpperCase(), font));
    totalTax.setColspan(3);
    cellList.addAll(Arrays.asList(totalTax, new PdfPCell(new Phrase(Coin.formatTax(totalPrice), font))));

    PdfPCell totalPvp = new PdfPCell(new Phrase(GENERAL_BUNDLE.getString("total.pvp").toUpperCase(), font));
    totalPvp.setColspan(3);
    cellList.addAll(Arrays.asList(totalPvp, new PdfPCell(new Phrase(Coin.formatGross(totalPrice), font))));

    PdfPTable table = new PdfPTable(4);
    table.setWidths(new int[] { 50, 10, 5, 10 });
    table.setHeaderRows(1);

    for (int i = 0; i < table.getNumberOfColumns(); i++) {
        cellList.get(i).setBorder(Rectangle.BOTTOM);
        table.addCell(cellList.get(i));
    }
    for (int i = table.getNumberOfColumns(); i < cellList.size() - 6; i++) {
        cellList.get(i).setBorder(0);
        table.addCell(cellList.get(i));
    }
    for (int i = cellList.size() - 6; i < cellList.size() - 4; i++) {
        cellList.get(i).setBorder(Rectangle.TOP);
        table.addCell(cellList.get(i));
    }
    for (int i = cellList.size() - 4; i < cellList.size(); i++) {
        cellList.get(i).setBorder(0);
        table.addCell(cellList.get(i));
    }

    return table;
}

From source file:eu.aniketos.wp1.ststool.report.pdfgenerator.AbstractContentFactory.java

License:Open Source License

protected PdfPCell getHeaderCell(String[] header) {

    Phrase p = new Phrase();
    p.setFont(TABLE_HEADER);//from  w  ww.  jav a2 s.  co m
    for (String s : header) {
        p.add(new Chunk(s));
        p.add(Chunk.NEWLINE);
    }
    PdfPCell cell = new PdfPCell(p);
    cell.setHorizontalAlignment(Element.ALIGN_CENTER);
    cell.setBorder(Rectangle.BOTTOM | Rectangle.TOP);
    cell.setBorderWidthTop(1.5f);
    cell.setBorderWidthBottom(1.5f);
    cell.setPaddingBottom(7);
    cell.setPaddingTop(2);
    return cell;
}

From source file:eu.aniketos.wp1.ststool.report.pdfgenerator.AbstractContentFactory.java

License:Open Source License

protected PdfPCell getContentCell() {

    PdfPCell cell = new PdfPCell();
    cell.setHorizontalAlignment(Element.ALIGN_CENTER);
    cell.setVerticalAlignment(Element.ALIGN_MIDDLE);
    cell.setPaddingBottom(5);//from  www  .  j  a  v a2 s. com
    cell.setBorder(Rectangle.BOTTOM | Rectangle.TOP);
    return cell;
}

From source file:fll.web.report.finalist.AbstractFinalistSchedule.java

License:Open Source License

/**
 * Create a page for the specified category.
 * //from  ww w. j  ava 2s.c  o  m
 * @throws DocumentException
 * @throws SQLException
 */
private void createCategoryPage(final Document document, final Connection connection, final String category,
        final String room, final FinalistSchedule schedule) throws DocumentException, SQLException {
    // header name
    final Paragraph para = new Paragraph();
    para.add(Chunk.NEWLINE);

    para.add(new Chunk(String.format("Finalist schedule for %s", category), TITLE_FONT));
    para.add(Chunk.NEWLINE);
    if (null != room && !"".equals(room)) {
        para.add(new Chunk(String.format("Room: %s", room), TITLE_FONT));
    }
    document.add(para);

    final PdfPTable schedTable = new PdfPTable(new float[] { 12.5f, 12.5f, 37.5f, 37.5f });
    schedTable.setWidthPercentage(100);
    schedTable.getDefaultCell().setBorder(0);
    schedTable.getDefaultCell().enableBorderSide(Rectangle.BOTTOM);
    schedTable.getDefaultCell().setHorizontalAlignment(Element.ALIGN_CENTER);

    schedTable.addCell(new Phrase("Time", SCHEDULE_HEADER_FONT));

    schedTable.addCell(new Phrase("Team #", SCHEDULE_HEADER_FONT));

    schedTable.addCell(new Phrase("Team Name", SCHEDULE_HEADER_FONT));

    schedTable.addCell(new Phrase("Organization", SCHEDULE_HEADER_FONT));

    // foreach information output
    for (final FinalistDBRow row : schedule.getScheduleForCategory(category)) {
        // time, number, name, organization
        schedTable.addCell(new Phrase(String.format("%d:%02d", row.getHour(), row.getMinute()), SCHEDULE_FONT));

        final Team team = Team.getTeamFromDatabase(connection, row.getTeamNumber());
        schedTable.addCell(new Phrase(String.valueOf(team.getTeamNumber()), SCHEDULE_FONT));

        schedTable.addCell(new Phrase(team.getTeamName(), SCHEDULE_FONT));

        schedTable.addCell(new Phrase(team.getOrganization(), SCHEDULE_FONT));

    }
    document.add(schedTable);

    document.add(Chunk.NEXTPAGE);
}