Example usage for com.itextpdf.text Element ALIGN_JUSTIFIED_ALL

List of usage examples for com.itextpdf.text Element ALIGN_JUSTIFIED_ALL

Introduction

In this page you can find the example usage for com.itextpdf.text Element ALIGN_JUSTIFIED_ALL.

Prototype

int ALIGN_JUSTIFIED_ALL

To view the source code for com.itextpdf.text Element ALIGN_JUSTIFIED_ALL.

Click Source Link

Document

Does the same as ALIGN_JUSTIFIED but the last line is also spread out.

Usage

From source file:BusinessLogic.Controller.HandleCertificate.java

public void downloadCertificate(ContractDAO contrDAO, CertificateDAO certificateDAO, UserDAO usDAO,
        HttpServletResponse response, int idUser, int option) throws DocumentException, IOException {
    User user = usDAO.searchByPkID(idUser);
    List<Certificate> certificateObject = certificateDAO.searchUserAproved();
    List<Certificate> certificateReturn = new ArrayList<Certificate>();
    if (certificateObject != null) {
        certificateReturn.clear();/*from w  w  w.  ja va2s . c o  m*/
        for (int i = 0; i < certificateObject.size(); i++) {
            if (certificateObject.get(i).getFkuserID().getPkID().equals(user.getPkID())) {
                certificateReturn.add(certificateObject.get(i));
            }
        }
    }
    Contract contractObject = contrDAO.getUserContract(new User(user.getPkID()));
    Certificate cert = certificateReturn.get(option);
    Document document = new Document();
    ByteArrayOutputStream baos = new ByteArrayOutputStream();
    PdfWriter.getInstance(document, baos);
    document.open();
    Font fuente = new Font();
    fuente.setStyle(Font.BOLD);
    fuente.setColor(BaseColor.BLACK);
    fuente.setFamily(Font.FontFamily.TIMES_ROMAN.toString());
    fuente.setSize(15);
    Paragraph header = new Paragraph("\n\n\n\n\nEL DEPARTAMENTO DE GESTION HUMANA\n"
            + "DE TALENTO-HUMANO LTDA\n\n\n\n\n" + "CERTIFICA QUE:\n\n\n\n\n", fuente);
    header.setAlignment(Element.ALIGN_CENTER);
    Calendar fecha = new GregorianCalendar();
    int annio = fecha.get(Calendar.YEAR);
    int mes = fecha.get(Calendar.MONTH) + 1;
    int dia = fecha.get(Calendar.DAY_OF_MONTH);
    Paragraph endtext = new Paragraph("\n\nSe expide la presente certificacion a solicitud"
            + " del interesado a la fecha de : " + dia + "/" + mes + "/" + annio
            + "\n\n\nCordialmente\n\n\nEdwin Alexander Bohorquez\nGERENTE GENERAL DE TALENTO-HUMANO LTDA");
    endtext.setAlignment(Element.ALIGN_LEFT);
    String typeCertificate = "";
    if (cert.getType().toLowerCase().equals("laboral")) {
        typeCertificate = "Laboral";
        document.add(header);
        List<String> positionlist = new ArrayList<String>();
        for (Position cargo : contractObject.getPositionSet()) {
            positionlist.add(cargo.getName());
        }
        Paragraph body = new Paragraph(user.getName().toUpperCase() + " " + user.getLastname().toUpperCase()
                + " con cedula de ciudadania No." + user.getIdentifyCard() + ", trabaja en esta empresa"
                + " desde " + contractObject.getStartDate() + ", desempeandose actualmente como "
                + positionlist + " con una asignacion mensual de $" + contractObject.getSalary()
                + ".Su contrato de trabajo es a termino " + contractObject.getType() + ".");
        body.setAlignment(Element.ALIGN_JUSTIFIED_ALL);
        document.add(body);
        document.add(endtext);
    } else if (cert.getType().toLowerCase().equals("nmina")) {
        typeCertificate = "Nomina";
        Paragraph Payroll_header = new Paragraph("DEPARTAMENTO DE CONTABILIDAD\n" + "TALENTO-HUMANO LTDA\n\n"
                + "LIQUIDACION DE NOMINA:\n" + "Nombre del empleado : " + user.getName() + " "
                + user.getLastname() + "\n" + "Cedula : " + user.getIdentifyCard() + "\n\n", fuente);
        Payroll_header.setAlignment(Element.ALIGN_CENTER);
        document.add(Payroll_header);
        double commissions = 10000;
        double extra_hours = 50000;
        double transportation_aid = 63600;
        double totalAccrued = contractObject.getSalary() + commissions + extra_hours + transportation_aid;

        PdfPTable basetable = new PdfPTable(2);
        PdfPCell headertable = new PdfPCell(new Paragraph("Tabla Base", fuente));
        headertable.setColspan(2);
        basetable.addCell(headertable);
        PdfPCell cell1 = new PdfPCell(new Paragraph("Salario Basico : "));
        PdfPCell cell2 = new PdfPCell(new Paragraph(String.valueOf(contractObject.getSalary())));
        PdfPCell cell3 = new PdfPCell(new Paragraph("Comisiones : "));
        PdfPCell cell4 = new PdfPCell(new Paragraph(String.valueOf(commissions)));
        PdfPCell cell5 = new PdfPCell(new Paragraph("Horas Extras : "));
        PdfPCell cell6 = new PdfPCell(new Paragraph(String.valueOf(extra_hours)));
        PdfPCell cell7 = new PdfPCell(new Paragraph("Auxilio de transporte : "));
        PdfPCell cell8 = new PdfPCell(new Paragraph(String.valueOf(transportation_aid)));
        PdfPCell ce9 = new PdfPCell(new Paragraph("Total Devengado : "));
        PdfPCell ce10 = new PdfPCell(new Paragraph(" $ " + String.valueOf(totalAccrued)));
        basetable.setWidthPercentage(100F);
        basetable.setHorizontalAlignment(Element.ALIGN_CENTER);
        basetable.addCell(cell1);
        basetable.addCell(cell2);
        basetable.addCell(cell3);
        basetable.addCell(cell4);
        basetable.addCell(cell5);
        basetable.addCell(cell6);
        basetable.addCell(cell7);
        basetable.addCell(cell8);
        basetable.addCell(ce9);
        basetable.addCell(ce10);
        document.add(basetable);

        PdfPTable tableliquidation = new PdfPTable(2);
        PdfPCell title = new PdfPCell(
                new Paragraph("Liquidacion. Deducciones de nomina(Conceptos a cargo del empleado) ", fuente));
        title.setColspan(2);
        tableliquidation.addCell(title);
        PdfPCell cell9 = new PdfPCell(new Paragraph("Salud (4%) : "));
        PdfPCell cell10 = new PdfPCell(new Paragraph(String.valueOf(contractObject.getSalary() * 0.04)));
        PdfPCell cell11 = new PdfPCell(new Paragraph("Pension (4%) : "));
        PdfPCell cell12 = new PdfPCell(new Paragraph(String.valueOf(contractObject.getSalary() * 0.04)));

        tableliquidation.setWidthPercentage(100F);
        tableliquidation.setHorizontalAlignment(Element.ALIGN_CENTER);
        tableliquidation.addCell(cell9);
        tableliquidation.addCell(cell10);
        tableliquidation.addCell(cell11);
        tableliquidation.addCell(cell12);
        document.add(tableliquidation);

        PdfPTable tablesocialSecurity = new PdfPTable(2);
        PdfPCell title2 = new PdfPCell(new Paragraph("Seguridad Social a cargo del empleador", fuente));
        title2.setColspan(2);
        tablesocialSecurity.addCell(title2);
        PdfPCell cell13 = new PdfPCell(new Paragraph("Salud (8.5%) : "));
        PdfPCell cell14 = new PdfPCell(new Paragraph(String.valueOf(contractObject.getSalary() * 0.085)));
        PdfPCell cell15 = new PdfPCell(new Paragraph("Pension (12%) : "));
        PdfPCell cell16 = new PdfPCell(new Paragraph(String.valueOf(contractObject.getSalary() * 0.12)));
        PdfPCell cell17 = new PdfPCell(new Paragraph("A.R.P : "));
        PdfPCell cell18 = new PdfPCell(new Paragraph(String.valueOf(contractObject.getSalary() * 0.00522)));

        tablesocialSecurity.setWidthPercentage(100F);
        tablesocialSecurity.setHorizontalAlignment(Element.ALIGN_CENTER);
        tablesocialSecurity.addCell(cell13);
        tablesocialSecurity.addCell(cell14);
        tablesocialSecurity.addCell(cell15);
        tablesocialSecurity.addCell(cell16);
        tablesocialSecurity.addCell(cell17);
        tablesocialSecurity.addCell(cell18);
        document.add(tablesocialSecurity);

        PdfPTable social_benefits = new PdfPTable(2);
        PdfPCell title3 = new PdfPCell(new Paragraph("Prestaciones Sociales", fuente));
        title3.setColspan(2);
        social_benefits.addCell(title3);
        PdfPCell cell19 = new PdfPCell(new Paragraph("Prima de servicios : "));
        PdfPCell cell20 = new PdfPCell(new Paragraph(String.valueOf(totalAccrued * 0.0833)));
        PdfPCell cell21 = new PdfPCell(new Paragraph("Cesantias : "));
        PdfPCell cell22 = new PdfPCell(new Paragraph(String.valueOf(totalAccrued * 0.0833)));
        PdfPCell cell23 = new PdfPCell(new Paragraph("Intereses sobre las cesantias : "));
        PdfPCell cell24 = new PdfPCell(new Paragraph(String.valueOf(totalAccrued * 0.0833 * 0.12)));
        PdfPCell cell25 = new PdfPCell(new Paragraph("Vacaciones : "));
        PdfPCell cell26 = new PdfPCell(new Paragraph(String.valueOf(contractObject.getSalary() * 0.0417)));
        social_benefits.setWidthPercentage(100F);
        social_benefits.setHorizontalAlignment(Element.ALIGN_CENTER);
        social_benefits.addCell(cell19);
        social_benefits.addCell(cell20);
        social_benefits.addCell(cell21);
        social_benefits.addCell(cell22);
        social_benefits.addCell(cell23);
        social_benefits.addCell(cell24);
        social_benefits.addCell(cell25);
        social_benefits.addCell(cell26);
        document.add(social_benefits);

        PdfPTable fiscal_contributions = new PdfPTable(2);
        PdfPCell title4 = new PdfPCell(new Paragraph("Aportes Parafiscales", fuente));
        title4.setColspan(2);
        fiscal_contributions.addCell(title4);
        PdfPCell cell27 = new PdfPCell(new Paragraph("Cajas de compensacion familiar (4%) : "));
        PdfPCell cell28 = new PdfPCell(
                new Paragraph(String.valueOf((contractObject.getSalary() + extra_hours + commissions) * 0.04)));
        PdfPCell cell29 = new PdfPCell(new Paragraph("I.CB.F (3%) : "));
        PdfPCell cell30 = new PdfPCell(
                new Paragraph(String.valueOf((contractObject.getSalary() + extra_hours + commissions) * 0.03)));
        PdfPCell cell31 = new PdfPCell(new Paragraph("Sena (2%) : "));
        PdfPCell cell32 = new PdfPCell(
                new Paragraph(String.valueOf((contractObject.getSalary() + extra_hours + commissions) * 0.02)));
        fiscal_contributions.setWidthPercentage(100F);
        fiscal_contributions.setHorizontalAlignment(Element.ALIGN_CENTER);
        fiscal_contributions.addCell(cell27);
        fiscal_contributions.addCell(cell28);
        fiscal_contributions.addCell(cell29);
        fiscal_contributions.addCell(cell30);
        fiscal_contributions.addCell(cell31);
        fiscal_contributions.addCell(cell32);
        document.add(fiscal_contributions);

        PdfPTable totalValue = new PdfPTable(2);
        PdfPCell title5 = new PdfPCell(new Paragraph("Neto a pagar al empleado", fuente));
        title5.setColspan(2);
        totalValue.addCell(title5);
        PdfPCell cell33 = new PdfPCell(new Paragraph(" Total devengado - salud - pension"));
        cell33.setColspan(2);
        PdfPCell cell34 = new PdfPCell(new Paragraph(
                " $ " + String.valueOf(totalAccrued - contractObject.getSalary() * 0.08), fuente));
        cell34.setColspan(2);
        totalValue.setWidthPercentage(100F);
        totalValue.setHorizontalAlignment(Element.ALIGN_CENTER);
        totalValue.addCell(cell33);
        totalValue.addCell(cell34);
        document.add(totalValue);

        document.add(endtext);
    } else if (cert.getType().toLowerCase().equals("salud")) {
        typeCertificate = "Salud";
        document.add(header);
        Paragraph body = new Paragraph(user.getName().toUpperCase() + " " + user.getLastname().toUpperCase()
                + " con cedula de ciudadania No." + user.getIdentifyCard() + ", esta afiliado desde "
                + contractObject.getStartHealthDate() + " a la empresa de salud "
                + contractObject.getHealthEnterprise() + ".");
        body.setAlignment(Element.ALIGN_JUSTIFIED_ALL);
        document.add(body);
        document.add(endtext);
    } else if (cert.getType().toLowerCase().equals("pensin")) {
        typeCertificate = "Pension";
        document.add(header);
        Paragraph body = new Paragraph(user.getName().toUpperCase() + " " + user.getLastname().toUpperCase()
                + " con cedula de ciudadania No." + user.getIdentifyCard()
                + ", esta afiliado a la empresa de pension " + contractObject.getPensionEnterprise()
                + ".La fecha de inicio de pension es " + contractObject.getStartPensionDate() + ".");
        body.setAlignment(Element.ALIGN_JUSTIFIED_ALL);
        document.add(body);
        document.add(endtext);
    }
    document.close();
    response.setHeader("Expires", "0");
    response.setHeader("Cache-Control", "must-revalidate, post-check=0, pre-check=0");
    response.setHeader("Pragma", "public");
    response.setContentType("application/octet-strem");
    File f = new File("Certificado" + typeCertificate + ".pdf");
    response.setHeader("Content-Disposition", "attachment;filename=" + f.getName());
    response.setContentLength(baos.size());
    System.out.println("Hasta aca crea el pdf bien");
    OutputStream os = response.getOutputStream();
    System.out.println("Ac'a ya deberia haber descargado");
    baos.writeTo(os);
    os.flush();
    os.close();
}

From source file:cimav.restrh.services.JustificacionREST.java

@GET
@Path("pdficar")
@Produces("application/pdf")
public Response pdficar(@DefaultValue("0") @QueryParam("id") Integer id_param) {
    Justificacion justi = (Justificacion) JustificacionREST.this.find(id_param);

    String diasCorresponde = "corresponde a " + justi.getNumDiasPlazo() + " das";
    if (justi.getNumDiasPlazo() == 1) {
        diasCorresponde = "corresponde a un da";
    }//from  w w  w . jav a 2  s.  co  m

    // <editor-fold defaultstate="collapsed" desc="Constantes de texto">            
    HashMap<String, String> mapa = new HashMap();
    mapa.put("texto1_I",
            "No existan bienes o servicios alternativos o sustitutos tcnicamente razonables, o bien, que en el "
                    + "mercado slo existe un posible oferente, o se trate de una persona que posee la titularidad o el "
                    + "licenciamiento exclusivo de patentes, derechos de autor, u otros derechos exclusivos, o por "
                    + "tratarse de obras de arte.");
    mapa.put("texto1_III",
            "Existan circunstancias que puedan provocar prdidas o costos adicionales importantes, "
                    + "cuantificados y justificados.");
    mapa.put("texto1_XIV",
            "Se trate de los servicios prestados por una persona fsica a que se refiere la fraccin "
                    + "VII del artculo 3 de esta Ley, siempre que stos sean realizados por ella misma sin "
                    + "requerir de la utilizacin de ms de un especialista o tcnico.");
    mapa.put("texto1_XV",
            "Se trate de servicios de mantenimiento de bienes en los que no sea posible precisar "
                    + "su alcance, establecer las cantidades de trabajo o determinar las especificaciones "
                    + "correspondientes.");
    mapa.put("texto1_XVII",
            "Se trate de equipos especializados, sustancias y materiales de origen qumico, fsico "
                    + "qumico o bioqumico para ser utilizadas en actividades experimentales requeridas "
                    + "en proyectos de investigacin cientfica y desarrollo tecnolgico, siempre que dichos "
                    + "proyectos se encuentren autorizados por quien determine el titular de la dependencia "
                    + "o el rgano de gobierno de la entidad.");
    mapa.put("plazo_0", "El plazo en que se requiere el suministro de los " + justi.getBienServicioTxt()
            + ", corresponde al periodo del " + justi.getFechaInicio().getDayOfMonth() + " de "
            + justi.getFechaInicio().getMonth().getDisplayName(TextStyle.FULL, new Locale("es", "ES")) + " de "
            + justi.getFechaInicio().getYear() + " y hasta el " + justi.getFechaTermino().getDayOfMonth()
            + " de " + justi.getFechaTermino().getMonth().getDisplayName(TextStyle.FULL, new Locale("es", "ES"))
            + " de " + justi.getFechaTermino().getYear() + ". Las condiciones en las que se "
            + "entregarn los " + justi.getBienServicioTxt() + " son las siguientes:\n\n "
            + justi.getCondicionesPago());
    mapa.put("plazo_1", "La fecha en que se requiere el suministro de los " + justi.getBienServicioTxt()
            + ", corresponde al da " + justi.getFechaTermino().getDayOfMonth() + " de "
            + justi.getFechaTermino().getMonth().getDisplayName(TextStyle.FULL, new Locale("es", "ES")) + " de "
            + justi.getFechaTermino().getYear() + ". Las condiciones en las que se " + "entregarn los "
            + justi.getBienServicioTxt() + " son las siguientes:\n\n " + justi.getCondicionesPago());
    mapa.put("plazo_2",
            "El plazo en que se requiere el suministro de los " + justi.getBienServicioTxt() + ", "
                    + diasCorresponde + " despus de la elaboracin de este documento."
                    + " Las condiciones en las que se " + "entregarn los " + justi.getBienServicioTxt()
                    + " son las siguientes:\n\n " + justi.getCondicionesPago());
    mapa.put("nota_1",
            "Asimismo se hace constar mediante el sello y firma del responsable del rea de "
                    + "Almacn, la No Existencia de Bienes o Nivel de Inventario que demuestra que se "
                    + "cumpli con lo establecido en el artculo 27 del RLAASP.");
    mapa.put("transparencia_unico",
            "Para la integracin del procedimiento de contratacin por adjudicacin directa, los servidores "
                    + "pblicos de las reas requirentes han tenido acceso de manera oportuna, clara y completa de "
                    + "las caractersticas requeridas de los " + justi.getBienServicioTxt()
                    + " con el fin de demostrar que es " + "el nico proveedor que proporciona los "
                    + justi.getBienServicioTxt() + " que se pretenden contratar, en "
                    + "el entendido que para garantizar la transparencia del procedimiento de contratacin, la "
                    + "informacin respectiva ser incorporada al Sistema de Compras Gubernamentales "
                    + "(CompraNet), en los trminos de las disposiciones legales aplicables, "
                    + "Lo anterior de acuerdo con lo establecido en el numeral 4.2.4 (ADJUDICACIN DIRECTA) y "
                    + "numeral 4.2.4.1.1 (Verificar Acreditamiento de Excepcin) del Acuerdo por el que se modifica el "
                    + "Manual Administrativo de Aplicacin General en Materia de Adquisiciones, Arrendamientos y "
                    + "Servicios del Sector Pblico, publicado en el Diario Oficial de la Federacin el 21 de noviembre "
                    + "de 2012.");
    mapa.put("transparencia_no_unico",
            "Todas las personas que han presentado cotizacin para la integracin del procedimiento de "
                    + "contratacin por adjudicacin directa, han tenido acceso de manera oportuna, clara y completa "
                    + "de las caractersticas requeridas de los " + justi.getBienServicioTxt()
                    + ", en el entendido que para "
                    + "garantizar la transparencia del procedimiento de contratacin, la informacin respectiva ser "
                    + "incorporada al Sistema de Compras Gubernamentales (CompraNet), en los trminos de las "
                    + "disposiciones legales aplicables. "
                    + "Lo anterior de acuerdo con lo establecido en el numeral 4.2.4 (ADJUDICACIN DIRECTA) y "
                    + "numeral 4.2.4.1.1 (Verificar Acreditamiento de Excepcin) del Acuerdo por el que se modifica el "
                    + "Manual Administrativo de Aplicacin General en Materia de Adquisiciones, Arrendamientos y "
                    + "Servicios del Sector Pblico, publicado en el Diario Oficial de la Federacin el 21 de noviembre "
                    + "de 2012.");

    // </editor-fold>
    StreamingOutput streamingOutput = new StreamingOutput() {
        public void write(OutputStream outputStream) throws IOException, WebApplicationException {

            try {
                String masIva = "";
                if (justi.getIva() != 0) {
                    masIva = " ms IVA";
                }
                String datosBanco = "";
                if (justi.getDatosBanco() != null) {
                    datosBanco = ", datos bancarios: " + justi.getDatosBanco();
                }

                //Create Document instance.
                Document document = new Document();
                PdfWriter.getInstance(document, outputStream);

                document.addAuthor("Generador adquisiciones | " + justi.getEmpleado().getCuentaCimav());
                String fileName1 = (justi.getRequisicion() + "-" + justi.getEmpleado().getCuentaCimav())
                        .replace(" ", "").replace(",", "");
                document.addTitle("Justificacin: " + fileName1);
                document.addSubject("Justificacin de Requisicin");

                document.open();

                Paragraph parrafo = new Paragraph("Centro de Investigacin en Materiales Avanzados S. C.",
                        new Font(Font.FontFamily.TIMES_ROMAN, 17, Font.BOLD));
                parrafo.setAlignment(Element.ALIGN_CENTER);
                document.add(parrafo);

                parrafo = new Paragraph(
                        "JUSTIFICACIN PARA ACREDITAR Y FUNDAR PROCEDIMIENTOS DE "
                                + "CONTRATACIN POR ADJUDICACIN DIRECTA, COMO EXCEPCIN AL DE "
                                + "LICITACIN PBLICA EN EL SUPUESTO DEL ARTICULO 41 FRACCION "
                                + justi.getRomano() + " DE LA "
                                + "LEY DE ADQUISICIONES, ARRENDAMIENTOS Y SERVICIOS DEL SECTOR " + "PBLICO.",
                        new Font(Font.FontFamily.TIMES_ROMAN, 12, Font.BOLD));
                parrafo.setSpacingAfter(20);
                parrafo.setIndentationLeft(30);
                parrafo.setLeading(15);
                parrafo.setSpacingBefore(20);
                parrafo.setAlignment(Element.ALIGN_JUSTIFIED);
                document.add(parrafo);

                parrafo = new Paragraph("COMIT DE ADQUISICIONES, ARRENDAMIENTOS Y SERVICIOS");
                parrafo.setAlignment(Element.ALIGN_CENTER);
                parrafo.setSpacingBefore(20);
                parrafo.setIndentationLeft(80);
                parrafo.setIndentationRight(80);
                document.add(parrafo);

                parrafo = new Paragraph("P R E S E N T E:",
                        new Font(Font.FontFamily.TIMES_ROMAN, 12, Font.BOLD));
                parrafo.setIndentationLeft(30);
                parrafo.setSpacingBefore(20);
                document.add(parrafo);

                parrafo = new Paragraph("Oficio nmero: ",
                        new Font(Font.FontFamily.TIMES_ROMAN, 12, Font.NORMAL));
                parrafo.setIndentationLeft(300);
                parrafo.setAlignment(Element.ALIGN_JUSTIFIED_ALL);
                parrafo.setLeading(15);
                parrafo.setSpacingBefore(20);

                Chunk frase = new Chunk(justi.getRequisicion() + "\n",
                        new Font(Font.FontFamily.TIMES_ROMAN, 12, Font.BOLD));
                parrafo.add(frase);
                frase = new Chunk(
                        "Asunto: Se emite justificacin por la que se "
                                + "acredita y funda la contratacin por adjudicacin directa que se indica.",
                        new Font(Font.FontFamily.TIMES_ROMAN, 12, Font.NORMAL));
                parrafo.add(frase);
                document.add(parrafo);

                parrafo = new Paragraph("", new Font(Font.FontFamily.TIMES_ROMAN, 12, Font.NORMAL));
                parrafo.setSpacingAfter(20);
                parrafo.setIndentationLeft(30);
                parrafo.setLeading(15);
                parrafo.setSpacingBefore(20);
                parrafo.setAlignment(Element.ALIGN_JUSTIFIED);

                frase = new Chunk(
                        "En cumplimiento a lo establecido en el segundo prrafo del artculo 40 de la Ley de "
                                + "Adquisiciones, Arrendamientos y Servicios del Sector Pblico, as como en el artculo 71 del "
                                + "Reglamento de la Ley de Adquisiciones, Arrendamientos y Servicios del Sector Pblico, y con el "
                                + "carcter de Titular del ?rea Requirente, por este conducto hago constar el acreditamiento del o "
                                + "de los criterios, razones, fundamentos y motivos para no llevar a cabo el procedimiento de "
                                + "licitacin pblica y celebrar la contratacin a travs del procedimiento de adjudicacin directa en "
                                + "los trminos establecidos en el artculo 41 Fraccin " + justi.getRomano()
                                + " de la Ley de Adquisiciones, "
                                + "Arrendamientos y Servicios del Sector Pblico",
                        new Font(Font.FontFamily.TIMES_ROMAN, 12, Font.NORMAL));
                parrafo.setSpacingAfter(20);
                parrafo.setIndentationLeft(30);
                parrafo.setLeading(15);
                parrafo.setSpacingBefore(20);
                parrafo.setAlignment(Element.ALIGN_JUSTIFIED);
                parrafo.add(frase);

                /*
                frase = new Chunk("Las dependencias y "
                    + "entidades, bajo su responsabilidad, podrn contratar adquisiciones, arrendamientos y "
                    + "servicios, sin sujetarse al procedimiento de licitacin pblica, a travs de los "
                    + "procedimientos de invitacin a cuando menos tres personas o de adjudicacin directa, "
                    + "cuando:\n" + mapa.get("texto1_" + justi.getRomano()),
                    new Font(Font.FontFamily.TIMES_ROMAN, 12, Font.BOLD));
                parrafo.setSpacingAfter(20);
                parrafo.setIndentationLeft(30);
                parrafo.setLeading(15);
                parrafo.setSpacingBefore(20);
                parrafo.setAlignment(Element.ALIGN_JUSTIFIED);
                parrafo.add(frase); */
                document.add(parrafo);

                parrafo = new Paragraph("Para tal efecto presento la siguiente informacin:",
                        new Font(Font.FontFamily.TIMES_ROMAN, 12, Font.NORMAL));
                parrafo.setSpacingAfter(20);
                parrafo.setIndentationLeft(60);
                parrafo.setLeading(15);
                parrafo.setSpacingBefore(20);
                parrafo.setAlignment(Element.ALIGN_JUSTIFIED);
                document.add(parrafo);

                parrafo = new Paragraph("I.- DESCRIPCIN DE LOS " + justi.getBienServicioTxt().toUpperCase(),
                        new Font(Font.FontFamily.TIMES_ROMAN, 12, Font.BOLD));
                parrafo.setAlignment(Element.ALIGN_CENTER);
                parrafo.setSpacingAfter(10);
                document.add(parrafo);

                parrafo = new Paragraph(
                        "El/Los " + justi.getBienServicioTxt()
                                + " que se pretende contratar, son los siguientes:",
                        new Font(Font.FontFamily.TIMES_ROMAN, 12, Font.NORMAL));
                parrafo.setAlignment(Element.ALIGN_JUSTIFIED);
                parrafo.setIndentationLeft(30);
                document.add(parrafo);

                parrafo = new Paragraph(justi.getDescripcion(),
                        new Font(Font.FontFamily.TIMES_ROMAN, 12, Font.NORMAL));
                parrafo.setAlignment(Element.ALIGN_JUSTIFIED);
                parrafo.setSpacingBefore(20);
                parrafo.setLeading(15);
                parrafo.setIndentationLeft(30);
                document.add(parrafo);

                parrafo = new Paragraph(
                        "II.- PLAZOS Y CONDICIONES DEL SUMINISTRO DE LOS "
                                + justi.getBienServicioTxt().toUpperCase(),
                        new Font(Font.FontFamily.TIMES_ROMAN, 12, Font.BOLD));
                parrafo.setAlignment(Element.ALIGN_CENTER);
                parrafo.setSpacingBefore(20);
                document.add(parrafo);

                parrafo = new Paragraph(mapa.get("plazo_" + justi.getPlazo()),
                        new Font(Font.FontFamily.TIMES_ROMAN, 12, Font.NORMAL));
                parrafo.setAlignment(Element.ALIGN_JUSTIFIED);
                parrafo.setSpacingBefore(20);
                parrafo.setLeading(15);
                parrafo.setIndentationLeft(30);
                document.add(parrafo);

                parrafo = new Paragraph("III.- RESULTADO DE LA INVESTIGACIN DE MERCADO",
                        new Font(Font.FontFamily.TIMES_ROMAN, 12, Font.BOLD));
                parrafo.setAlignment(Element.ALIGN_CENTER);
                parrafo.setSpacingBefore(20);
                document.add(parrafo);

                parrafo = new Paragraph(
                        "La Investigacin de Mercado fue realizada en los trminos de los artculos 28, 29 y 30 del "
                                + "Reglamento de la Ley de Adquisiciones, Arrendamientos y Servicios del Sector Pblico, en "
                                + "forma conjunta por el ?rea Requirente y el ?rea Contratante, en la cual se verific previo al "
                                + "inicio del procedimiento de contratacin, la existencia de oferta, en la cantidad, calidad y "
                                + "oportunidad requeridas; la existencia de proveedores a nivel nacional o internacional con "
                                + "posibilidad de cumplir con las necesidades de la contratacin, conocer el precio prevaleciente al "
                                + "momento de llevar a cabo la Investigacin de mercado as como en la informacin disponible "
                                + "en el Sistema informtico denominado COMPRANET:",
                        new Font(Font.FontFamily.TIMES_ROMAN, 12, Font.NORMAL));
                parrafo.setAlignment(Element.ALIGN_JUSTIFIED);
                parrafo.setSpacingBefore(20);
                parrafo.setSpacingAfter(20);
                parrafo.setLeading(15);
                parrafo.setIndentationLeft(30);
                document.add(parrafo);

                PdfPTable table = new PdfPTable(2); // 3 columns.

                table.setWidths(new int[] { 100, 50 });

                if (justi.getEsUnico()) {

                    PdfPCell cell1 = new PdfPCell(
                            new Paragraph("PROVEEDOR", new Font(Font.FontFamily.TIMES_ROMAN, 10, Font.BOLD)));
                    PdfPCell cell2 = new PdfPCell(new Paragraph("IMPORTE SIN IVA",
                            new Font(Font.FontFamily.TIMES_ROMAN, 10, Font.BOLD)));
                    cell1.setBorder(PdfPCell.NO_BORDER);
                    cell2.setBorder(PdfPCell.NO_BORDER);
                    cell2.setHorizontalAlignment(Element.ALIGN_RIGHT);
                    table.addCell(cell1);
                    table.addCell(cell2);

                    cell1 = new PdfPCell(new Paragraph(justi.getProveedorUno().toUpperCase(),
                            new Font(Font.FontFamily.TIMES_ROMAN, 10, Font.NORMAL)));
                    cell2 = new PdfPCell(new Paragraph(montoFormatComas(justi.getMontoUno(), justi),
                            new Font(Font.FontFamily.TIMES_ROMAN, 10, Font.NORMAL)));
                    cell1.setBorder(PdfPCell.NO_BORDER);
                    cell2.setBorder(PdfPCell.NO_BORDER);
                    cell2.setHorizontalAlignment(Element.ALIGN_RIGHT);
                    table.addCell(cell1);
                    table.addCell(cell2);
                    document.add(table);

                    /* Si es nico, no lleva motivo de seleccin
                    parrafo = new Paragraph(justi.getMotivoSeleccion().toUpperCase(),
                        new Font(Font.FontFamily.TIMES_ROMAN, 12, Font.NORMAL));
                    parrafo.setAlignment(Element.ALIGN_JUSTIFIED);
                    parrafo.setSpacingBefore(20);
                    parrafo.setLeading(15);
                    parrafo.setIndentationLeft(30);
                    document.add(parrafo);
                    */

                    parrafo = new Paragraph(
                            "Concluyendo que en conjunto es la nica oferta en cuanto a obtener las mejores condiciones, calidad, "
                                    + "precio, oportunidad y financiamiento, por ser el nico proveedor que proporcione los "
                                    + justi.getBienServicioTxt() + " que se pretende contratar la de "
                                    + justi.getProveedorUno().toUpperCase() + ". La referida "
                                    + "Investigacin de Mercado se acompaa a la presente justificacin para determinar que el "
                                    + "procedimiento de contratacin por adjudicacin directa es el idneo.",
                            new Font(Font.FontFamily.TIMES_ROMAN, 12, Font.NORMAL));
                    parrafo.setAlignment(Element.ALIGN_JUSTIFIED);
                    parrafo.setSpacingBefore(20);
                    parrafo.setLeading(15);
                    parrafo.setIndentationLeft(30);
                    document.add(parrafo);

                } else {
                    PdfPCell cell1 = new PdfPCell(
                            new Paragraph("PROVEEDOR", new Font(Font.FontFamily.TIMES_ROMAN, 10, Font.BOLD)));
                    PdfPCell cell2 = new PdfPCell(new Paragraph("IMPORTE SIN IVA",
                            new Font(Font.FontFamily.TIMES_ROMAN, 10, Font.BOLD)));
                    cell1.setBorder(PdfPCell.NO_BORDER);
                    cell2.setBorder(PdfPCell.NO_BORDER);
                    cell2.setHorizontalAlignment(Element.ALIGN_RIGHT);
                    table.addCell(cell1);
                    table.addCell(cell2);

                    cell1 = new PdfPCell(new Paragraph(justi.getProveedorUno().toUpperCase(),
                            new Font(Font.FontFamily.TIMES_ROMAN, 10, Font.BOLD)));
                    cell2 = new PdfPCell(new Paragraph(montoFormatComas(justi.getMontoUno(), justi),
                            new Font(Font.FontFamily.TIMES_ROMAN, 10, Font.BOLD)));
                    cell1.setBorder(PdfPCell.NO_BORDER);
                    cell2.setBorder(PdfPCell.NO_BORDER);
                    cell2.setHorizontalAlignment(Element.ALIGN_RIGHT);
                    table.addCell(cell1);
                    table.addCell(cell2);

                    cell1 = new PdfPCell(new Paragraph(justi.getProveedorDos().toUpperCase(),
                            new Font(Font.FontFamily.TIMES_ROMAN, 10, Font.NORMAL)));
                    cell2 = new PdfPCell(new Paragraph(montoFormatComas(justi.getMontoDos(), justi),
                            new Font(Font.FontFamily.TIMES_ROMAN, 10, Font.NORMAL)));
                    cell1.setBorder(PdfPCell.NO_BORDER);
                    cell2.setBorder(PdfPCell.NO_BORDER);
                    cell2.setHorizontalAlignment(Element.ALIGN_RIGHT);
                    table.addCell(cell1);
                    table.addCell(cell2);

                    if (justi.getProveedorTres() != null && justi.getProveedorTres().trim().length() > 0) {
                        cell1 = new PdfPCell(new Paragraph(justi.getProveedorTres().toUpperCase(),
                                new Font(Font.FontFamily.TIMES_ROMAN, 10, Font.NORMAL)));
                        cell2 = new PdfPCell(new Paragraph(montoFormatComas(justi.getMontoTres(), justi),
                                new Font(Font.FontFamily.TIMES_ROMAN, 10, Font.NORMAL)));
                        cell2.setHorizontalAlignment(Element.ALIGN_RIGHT);
                        cell1.setBorder(PdfPCell.NO_BORDER);
                        cell2.setBorder(PdfPCell.NO_BORDER);
                        table.addCell(cell1);
                        table.addCell(cell2);
                    }

                    document.add(table);

                    parrafo = new Paragraph("Motivo de la seleccin: " + justi.getMotivoSeleccion(),
                            new Font(Font.FontFamily.TIMES_ROMAN, 12, Font.NORMAL));
                    parrafo.setAlignment(Element.ALIGN_JUSTIFIED);
                    parrafo.setIndentationLeft(30);
                    document.add(parrafo);

                    parrafo = new Paragraph(
                            "Siendo la oferta que en conjunto presenta las mejores condiciones en cuanto a calidad, precio, oportunidad  "
                                    + "y financiamiento, la de " + justi.getProveedorUno().toUpperCase() + ". "
                                    + "La referida Investigacin de Mercado se acompaa a la presente justificacin para determinar  "
                                    + "que el procedimiento de contratacin por adjudicacin directa es el idneo.",
                            new Font(Font.FontFamily.TIMES_ROMAN, 12, Font.NORMAL));
                    parrafo.setSpacingBefore(20);
                    parrafo.setLeading(15);
                    parrafo.setAlignment(Element.ALIGN_JUSTIFIED);
                    parrafo.setIndentationLeft(30);
                    document.add(parrafo);
                }

                parrafo = new Paragraph("IV.- PROCEDIMIENTO DE CONTRATACIN PROPUESTO",
                        new Font(Font.FontFamily.TIMES_ROMAN, 12, Font.BOLD));
                parrafo.setAlignment(Element.ALIGN_CENTER);
                parrafo.setSpacingBefore(20);
                document.add(parrafo);

                parrafo = new Paragraph("", new Font(Font.FontFamily.TIMES_ROMAN, 12, Font.NORMAL));
                parrafo.setSpacingAfter(20);
                parrafo.setIndentationLeft(30);
                parrafo.setLeading(15);
                parrafo.setSpacingBefore(20);
                parrafo.setAlignment(Element.ALIGN_JUSTIFIED);

                frase = new Chunk(
                        "El procedimiento de contratacin propuesto es el de adjudicacin directa, en virtud de que en el "
                                + "presente caso la adjudicacin se llevara a cabo conforme la fraccin "
                                + justi.getRomano() + " del artculo 41 el cual "
                                + "menciona que este tipo de adjudicacin se puede llevar a cabo siempre y cuando: \n",
                        new Font(Font.FontFamily.TIMES_ROMAN, 12, Font.NORMAL));
                parrafo.setSpacingAfter(20);
                parrafo.setIndentationLeft(30);
                parrafo.setLeading(15);
                parrafo.setSpacingBefore(20);
                parrafo.setAlignment(Element.ALIGN_JUSTIFIED);
                parrafo.add(frase);

                frase = new Chunk(mapa.get("texto1_" + justi.getRomano()),
                        new Font(Font.FontFamily.TIMES_ROMAN, 12, Font.BOLD));
                parrafo.setSpacingAfter(20);
                parrafo.setIndentationLeft(30);
                parrafo.setLeading(15);
                parrafo.setSpacingBefore(20);
                parrafo.setAlignment(Element.ALIGN_JUSTIFIED);
                parrafo.add(frase);

                frase = new Chunk(" Actualizndose el supuesto de excepcin a la licitacin pblica "
                        + "establecido en la fraccin " + justi.getRomano()
                        + " del artculo 41 de la Ley de Adquisiciones, Arrendamientos y "
                        + "Servicios del Sector Pblico, en relacin con lo establecido en el artculo 72 de su Reglamento.",
                        new Font(Font.FontFamily.TIMES_ROMAN, 12, Font.NORMAL));
                parrafo.setSpacingAfter(20);
                parrafo.setIndentationLeft(30);
                parrafo.setLeading(15);
                parrafo.setSpacingBefore(20);
                parrafo.setAlignment(Element.ALIGN_JUSTIFIED);
                parrafo.add(frase);
                document.add(parrafo);

                parrafo = new Paragraph("IV.1.     MOTIVACIN Y FUNDAMENTACIN LEGAL:",
                        new Font(Font.FontFamily.TIMES_ROMAN, 12, Font.BOLD));
                parrafo.setSpacingBefore(20);
                parrafo.setIndentationLeft(30);
                document.add(parrafo);

                parrafo = new Paragraph("", new Font(Font.FontFamily.TIMES_ROMAN, 12, Font.NORMAL));
                parrafo.setSpacingAfter(20);
                parrafo.setIndentationLeft(60);
                parrafo.setLeading(15);
                parrafo.setSpacingBefore(20);
                parrafo.setAlignment(Element.ALIGN_JUSTIFIED);

                frase = new Chunk("A)", new Font(Font.FontFamily.TIMES_ROMAN, 12, Font.BOLD));
                parrafo.add(frase);

                frase = new Chunk("  MOTIVOS: ", new Font(Font.FontFamily.TIMES_ROMAN, 12, Font.BOLD));
                parrafo.add(frase);

                frase = new Chunk("La contratacin de los " + justi.getBienServicioTxt()
                        + " objeto de la presente justificacin "
                        + "es necesaria para satisfacer los requerimientos del proyecto identificado por: "
                        + justi.getProyecto() + ".  " + justi.getRazonCompra() + "." + " \nPor lo anterior, la "
                        + "contratacin propuesta se adeca al supuesto de excepcin establecido en la Ley "
                        + "de Adquisiciones, Arrendamientos y Servicios del Sector Pblico en su artculo 41, "
                        + "fraccin " + justi.getRomano()
                        + "; adems de que se renen los requisitos previstos en el artculo 72 del "
                        + "Reglamento de la Ley de Adquisiciones, Arrendamientos y Servicios del Sector "
                        + "Pblico, tal y como se desprende de la informacin presentada en esta justificacin, "
                        + "as como de la Investigacin de Mercado; "
                        + "por lo que resulta procedente la contratacin bajo el procedimiento de adjudicacin "
                        + "directa previsto en el artculo 26, fraccin III de la Ley antes mencionada.",
                        new Font(Font.FontFamily.TIMES_ROMAN, 12, Font.NORMAL));
                parrafo.add(frase);
                document.add(parrafo);

                parrafo = new Paragraph("", new Font(Font.FontFamily.TIMES_ROMAN, 12, Font.NORMAL));
                parrafo.setSpacingAfter(20);
                parrafo.setIndentationLeft(60);
                parrafo.setLeading(15);
                parrafo.setSpacingBefore(20);
                parrafo.setAlignment(Element.ALIGN_JUSTIFIED);

                frase = new Chunk("B)", new Font(Font.FontFamily.TIMES_ROMAN, 12, Font.BOLD));
                parrafo.add(frase);

                frase = new Chunk("  FUNDAMENTOS: ", new Font(Font.FontFamily.TIMES_ROMAN, 12, Font.BOLD));
                parrafo.add(frase);

                frase = new Chunk("La contratacin se encuentra debidamente fundada en el artculo "
                        + "134 de la Constitucin Poltica de los Estados Unidos Mexicanos; en los artculos 26 "
                        + "fraccin III, 40 y 41 fraccin " + justi.getRomano()
                        + " de la Ley de Adquisiciones, Arrendamientos y "
                        + "Servicios del Sector Pblico; as como en los artculos 71 y 72 del Reglamento de la "
                        + "Ley de Adquisiciones, Arrendamientos y Servicios del Sector Pblico.",
                        new Font(Font.FontFamily.TIMES_ROMAN, 12, Font.NORMAL));
                parrafo.add(frase);
                document.add(parrafo);

                parrafo = new Paragraph("V.- MONTO ESTIMADO Y FORMA DE PAGO PROPUESTO:",
                        new Font(Font.FontFamily.TIMES_ROMAN, 12, Font.BOLD));
                parrafo.setAlignment(Element.ALIGN_CENTER);
                parrafo.setSpacingBefore(20);
                document.add(parrafo);

                parrafo = new Paragraph("V.1.      MONTO ESTIMADO:",
                        new Font(Font.FontFamily.TIMES_ROMAN, 12, Font.BOLD));
                parrafo.setSpacingBefore(20);
                parrafo.setIndentationLeft(30);
                document.add(parrafo);

                DecimalFormat decimalFormat = new DecimalFormat("0.00");
                parrafo = new Paragraph("El monto estimado de la contratacin es la cantidad de "
                        + montoFormatComas(justi.getSubTotal(), justi) + " ("
                        + new Numero_a_Letra().Convertir(decimalFormat.format(justi.getSubTotal()), true) + " "
                        + /*codigoDivisa(justi)*/ justi.getMoneda().getCode() + ")" + masIva + ", mismo que "
                        + "result el ms conveniente de acuerdo con la Investigacin de Mercado"
                        + ", mediante la cual se verific previo al inicio del procedimiento "
                        + "de contratacin, la existencia de oferta de los " + justi.getBienServicioTxt()
                        + " en la cantidad, "
                        + "calidad y oportunidad requeridos en los trminos del artculo 28 del Reglamento de la Ley de "
                        + "Adquisiciones, Arrendamientos y Servicios del Sector Pblico.",
                        new Font(Font.FontFamily.TIMES_ROMAN, 12, Font.NORMAL));
                parrafo.setSpacingAfter(20);
                parrafo.setIndentationLeft(30);
                parrafo.setLeading(15);
                parrafo.setSpacingBefore(20);
                parrafo.setAlignment(Element.ALIGN_JUSTIFIED);
                document.add(parrafo);

                table = new PdfPTable(3); // 3 columns.

                table.setWidths(new int[] { 30, 10, 10 });
                PdfPCell cell1 = new PdfPCell(
                        new Paragraph("Subtotal:", new Font(Font.FontFamily.TIMES_ROMAN, 10, Font.NORMAL)));
                PdfPCell cell2 = new PdfPCell(new Paragraph(montoFormatComas(justi.getSubTotal(), justi),
                        new Font(Font.FontFamily.TIMES_ROMAN, 10, Font.NORMAL)));
                PdfPCell cell0 = new PdfPCell(
                        new Paragraph("", new Font(Font.FontFamily.TIMES_ROMAN, 10, Font.NORMAL)));
                cell0.setBorder(PdfPCell.NO_BORDER);
                table.addCell(cell0);
                cell1.setBorder(PdfPCell.NO_BORDER);
                cell1.setHorizontalAlignment(Element.ALIGN_RIGHT);
                cell2.setBorder(PdfPCell.NO_BORDER);
                cell2.setHorizontalAlignment(Element.ALIGN_RIGHT);
                table.addCell(cell1);
                table.addCell(cell2);
                cell1 = new PdfPCell(
                        new Paragraph("Iva:", new Font(Font.FontFamily.TIMES_ROMAN, 10, Font.NORMAL)));
                cell2 = new PdfPCell(new Paragraph(montoFormatComas(justi.getIva(), justi),
                        new Font(Font.FontFamily.TIMES_ROMAN, 10, Font.NORMAL)));
                cell0 = new PdfPCell(new Paragraph("", new Font(Font.FontFamily.TIMES_ROMAN, 10, Font.NORMAL)));
                cell0.setBorder(PdfPCell.NO_BORDER);
                table.addCell(cell0);
                cell1.setBorder(PdfPCell.NO_BORDER);
                cell1.setHorizontalAlignment(Element.ALIGN_RIGHT);
                cell2.setBorder(PdfPCell.NO_BORDER);
                cell2.setHorizontalAlignment(Element.ALIGN_RIGHT);
                table.addCell(cell1);
                table.addCell(cell2);
                cell1 = new PdfPCell(
                        new Paragraph("Total:", new Font(Font.FontFamily.TIMES_ROMAN, 10, Font.BOLD)));
                cell2 = new PdfPCell(new Paragraph(montoFormatComas(justi.getImporte(), justi),
                        new Font(Font.FontFamily.TIMES_ROMAN, 10, Font.BOLD)));
                cell0 = new PdfPCell(new Paragraph("", new Font(Font.FontFamily.TIMES_ROMAN, 10, Font.NORMAL)));
                cell0.setBorder(PdfPCell.NO_BORDER);
                table.addCell(cell0);
                cell1.setBorder(PdfPCell.NO_BORDER);
                cell1.setHorizontalAlignment(Element.ALIGN_RIGHT);
                cell2.setBorder(PdfPCell.NO_BORDER);
                cell2.setHorizontalAlignment(Element.ALIGN_RIGHT);
                table.addCell(cell1);
                table.addCell(cell2);
                document.add(table);

                parrafo = new Paragraph("V.1.      FORMA DE PAGO PROPUESTA:",
                        new Font(Font.FontFamily.TIMES_ROMAN, 12, Font.BOLD));
                parrafo.setSpacingBefore(20);
                parrafo.setIndentationLeft(30);
                document.add(parrafo);

                parrafo = new Paragraph("El monto total ser pagado en " + justi.getNumPagos() + " pago/s de "
                        + montoFormatComas(justi.getSubTotal() / justi.getNumPagos(), justi) + " ("
                        + new Numero_a_Letra().Convertir(
                                decimalFormat.format(justi.getSubTotal() / (justi.getNumPagos())).toString(),
                                true)
                        + " " + /*codigoDivisa(justi)*/ justi.getMoneda().getCode() + ")" + masIva
                        + ". Los pagos se realizarn previa verificacin de la entrega y calidad de los "
                        + justi.getBienServicioTxt()
                        + " as como previo envo en formatos .pdf y .xml del Comprobante Fiscal "
                        + "Digital por Internet (CFDI) correspondiente que rena los requisitos fiscales respectivos. Los "
                        + "pagos se efectuarn mediante " + justi.getFormaPago(),
                        new Font(Font.FontFamily.TIMES_ROMAN, 12, Font.NORMAL));
                parrafo.setSpacingAfter(20);
                parrafo.setIndentationLeft(30);
                parrafo.setLeading(15);
                parrafo.setSpacingBefore(20);
                parrafo.setAlignment(Element.ALIGN_JUSTIFIED);
                document.add(parrafo);

                parrafo = new Paragraph("VI.- PERSONA PROPUESTA PARA LA ADJUDICACIN DIRECTA:",
                        new Font(Font.FontFamily.TIMES_ROMAN, 12, Font.BOLD));
                parrafo.setAlignment(Element.ALIGN_CENTER);
                parrafo.setSpacingBefore(20);
                document.add(parrafo);

                parrafo = new Paragraph(
                        "Por lo anteriormente expuesto y fundado, se propone a "
                                + justi.getProveedorUno().toUpperCase() + ", con domicilio ubicado en "
                                + justi.getDomicilio() + ", Registro Federal de Contribuyentes: "
                                + justi.getRfc() + ", correo electrnico: " + justi.getCorreo()
                                + " y nmero telefnico " + justi.getTelefono() + datosBanco,
                        new Font(Font.FontFamily.TIMES_ROMAN, 12, Font.NORMAL));
                parrafo.setSpacingAfter(20);
                parrafo.setIndentationLeft(30);
                parrafo.setLeading(15);
                parrafo.setSpacingBefore(20);
                parrafo.setAlignment(Element.ALIGN_JUSTIFIED);
                document.add(parrafo);

                parrafo = new Paragraph(
                        "VII.- ACREDITAMIENTO DEL O LOS CRITERIOS EN LOS QUE SE FUNDA Y MOTIVA LA "
                                + "SELECCIN DEL PROCEDIMIENTO DE EXCEPCIN A LA LICITACIN PBLICA:",
                        new Font(Font.FontFamily.TIMES_ROMAN, 12, Font.BOLD));
                parrafo.setAlignment(Element.ALIGN_CENTER);
                parrafo.setLeading(15);
                parrafo.setIndentationLeft(30);
                parrafo.setSpacingBefore(20);
                document.add(parrafo);

                parrafo = new Paragraph(
                        "El procedimiento de contratacin por adjudicacin directa es el idneo, al actualizarse el "
                                + "supuesto de excepcin al procedimiento de licitacin pblica previsto en el artculo 41, fraccin "
                                + justi.getRomano()
                                + " de la Ley de Adquisiciones, Arrendamientos y Servicios del Sector Pblico, aunado a que se "
                                + "corrobor la capacidad y experiencia de la persona propuesta, quien por ser proveedor nico "
                                + "present las mejores condiciones en cuanto a precio, calidad, financiamiento, oportunidad y "
                                + "dems circunstancias pertinentes a efecto de asegurar a esta Entidad las mejores condiciones "
                                + "para su contratacin, tal y como se acredita con la informacin presentada en esta justificacin, "
                                + "as como con la Investigacin de Mercado.\n\n"
                                + "El acreditamiento del o los criterios en los que se funda la excepcin de licitacin pblica, son "
                                + "los siguientes:",
                        new Font(Font.FontFamily.TIMES_ROMAN, 12, Font.NORMAL));
                parrafo.setSpacingAfter(20);
                parrafo.setIndentationLeft(30);
                parrafo.setLeading(15);
                parrafo.setSpacingBefore(20);
                parrafo.setAlignment(Element.ALIGN_JUSTIFIED);
                document.add(parrafo);

                parrafo = new Paragraph("", new Font(Font.FontFamily.TIMES_ROMAN, 12, Font.NORMAL));
                parrafo.setSpacingAfter(20);
                parrafo.setIndentationLeft(30);
                parrafo.setLeading(15);
                parrafo.setSpacingBefore(20);
                parrafo.setAlignment(Element.ALIGN_JUSTIFIED);

                frase = new Chunk(" -  Economa\n", new Font(Font.FontFamily.TIMES_ROMAN, 12, Font.BOLD));
                parrafo.add(frase);
                frase = new Chunk(
                        "Con la Investigacin de Mercado se establecieron precios y dems condiciones de calidad, "
                                + "financiamiento y oportunidad, respecto de los " + justi.getBienServicioTxt()
                                + " requeridos, con lo cual "
                                + "se asegura cumplir con los principios del artculo 134 de la Constitucin Poltica de los Estados "
                                + "Unidos Mexicanos y de la Ley de Adquisiciones, Arrendamientos y Servicios del Sector Pblico, "
                                + "en cuanto a precio, calidad, financiamiento, oportunidad y dems circunstancias pertinentes, por "
                                + "lo que el procedimiento de adjudicacin directa permite en contraposicin al procedimiento de "
                                + "licitacin pblica, obtener con mayor oportunidad los "
                                + justi.getBienServicioTxt() + " requeridos al "
                                + "menor costo econmico para el CIMAV, S.C. segn lo detallado en la investigacin de mercado "
                                + "que se realiz, generando ahorro de recursos por estar proponiendo la adjudicacin al "
                                + "proveedor nico cuya propuesta se considera aceptable en cuanto a su solvencia. "
                                + "Lo anterior de acuerdo con lo establecido en el numeral 4.2.4 (ADJUDICACIN DIRECTA) y "
                                + "numeral 4.2.4.1.1 (Verificar Acreditamiento de Excepcin) del Acuerdo por el que se modifica el "
                                + "Manual Administrativo de Aplicacin General en Materia de Adquisiciones, Arrendamientos y "
                                + "Servicios del Sector Pblico, publicado en el Diario Oficial de la Federacin el 21 de noviembre "
                                + "de 2012.",
                        new Font(Font.FontFamily.TIMES_ROMAN, 12, Font.NORMAL));
                parrafo.add(frase);
                document.add(parrafo);

                parrafo = new Paragraph("", new Font(Font.FontFamily.TIMES_ROMAN, 12, Font.NORMAL));
                parrafo.setSpacingAfter(20);
                parrafo.setIndentationLeft(30);
                parrafo.setLeading(15);
                parrafo.setSpacingBefore(20);
                parrafo.setAlignment(Element.ALIGN_JUSTIFIED);

                frase = new Chunk(" -  Eficacia\n", new Font(Font.FontFamily.TIMES_ROMAN, 12, Font.BOLD));
                parrafo.add(frase);
                frase = new Chunk(
                        "Con el procedimiento de contratacin por adjudicacin directa, se lograr obtener con "
                                + "oportunidad los " + justi.getBienServicioTxt()
                                + " atendiendo a las caractersticas requeridas en "
                                + "contraposicin con el procedimiento de licitacin pblica, dado que se reducen tiempos y se "
                                + "generan economas; aunado a que la persona propuesta cuenta con experiencia y capacidad "
                                + "para satisfacer las necesidades requeridas, adems de que es el nico que ofrece las mejores "
                                + "condiciones disponibles en cuanto a precio, calidad y oportunidad, con lo que se lograra el "
                                + "cumplimiento de los objetivos y resultados deseados en el tiempo requerido, situacin que se "
                                + "puede demostrar en base a la investigacin de mercado. "
                                + "Lo anterior de acuerdo con lo establecido en el numeral 4.2.4 (ADJUDICACIN DIRECTA) y "
                                + "numeral 4.2.4.1.1 (Verificar Acreditamiento de Excepcin) del Acuerdo por el que se modifica el "
                                + "Manual Administrativo de Aplicacin General en Materia de Adquisiciones, Arrendamientos y "
                                + "Servicios del Sector Pblico, publicado en el Diario Oficial de la Federacin el 21 de noviembre "
                                + "de 2012.",
                        new Font(Font.FontFamily.TIMES_ROMAN, 12, Font.NORMAL));
                parrafo.add(frase);
                document.add(parrafo);

                parrafo = new Paragraph("", new Font(Font.FontFamily.TIMES_ROMAN, 12, Font.NORMAL));
                parrafo.setSpacingAfter(20);
                parrafo.setIndentationLeft(30);
                parrafo.setLeading(15);
                parrafo.setSpacingBefore(20);
                parrafo.setAlignment(Element.ALIGN_JUSTIFIED);

                frase = new Chunk(" -  Eficiencia\n", new Font(Font.FontFamily.TIMES_ROMAN, 12, Font.BOLD));
                parrafo.add(frase);
                frase = new Chunk(
                        "Con el procedimiento de adjudicacin directa, a diferencia del procedimiento de licitacin "
                                + "pblica, se logra el uso racional de recursos con los que cuenta la Entidad para realizar la "
                                + "contratacin, obteniendo las mejores condiciones de precio, calidad y oportunidad, evitando la "
                                + "prdida de tiempo y recursos al Estado, lo cual se demuestra con la investigacin de mercado "
                                + "que se realiz, quedando evidencia de su resultado ya que los recursos disponibles con los que "
                                + "cuenta el CIMAV se aplican conforme a los lineamientos de racionalidad y austeridad "
                                + "presupuestaria. "
                                + "Lo anterior de acuerdo con lo establecido en el numeral 4.2.4 (ADJUDICACIN DIRECTA) y "
                                + "numeral 4.2.4.1.1 (Verificar Acreditamiento de Excepcin) del Acuerdo por el que se modifica el "
                                + "Manual Administrativo de Aplicacin General en Materia de Adquisiciones, Arrendamientos y "
                                + "Servicios del Sector Pblico, publicado en el Diario Oficial de la Federacin el 21 de noviembre "
                                + "de 2012.",
                        new Font(Font.FontFamily.TIMES_ROMAN, 12, Font.NORMAL));
                parrafo.add(frase);
                document.add(parrafo);

                parrafo = new Paragraph("", new Font(Font.FontFamily.TIMES_ROMAN, 12, Font.NORMAL));
                parrafo.setSpacingAfter(20);
                parrafo.setIndentationLeft(30);
                parrafo.setLeading(15);
                parrafo.setSpacingBefore(20);
                parrafo.setAlignment(Element.ALIGN_JUSTIFIED);

                frase = new Chunk(" -  Imparcialidad\n", new Font(Font.FontFamily.TIMES_ROMAN, 12, Font.BOLD));
                parrafo.add(frase);
                frase = new Chunk(
                        "El tipo de adjudicacin que se propone, se llev a cabo sin prejuicios ni situaciones que "
                                + "pudieran afectar la imparcialidad, y sin que medie algn inters personal de los servidores "
                                + "pblicos involucrados en la contratacin o de cualquier otra ndole que pudiera otorgar "
                                + "condiciones ventajosas a alguna persona, en relacin con los dems ni limitar la libre "
                                + "participacin, esto debido a que es proveedor nico, dicha situacin queda demostrada "
                                + "conforme al resultado que se da con base a la investigacin de mercado. "
                                + "Lo anterior de acuerdo con lo establecido en el numeral 4.2.4 (ADJUDICACIN DIRECTA) y "
                                + "numeral 4.2.4.1.1 (Verificar Acreditamiento de Excepcin) del Acuerdo por el que se modifica el "
                                + "Manual Administrativo de Aplicacin General en Materia de Adquisiciones, Arrendamientos y "
                                + "Servicios del Sector Pblico, publicado en el Diario Oficial de la Federacin el 21 de noviembre "
                                + "de 2012.",
                        new Font(Font.FontFamily.TIMES_ROMAN, 12, Font.NORMAL));
                parrafo.add(frase);
                document.add(parrafo);

                parrafo = new Paragraph("", new Font(Font.FontFamily.TIMES_ROMAN, 12, Font.NORMAL));
                parrafo.setSpacingAfter(20);
                parrafo.setIndentationLeft(30);
                parrafo.setLeading(15);
                parrafo.setSpacingBefore(20);
                parrafo.setAlignment(Element.ALIGN_JUSTIFIED);

                frase = new Chunk(" -  Honradez\n", new Font(Font.FontFamily.TIMES_ROMAN, 12, Font.BOLD));
                parrafo.add(frase);
                frase = new Chunk(
                        "La seleccin del procedimiento de adjudicacin directa tiene como nico fin contratar bajo "
                                + "las mejores condiciones los " + justi.getBienServicioTxt()
                                + " requeridos, actuando con rectitud, "
                                + "responsabilidad e integridad y con apego estricto al marco jurdico aplicable, evitando as "
                                + "incurrir en actos de corrupcin y conflictos de inters, ya que por parte de los servidores "
                                + "pblicos que intervinieron en este procedimiento quedo evidenciado que no se ha favorecido a "
                                + "persona alguna interesada en la contratacin ya que en base a la investigacin de mercado "
                                + "queda demostrado que es proveedor nico.\n\n"
                                + "Lo anterior de acuerdo con lo establecido en el numeral 4.2.4 (ADJUDICACIN DIRECTA) y "
                                + "numeral 4.2.4.1.1 (Verificar Acreditamiento de Excepcin) del Acuerdo por el que se modifica el "
                                + "Manual Administrativo de Aplicacin General en Materia de Adquisiciones, Arrendamientos y "
                                + "Servicios del Sector Pblico, publicado en el Diario Oficial de la Federacin el 21 de noviembre "
                                + "de 2012.",
                        new Font(Font.FontFamily.TIMES_ROMAN, 12, Font.NORMAL));
                parrafo.add(frase);
                document.add(parrafo);

                if (justi.getEsUnico()) {
                    parrafo = new Paragraph("", new Font(Font.FontFamily.TIMES_ROMAN, 12, Font.NORMAL));
                    parrafo.setSpacingAfter(20);
                    parrafo.setIndentationLeft(30);
                    parrafo.setLeading(15);
                    parrafo.setSpacingBefore(20);
                    parrafo.setAlignment(Element.ALIGN_JUSTIFIED);

                    frase = new Chunk(" -  Transparencia\n",
                            new Font(Font.FontFamily.TIMES_ROMAN, 12, Font.BOLD));
                    parrafo.add(frase);
                    frase = new Chunk(mapa.get("transparencia_unico"),
                            new Font(Font.FontFamily.TIMES_ROMAN, 12, Font.NORMAL));
                    parrafo.add(frase);
                    document.add(parrafo);
                } else {
                    parrafo = new Paragraph("", new Font(Font.FontFamily.TIMES_ROMAN, 12, Font.NORMAL));
                    parrafo.setSpacingAfter(20);
                    parrafo.setIndentationLeft(30);
                    parrafo.setLeading(15);
                    parrafo.setSpacingBefore(20);
                    parrafo.setAlignment(Element.ALIGN_JUSTIFIED);

                    frase = new Chunk(" -  Transparencia\n",
                            new Font(Font.FontFamily.TIMES_ROMAN, 12, Font.BOLD));
                    parrafo.add(frase);
                    frase = new Chunk(mapa.get("transparencia_no_unico"),
                            new Font(Font.FontFamily.TIMES_ROMAN, 12, Font.NORMAL));
                    parrafo.add(frase);
                    document.add(parrafo);
                }

                parrafo = new Paragraph("VIII.- LUGAR Y FECHA DE EMISIN:",
                        new Font(Font.FontFamily.TIMES_ROMAN, 12, Font.BOLD));
                parrafo.setAlignment(Element.ALIGN_CENTER);
                parrafo.setLeading(15);
                parrafo.setSpacingBefore(20);
                document.add(parrafo);

                parrafo = new Paragraph("En la Ciudad de Chihuahua, Estado de Chihuahua a los "
                        + justi.getFechaElaboracion().getDayOfMonth() + " das del mes de "
                        + justi.getFechaElaboracion().getMonth().getDisplayName(TextStyle.FULL,
                                new Locale("es", "ES"))
                        + " de " + justi.getFechaElaboracion().getYear()
                        + ", se emite la presente justificacin para los efectos legales a que haya lugar.",
                        new Font(Font.FontFamily.TIMES_ROMAN, 12, Font.NORMAL));
                parrafo.setAlignment(Element.ALIGN_JUSTIFIED);
                parrafo.setLeading(15);
                parrafo.setIndentationLeft(30);
                parrafo.setSpacingBefore(20);
                document.add(parrafo);

                parrafo = new Paragraph(
                        "En cumplimiento a lo establecido en el penltimo prrafo del artculo 71 del Reglamento "
                                + "de la Ley de Adquisiciones, Arrendamientos y Servicios del Sector Pblico, se acompaa a la "
                                + "presente como ANEXO DOS?, la Requisicin o Solicitud de Contratacin (Requisicin) A la "
                                + "cual se deber anexar, mediante sello del departamento de Presupuesto, la Constancia con la "
                                + "que se acredita la existencia de recursos para iniciar el procedimiento de contratacin.",
                        new Font(Font.FontFamily.TIMES_ROMAN, 12, Font.NORMAL));
                parrafo.setAlignment(Element.ALIGN_JUSTIFIED);
                parrafo.setLeading(15);
                parrafo.setIndentationLeft(30);
                parrafo.setSpacingBefore(20);
                document.add(parrafo);

                if (justi.getEsUnico()) {
                    parrafo = new Paragraph(mapa.get("nota_1"),
                            new Font(Font.FontFamily.TIMES_ROMAN, 13, Font.BOLD));
                    parrafo.setAlignment(Element.ALIGN_JUSTIFIED);
                    parrafo.setLeading(15);
                    parrafo.setIndentationLeft(30);
                    parrafo.setSpacingBefore(20);
                    document.add(parrafo);
                }

                parrafo = new Paragraph("ATENTAMENTE", new Font(Font.FontFamily.TIMES_ROMAN, 12, Font.BOLD));
                parrafo.setAlignment(Element.ALIGN_CENTER);
                parrafo.setLeading(15);
                parrafo.setSpacingBefore(60);
                document.add(parrafo);

                parrafo = new Paragraph(
                        justi.getAutoriza().getName() + "\n" + justi.getAutorizaCargo().toUpperCase(),
                        new Font(Font.FontFamily.TIMES_ROMAN, 12, Font.BOLD));
                parrafo.setAlignment(Element.ALIGN_CENTER);
                parrafo.setLeading(15);
                parrafo.setSpacingBefore(60);
                document.add(parrafo);

                document.close();
                outputStream.close();

            } catch (DocumentException ex) {
                Logger.getLogger(JustificacionREST.class.getName()).log(Level.SEVERE, null, ex);
            }

        }
    };

    ResponseBuilder response = Response.ok(streamingOutput);
    String fileName = ("inline; filename=" + justi.getRequisicion() + "-" + justi.getEmpleado().getCuentaCimav()
            + ".pdf").replace(" ", "").replace(",", "-");
    response.header("Content-Disposition", fileName);

    return response.build();
}

From source file:com.hris.payroll.reports.PayslipReportPDF.java

public PayslipReportPDF(int branchId, Date payrollDate) {
    this.branchId = branchId;
    this.payrollDate = payrollDate;

    Document document = null;/*  ww w.j a v a2s.  c om*/
    Rectangle pageSize = new Rectangle(318, 825);
    try {
        //            document = new Document(PageSize.A4, 50, 50, 48, 40);
        document = new Document(pageSize, 37, 37, 37, 37);
        PdfWriter writer = PdfWriter.getInstance(document, outputStream);
        document.open();

        PdfPTable mainTable = new PdfPTable(1);
        //            mainTable.setTotalWidth(new float[]{ 120, 120 });
        mainTable.setWidthPercentage(100);
        mainTable.setHorizontalAlignment(Element.ALIGN_JUSTIFIED_ALL);
        //            mainTable.getDefaultCell().setBorder(Rectangle.NO_BORDER);
        //            mainTable.setLockedWidth(true);

        //            leftColumnTable(mainTable);
        //            rightColumnTable(mainTable);

        //            for(Employee e : es.findEmployeeByBranch(getBranchId())){
        for (PayrollRegister pr : ps.findByBranch(getBranchId(), getPayrollDate())) {
            document.add(leftColumnTable(pr, getPayrollDate()));
            document.newPage();
        }

    } catch (DocumentException ex) {
        Logger.getLogger(PayslipReportPDF.class.getName()).log(Level.SEVERE, null, ex);
    } finally {
        document.close();
    }
}

From source file:de.extra.xtt.util.pdf.PdfCreatorImpl.java

License:Apache License

/**
 * Erzeugt das Inhaltsverzeichnis aus den bereits vorhandenen Elementen in
 * der Liste <code>listEntries</code>.
 * /*w  ww.  jav a 2s  .  c  o  m*/
 * @param docPdf
 *            Zieldokument, falls Inhaltsverzeichnis nicht temporr erzeugt
 *            wird
 * @param temp
 *            Gibt an, ob das Inhaltsverzeichnis temporr in einer neuen
 *            Datei/Dokument erzeugt werden soll
 * @return Anzahl der Seiten
 * @throws DocumentException
 * @throws IOException
 */
private int erzeugeInhaltsverzeichnis(Document docPdf, boolean temp) throws DocumentException, IOException {

    int anzPages = 0;
    Document docInhalt = docPdf;
    String filePathTempInhaltString = "";

    if (temp) {
        // temp. Dateinamen bestimmen
        File fileDokuFile = new File(dateiname);
        filePathTempInhaltString = fileDokuFile.getParent() + "/tmp_inhalt.pdf";
        // Neues Dokument erzeugen
        docInhalt = initPdfWriterAndDocument(filePathTempInhaltString, false);
    }

    // berschrift
    Chapter currChapter = new Chapter(getParagraphChapter("Inhaltsverzeichnis"), 0);
    // 0, damit keine Nummerierung
    currChapter.setNumberDepth(0);
    docInhalt.add(currChapter);
    // eine Zeile Abstand
    docInhalt.add(getEmptyLineTextHalf());

    for (ContPdfEntry currEntry : listEntries) {

        // Eintrag erzeugen inkl. Abstand
        String strEintrag = currEntry.getBezeichnung() + "  ";
        Chunk chunkBezeichnung;
        Chunk chunkSeitenzahlChunk;
        if (currEntry.getParentEntry() == null) {
            // 1. Ebene => fett, Abstand davor einfgen
            docInhalt.add(getEmptyLineTextHalf());
            chunkBezeichnung = getChunkTextBold(strEintrag);
            chunkSeitenzahlChunk = getChunkTextBold("" + currEntry.getPageNumber());
        } else {
            // 2. Ebene
            chunkBezeichnung = getChunkText(strEintrag);
            chunkSeitenzahlChunk = getChunkText("" + currEntry.getPageNumber());
        }
        // Referenz setzen
        chunkBezeichnung.setLocalGoto(currEntry.getDestination());
        chunkSeitenzahlChunk.setLocalGoto(currEntry.getDestination());
        // Abstandzeichen generieren, Breite auffllen
        float widthAbstand = docInhalt.getPageSize().getWidth() * 0.81f;
        ;
        while (chunkBezeichnung.getWidthPoint() <= widthAbstand) {
            chunkBezeichnung.append(".");
        }

        // Tabelle erzeugen und formatieren
        PdfPTable currTable = new PdfPTable(2);
        currTable.setWidthPercentage(100f);
        currTable.setWidths(new int[] { 96, 4 });

        // Inhalte einfgen
        // Zelle Bezeichnung
        PdfPCell currCellBezeichnung = new PdfPCell(new Phrase(chunkBezeichnung));
        currCellBezeichnung.setBorder(0);
        currCellBezeichnung.setHorizontalAlignment(Element.ALIGN_JUSTIFIED_ALL);

        // Zelle Seitennummer
        PdfPCell currCellPageNumberCell = new PdfPCell(new Phrase(chunkSeitenzahlChunk));
        currCellPageNumberCell.setBorder(0);
        currCellPageNumberCell.setHorizontalAlignment(Element.ALIGN_RIGHT);

        // Zellen zur Tabelle hinzufgen
        currTable.addCell(currCellBezeichnung);
        currTable.addCell(currCellPageNumberCell);

        docInhalt.add(currTable);
    }

    if (temp) {
        // Dokument schlieen
        docInhalt.close();

        // Anzahl der Seitenzahlen bestimmen
        PdfReader reader = new PdfReader(filePathTempInhaltString);
        anzPages = reader.getNumberOfPages();
        reader.close();

        // temp. Datei lschen
        File currFileInhaltFile = new File(filePathTempInhaltString);
        currFileInhaltFile.delete();
    }
    return anzPages;
}

From source file:Visao.grafico.GraficoRelatorioEstoque.java

private void GerarPDF() throws DocumentException, FileNotFoundException {
    try {//from   w  w  w. jav a  2s .  c o  m
        int linha = jTableRelatorioGrafico.getSelectedRow();
        Document document = new Document(PageSize.A4, 10, 10, 10, 10);
        //System.out.println(new File(".").getAbsolutePath());
        String arquivo = new File("RelatorioFaz.").getAbsolutePath() + "pdf";
        PdfWriter writer = PdfWriter.getInstance(document, new FileOutputStream(arquivo));
        document.open();
        Font font = new Font(Font.FontFamily.TIMES_ROMAN, 12, Font.BOLD);
        //String titulo = jTableRelatorioEstoquePrincipal.getValueAt(linha, 3).toString()+ " "+jTableRelatorioEstoquePrincipal.getValueAt(linha, 2).toString()+"-"+jTableRelatorioEstoquePrincipal.getValueAt(linha, 0).toString();
        String titulo = "Relatorio";
        Paragraph pgt = new Paragraph(titulo, font);
        pgt.setAlignment(Element.ALIGN_CENTER);
        document.add(pgt);
        document.add(new Paragraph(" "));
        PdfPTable table = new PdfPTable(colunas.length);
        // Definindo uma fonte, com tamanho 20 e negrito
        PdfPCell header = new PdfPCell(new Paragraph(titulo, font));
        header.setColspan(colunas.length);
        table.addCell(header);
        table.setWidthPercentage(100.0f);
        table.setHorizontalAlignment(Element.ALIGN_JUSTIFIED_ALL);
        //System.out.println("Tamanho: "+linhas.size());
        font = new Font(Font.FontFamily.TIMES_ROMAN, 4, Font.NORMAL);
        for (String coluna : colunas) {
            table.addCell(new Paragraph(coluna, font));
        }

        //varias linhas
        for (int i = 0; i < linhas.size(); i++) {//linha
            for (int j = 0; j < colunas.length; j++) {//coluna
                table.addCell(new Paragraph(jTableRelatorioGrafico.getValueAt(i, j).toString(), font));
            }
        }

        document.add(table);

        document.add(new Paragraph(" "));

        font = new Font(Font.FontFamily.TIMES_ROMAN, 12, Font.BOLD);
        document.add(new Paragraph("Dados Totais", font));
        font = new Font(Font.FontFamily.TIMES_ROMAN, 8, Font.NORMAL);
        document.close();
        JOptionPane.showMessageDialog(null, "PDF: " + arquivo + " gerado!");
    } catch (FileNotFoundException | DocumentException | HeadlessException ex) {
        Logger.getLogger(GerarRelatorioEstoqueBasico.class.getName()).log(Level.SEVERE, null,
                "Erro ao gerar pdf: " + ex);
        JOptionPane.showMessageDialog(null, "Erro ao gerar pdf: " + ex);
    }
}

From source file:Visao.relatorios.GerarRelatorioCarvao.java

private void GerarPDF() throws DocumentException, FileNotFoundException {
    try {//  w  ww .  ja  v a 2  s.  c om
        int linha = jTableRelatorioCarvao.getSelectedRow();
        Document document = new Document(PageSize.A4, 10, 10, 10, 10);
        //System.out.println(new File(".").getAbsolutePath());
        String arquivo = new File("Relatorio Carvo Praa.").getAbsolutePath() + "pdf";
        PdfWriter writer = PdfWriter.getInstance(document, new FileOutputStream(arquivo));
        document.open();
        Font font = new Font(Font.FontFamily.TIMES_ROMAN, 12, Font.BOLD);
        //String titulo = jTableRelatorioEstoquePrincipal.getValueAt(linha, 3).toString()+ " "+jTableRelatorioEstoquePrincipal.getValueAt(linha, 2).toString()+"-"+jTableRelatorioEstoquePrincipal.getValueAt(linha, 0).toString();
        String titulo = "Relatorio Carvo Praa";
        Paragraph pgt = new Paragraph(titulo, font);
        pgt.setAlignment(Element.ALIGN_CENTER);
        document.add(pgt);
        document.add(new Paragraph(" "));
        /*if(!filtro_matgen.equals("")){
            titulo = "Material genetico "+filtro_matgen;
        }*/
        PdfPTable table = new PdfPTable(colunas.length);
        // Definindo uma fonte, com tamanho 20 e negrito
        PdfPCell header = new PdfPCell(new Paragraph(titulo, font));
        header.setColspan(colunas.length);
        table.addCell(header);
        table.setWidthPercentage(100.0f);
        table.setHorizontalAlignment(Element.ALIGN_JUSTIFIED_ALL);
        //System.out.println("Tamanho: "+linhas.size());
        font = new Font(Font.FontFamily.TIMES_ROMAN, 4, Font.NORMAL);
        for (String coluna : colunas) {
            table.addCell(new Paragraph(coluna, font));
        }

        //varias linhas
        for (int i = 0; i < linhas.size(); i++) {//linha
            for (int j = 0; j < colunas.length; j++) {//coluna
                //table.addCell(jTableRelatorioEstoquePrincipal.getValueAt(i, j).toString());
                table.addCell(new Paragraph(jTableRelatorioCarvao.getValueAt(i, j).toString(), font));
            }
        }

        document.add(table);
        document.add(new Paragraph(" "));

        font = new Font(Font.FontFamily.TIMES_ROMAN, 12, Font.BOLD);
        document.add(new Paragraph("Dados Totais", font));
        font = new Font(Font.FontFamily.TIMES_ROMAN, 8, Font.NORMAL);
        document.add(new Paragraph(jLabelInfo1.getText(), font));
        document.add(new Paragraph(jLabelVolumeMadeiraTotal.getText(), font));
        document.add(new Paragraph(jLabelVolumeCarvaoTotal.getText(), font));
        document.close();
        JOptionPane.showMessageDialog(null, "PDF: " + arquivo + " gerado!");
    } catch (FileNotFoundException | DocumentException | HeadlessException ex) {
        Logger.getLogger(GerarRelatorioEstoqueBasico.class.getName()).log(Level.SEVERE, null,
                "Erro ao gerar pdf: " + ex);
        JOptionPane.showMessageDialog(null, "Erro ao gerar pdf: " + ex);
    }

}

From source file:Visao.relatorios.GerarRelatorioCarvaoExpedido.java

private void GerarPDF() throws DocumentException, FileNotFoundException {
    try {/*w w w  . j  a v a2 s .  c  o  m*/
        int linha = jTableExpedirCarvao.getSelectedRow();
        Document document = new Document(PageSize.A4, 10, 10, 10, 10);
        //System.out.println(new File(".").getAbsolutePath());
        String arquivo = new File("Relatorio Carvo Expedido.").getAbsolutePath() + "pdf";
        PdfWriter writer = PdfWriter.getInstance(document, new FileOutputStream(arquivo));
        document.open();
        Font font = new Font(Font.FontFamily.TIMES_ROMAN, 12, Font.BOLD);
        //String titulo = jTableRelatorioEstoquePrincipal.getValueAt(linha, 3).toString()+ " "+jTableRelatorioEstoquePrincipal.getValueAt(linha, 2).toString()+"-"+jTableRelatorioEstoquePrincipal.getValueAt(linha, 0).toString();
        String titulo = "Relatorio Carvo Expedido";
        Paragraph pgt = new Paragraph(titulo, font);
        pgt.setAlignment(Element.ALIGN_CENTER);
        document.add(pgt);
        document.add(new Paragraph(" "));
        /*if(!filtro_matgen.equals("")){
            titulo = "Material genetico "+filtro_matgen;
        }*/
        PdfPTable table = new PdfPTable(colunas.length);
        // Definindo uma fonte, com tamanho 20 e negrito
        PdfPCell header = new PdfPCell(new Paragraph(titulo, font));
        header.setColspan(colunas.length);
        table.addCell(header);
        table.setWidthPercentage(100.0f);
        table.setHorizontalAlignment(Element.ALIGN_JUSTIFIED_ALL);
        //System.out.println("Tamanho: "+linhas.size());
        font = new Font(Font.FontFamily.TIMES_ROMAN, 4, Font.NORMAL);
        for (String coluna : colunas) {
            table.addCell(new Paragraph(coluna, font));
        }

        //varias linhas
        for (int i = 0; i < linhas.size(); i++) {//linha
            for (int j = 0; j < colunas.length; j++) {//coluna
                //table.addCell(jTableRelatorioEstoquePrincipal.getValueAt(i, j).toString());
                table.addCell(new Paragraph(jTableExpedirCarvao.getValueAt(i, j).toString(), font));
            }
        }

        document.add(table);
        document.add(new Paragraph(" "));

        font = new Font(Font.FontFamily.TIMES_ROMAN, 12, Font.BOLD);
        document.add(new Paragraph("Dados Totais", font));
        font = new Font(Font.FontFamily.TIMES_ROMAN, 8, Font.NORMAL);
        document.add(new Paragraph(jLabelInfo1.getText(), font));
        document.add(new Paragraph(jLabelPesoTotal.getText(), font));
        document.add(new Paragraph(jLabelVolumeTotal.getText(), font));
        document.close();
        JOptionPane.showMessageDialog(null, "PDF: " + arquivo + " gerado!");
    } catch (FileNotFoundException | DocumentException | HeadlessException ex) {
        Logger.getLogger(GerarRelatorioEstoqueBasico.class.getName()).log(Level.SEVERE, null,
                "Erro ao gerar pdf: " + ex);
        JOptionPane.showMessageDialog(null, "Erro ao gerar pdf: " + ex);
    }

}

From source file:Visao.relatorios.GerarRelatorioEstoqueBasico.java

private void GerarPDF() throws DocumentException, FileNotFoundException {
    try {/*from  w  w  w .j a va2s .co m*/
        /*if(jTableRelatorioEstoquePrincipal.getSelectedRow()>=0) { 
        int linha = jTableRelatorioEstoquePrincipal.getSelectedRow();
        Document document = new Document(PageSize.A4, 10, 10, 10, 10);
        //System.out.println(new File(".").getAbsolutePath());
        String arquivo = new File("RelatorioFaz.").getAbsolutePath()+"pdf";            
        PdfWriter writer = PdfWriter.getInstance(document, new FileOutputStream(arquivo));
        document.open();
        Font font = new Font(FontFamily.TIMES_ROMAN, 12, Font.BOLD);
        //String titulo = jTableRelatorioEstoquePrincipal.getValueAt(linha, 3).toString()+ " "+jTableRelatorioEstoquePrincipal.getValueAt(linha, 2).toString()+"-"+jTableRelatorioEstoquePrincipal.getValueAt(linha, 0).toString();
        String titulo = "";
        if(!filtro_matgen.equals("")){
            titulo = "do material genetico "+filtro_matgen;
        }
        Paragraph pgt = new Paragraph("Relatorio "+titulo, font);
        pgt.setAlignment(Element.ALIGN_CENTER);
        document.add(pgt);
        document.add(new Paragraph(" "));
        //System.out.println("Colunas "+colunas.length);
        //for(int i=4; i<colunas.length; i++){
            //document.add(new Paragraph(colunas[i]+": "+jTableRelatorioEstoquePrincipal.getValueAt(linha, i).toString()));
        //}           
        //document.add(new Paragraph("Municipio: "+jTableRelatorioEstoquePrincipal.getValueAt(linha, 3).toString()));
                
        PdfPTable table = new PdfPTable(colunas.length);
        // Definindo uma fonte, com tamanho 20 e negrito
        PdfPCell header = new PdfPCell(new Paragraph("Relatorio "+titulo,font));
        header.setColspan(colunas.length);
        table.addCell(header);
        table.setWidthPercentage(100.0f);
        table.setHorizontalAlignment(Element.ALIGN_JUSTIFIED_ALL);
        //System.out.println("Tamanho: "+linhas.size());
        font = new Font(FontFamily.TIMES_ROMAN, 4, Font.NORMAL);
        for (String coluna : colunas) {
            table.addCell(new Paragraph(coluna,font));
        }
                
        //Linha selecionada
        //for(int j=0;j<colunas.length;j++){//coluna
            //table.addCell(jTableRelatorioEstoquePrincipal.getValueAt(linha, j).toString());
            //table.addCell(new Paragraph(jTableRelatorioEstoquePrincipal.getValueAt(linha, j).toString(),font));
        //}
                
        //varias linhas
        for(int i=0;i<linhas.size();i++){//linha
            for(int j=0;j<colunas.length;j++){//coluna
                //table.addCell(jTableRelatorioEstoquePrincipal.getValueAt(i, j).toString());
                table.addCell(new Paragraph(jTableRelatorioEstoquePrincipal.getValueAt(i, j).toString(),font));
            }
        }
                
        document.add(table);
                
        document.add(new Paragraph("Relatorio Geral"));
        document.add(new Paragraph(" "));
        document.add(new Paragraph(jLabelAreaTotal.getText()));
        document.add(new Paragraph(jLabelM3_ha.getText()));
        document.add(new Paragraph(jLabelMDC_ha.getText()));
                
        document.add(new Paragraph(jLabelVolumeMadeiraEstTotal.getText()));
        document.add(new Paragraph(jLabelVolumeMadeiraTranspTotal.getText()));
        document.add(new Paragraph(jLabelVolumeCarvaoEstTotal.getText()));
        document.add(new Paragraph(jLabelVolumeCarvaoTranspTotal.getText()));
                
        document.add(new Paragraph(jLabelToneladaMadeiraEstTotal.getText()));
        document.add(new Paragraph(jLabelToneladaMadeiraTranspTotal.getText()));
        document.add(new Paragraph(jLabelToneladaCarvaoEstTotal.getText()));
        document.add(new Paragraph(jLabelToneladaCarvaoTranspTotal.getText()));
        document.close();
        JOptionPane.showMessageDialog(null, "PDF: "+arquivo+" gerado!");
        }else {
        //Document document = new Document(PageSize.A4, 72, 72, 72, 72);
        Rectangle rect = new Rectangle(1200, 595);
        Document document = new Document(rect);
        String arquivo = new File("RelatorioGeral.").getAbsolutePath()+"pdf";
        PdfWriter writer = PdfWriter.getInstance(document, new FileOutputStream(arquivo));
        document.open();
        document.add(new Paragraph("Relatorio Geral"));
        document.add(new Paragraph(" "));
        document.add(new Paragraph(jLabelAreaTotal.getText()));
        document.add(new Paragraph(jLabelM3_ha.getText()));
        document.add(new Paragraph(jLabelMDC_ha.getText()));
                
        document.add(new Paragraph(jLabelVolumeMadeiraEstTotal.getText()));
        document.add(new Paragraph(jLabelVolumeMadeiraTranspTotal.getText()));
        document.add(new Paragraph(jLabelVolumeCarvaoEstTotal.getText()));
        document.add(new Paragraph(jLabelVolumeCarvaoTranspTotal.getText()));
                
        document.add(new Paragraph(jLabelToneladaMadeiraEstTotal.getText()));
        document.add(new Paragraph(jLabelToneladaMadeiraTranspTotal.getText()));
        document.add(new Paragraph(jLabelToneladaCarvaoEstTotal.getText()));
        document.add(new Paragraph(jLabelToneladaCarvaoTranspTotal.getText()));
                
        document.close();
        JOptionPane.showMessageDialog(null, "PDF: "+arquivo+" gerado!");
        }*/
        int linha = jTableRelatorioEstoquePrincipal.getSelectedRow();
        Document document = new Document(PageSize.A4, 10, 10, 10, 10);
        //System.out.println(new File(".").getAbsolutePath());
        String arquivo = new File("RelatorioFaz.").getAbsolutePath() + "pdf";
        PdfWriter writer = PdfWriter.getInstance(document, new FileOutputStream(arquivo));
        document.open();
        Font font = new Font(FontFamily.TIMES_ROMAN, 12, Font.BOLD);
        //String titulo = jTableRelatorioEstoquePrincipal.getValueAt(linha, 3).toString()+ " "+jTableRelatorioEstoquePrincipal.getValueAt(linha, 2).toString()+"-"+jTableRelatorioEstoquePrincipal.getValueAt(linha, 0).toString();
        String titulo = "Relatorio";
        Paragraph pgt = new Paragraph(titulo, font);
        pgt.setAlignment(Element.ALIGN_CENTER);
        document.add(pgt);
        document.add(new Paragraph(" "));
        if (!filtro_matgen.equals("")) {
            titulo = "Material genetico " + filtro_matgen;
        }
        PdfPTable table = new PdfPTable(colunas.length);
        // Definindo uma fonte, com tamanho 20 e negrito
        PdfPCell header = new PdfPCell(new Paragraph(titulo, font));
        header.setColspan(colunas.length);
        table.addCell(header);
        table.setWidthPercentage(100.0f);
        table.setHorizontalAlignment(Element.ALIGN_JUSTIFIED_ALL);
        //System.out.println("Tamanho: "+linhas.size());
        font = new Font(FontFamily.TIMES_ROMAN, 4, Font.NORMAL);
        for (String coluna : colunas) {
            table.addCell(new Paragraph(coluna, font));
        }

        //varias linhas
        for (int i = 0; i < linhas.size(); i++) {//linha
            for (int j = 0; j < colunas.length; j++) {//coluna
                //table.addCell(jTableRelatorioEstoquePrincipal.getValueAt(i, j).toString());
                table.addCell(new Paragraph(jTableRelatorioEstoquePrincipal.getValueAt(i, j).toString(), font));
            }
        }

        document.add(table);

        document.add(new Paragraph(" "));

        font = new Font(FontFamily.TIMES_ROMAN, 12, Font.BOLD);
        document.add(new Paragraph("Dados Totais", font));
        font = new Font(FontFamily.TIMES_ROMAN, 8, Font.NORMAL);
        document.add(new Paragraph(jLabelInfo1.getText(), font));
        document.add(new Paragraph(jLabelAreaTotal.getText(), font));
        document.add(new Paragraph(jLabelM3_ha.getText(), font));
        document.add(new Paragraph(jLabelMDC_ha.getText(), font));
        document.add(new Paragraph(jLabelTotalMadeiraPraca.getText(), font));
        document.add(new Paragraph(jLabelTotalCarvaoPraca.getText(), font));

        document.add(new Paragraph(jLabelInfo2.getText(), font));
        document.add(new Paragraph(jLabelVolumeMadeiraEstTotal.getText(), font));
        document.add(new Paragraph(jLabelVolumeMadeiraTranspTotal.getText(), font));
        document.add(new Paragraph(jLabelToneladaMadeiraEstTotal.getText(), font));
        document.add(new Paragraph(jLabelToneladaMadeiraTranspTotal.getText(), font));

        document.add(new Paragraph(jLabelInfo3.getText(), font));
        document.add(new Paragraph(jLabelVolumeCarvaoEstTotal.getText(), font));
        document.add(new Paragraph(jLabelVolumeCarvaoProdTotal.getText(), font));
        document.add(new Paragraph(jLabelVolumeCarvaoTranspTotal.getText(), font));
        document.add(new Paragraph(jLabelToneladaCarvaoEstTotal.getText(), font));
        document.add(new Paragraph(jLabelToneladaCarvaoProdTotal.getText(), font));
        document.add(new Paragraph(jLabelToneladaCarvaoTranspTotal.getText(), font));
        document.close();
        JOptionPane.showMessageDialog(null, "PDF: " + arquivo + " gerado!");
    } catch (FileNotFoundException | DocumentException | HeadlessException ex) {
        Logger.getLogger(GerarRelatorioEstoqueBasico.class.getName()).log(Level.SEVERE, null,
                "Erro ao gerar pdf: " + ex);
        JOptionPane.showMessageDialog(null, "Erro ao gerar pdf: " + ex);
    }

}

From source file:Visao.relatorios.GerarRelatorioForno.java

private void GerarPDF() throws DocumentException, FileNotFoundException {
    try {//from w  ww . j a v  a2  s  .c o m
        int linha = jTableForno.getSelectedRow();
        Document document = new Document(PageSize.A4, 10, 10, 10, 10);
        //System.out.println(new File(".").getAbsolutePath());
        String arquivo = new File("Relatorio Carvo Expedido.").getAbsolutePath() + "pdf";
        PdfWriter writer = PdfWriter.getInstance(document, new FileOutputStream(arquivo));
        document.open();
        Font font = new Font(Font.FontFamily.TIMES_ROMAN, 12, Font.BOLD);
        //String titulo = jTableRelatorioEstoquePrincipal.getValueAt(linha, 3).toString()+ " "+jTableRelatorioEstoquePrincipal.getValueAt(linha, 2).toString()+"-"+jTableRelatorioEstoquePrincipal.getValueAt(linha, 0).toString();
        String titulo = "Relatorio Carvo Expedido";
        Paragraph pgt = new Paragraph(titulo, font);
        pgt.setAlignment(Element.ALIGN_CENTER);
        document.add(pgt);
        document.add(new Paragraph(" "));
        /*if(!filtro_matgen.equals("")){
            titulo = "Material genetico "+filtro_matgen;
        }*/
        PdfPTable table = new PdfPTable(colunas.length);
        // Definindo uma fonte, com tamanho 20 e negrito
        PdfPCell header = new PdfPCell(new Paragraph(titulo, font));
        header.setColspan(colunas.length);
        table.addCell(header);
        table.setWidthPercentage(100.0f);
        table.setHorizontalAlignment(Element.ALIGN_JUSTIFIED_ALL);
        //System.out.println("Tamanho: "+linhas.size());
        font = new Font(Font.FontFamily.TIMES_ROMAN, 4, Font.NORMAL);
        for (String coluna : colunas) {
            table.addCell(new Paragraph(coluna, font));
        }

        //varias linhas
        for (int i = 0; i < linhas.size(); i++) {//linha
            for (int j = 0; j < colunas.length; j++) {//coluna
                //table.addCell(jTableRelatorioEstoquePrincipal.getValueAt(i, j).toString());
                table.addCell(new Paragraph(jTableForno.getValueAt(i, j).toString(), font));
            }
        }

        document.add(table);
        document.add(new Paragraph(" "));

        font = new Font(Font.FontFamily.TIMES_ROMAN, 12, Font.BOLD);
        document.add(new Paragraph("Dados Totais", font));
        font = new Font(Font.FontFamily.TIMES_ROMAN, 8, Font.NORMAL);
        document.add(new Paragraph(jLabelInfo1.getText(), font));
        document.add(new Paragraph(jLabelFornosCheios.getText(), font));
        document.add(new Paragraph(jLabelFornosVazios.getText(), font));
        document.add(new Paragraph(jLabelFornosCarbonizando.getText(), font));
        document.add(new Paragraph(jLabelFornosResfriando.getText(), font));
        document.add(new Paragraph(jLabelFornosReforma.getText(), font));
        document.add(new Paragraph(jLabelFornosManutencao.getText(), font));
        document.close();
        JOptionPane.showMessageDialog(null, "PDF: " + arquivo + " gerado!");
    } catch (FileNotFoundException | DocumentException | HeadlessException ex) {
        Logger.getLogger(GerarRelatorioEstoqueBasico.class.getName()).log(Level.SEVERE, null,
                "Erro ao gerar pdf: " + ex);
        JOptionPane.showMessageDialog(null, "Erro ao gerar pdf: " + ex);
    }

}

From source file:Visao.relatorios.GerarRelatorioMadeiraPraca.java

private void GerarPDF() throws DocumentException, FileNotFoundException {
    try {/*from   w w  w . jav a2s .  c  o m*/
        int linha = jTableMadeiraEstoquePraca.getSelectedRow();
        Document document = new Document(PageSize.A4, 10, 10, 10, 10);
        //System.out.println(new File(".").getAbsolutePath());
        String arquivo = new File("Relatorio Madeira Praa.").getAbsolutePath() + "pdf";
        PdfWriter writer = PdfWriter.getInstance(document, new FileOutputStream(arquivo));
        document.open();
        Font font = new Font(Font.FontFamily.TIMES_ROMAN, 12, Font.BOLD);
        //String titulo = jTableRelatorioEstoquePrincipal.getValueAt(linha, 3).toString()+ " "+jTableRelatorioEstoquePrincipal.getValueAt(linha, 2).toString()+"-"+jTableRelatorioEstoquePrincipal.getValueAt(linha, 0).toString();
        String titulo = "Relatorio Madeira Praa";
        Paragraph pgt = new Paragraph(titulo, font);
        pgt.setAlignment(Element.ALIGN_CENTER);
        document.add(pgt);
        document.add(new Paragraph(" "));
        /*if(!filtro_matgen.equals("")){
            titulo = "Material genetico "+filtro_matgen;
        }*/
        PdfPTable table = new PdfPTable(colunas.length);
        // Definindo uma fonte, com tamanho 20 e negrito
        PdfPCell header = new PdfPCell(new Paragraph(titulo, font));
        header.setColspan(colunas.length);
        table.addCell(header);
        table.setWidthPercentage(100.0f);
        table.setHorizontalAlignment(Element.ALIGN_JUSTIFIED_ALL);
        //System.out.println("Tamanho: "+linhas.size());
        font = new Font(Font.FontFamily.TIMES_ROMAN, 4, Font.NORMAL);
        for (String coluna : colunas) {
            table.addCell(new Paragraph(coluna, font));
        }

        //varias linhas
        for (int i = 0; i < linhas.size(); i++) {//linha
            for (int j = 0; j < colunas.length; j++) {//coluna
                //table.addCell(jTableRelatorioEstoquePrincipal.getValueAt(i, j).toString());
                table.addCell(new Paragraph(jTableMadeiraEstoquePraca.getValueAt(i, j).toString(), font));
            }
        }

        document.add(table);
        document.add(new Paragraph(" "));

        font = new Font(Font.FontFamily.TIMES_ROMAN, 12, Font.BOLD);
        document.add(new Paragraph("Dados Totais", font));
        font = new Font(Font.FontFamily.TIMES_ROMAN, 8, Font.NORMAL);
        document.add(new Paragraph(jLabelInfo1.getText(), font));
        document.add(new Paragraph(jLabelMStereoTotal.getText(), font));
        document.add(new Paragraph(jLabelM3Total.getText(), font));
        document.add(new Paragraph(jLabelPesoTotal.getText(), font));

        document.close();
        JOptionPane.showMessageDialog(null, "PDF: " + arquivo + " gerado!");
    } catch (FileNotFoundException | DocumentException | HeadlessException ex) {
        Logger.getLogger(GerarRelatorioEstoqueBasico.class.getName()).log(Level.SEVERE, null,
                "Erro ao gerar pdf: " + ex);
        JOptionPane.showMessageDialog(null, "Erro ao gerar pdf: " + ex);
    }

}