informes.InformeActividad.java Source code

Java tutorial

Introduction

Here is the source code for informes.InformeActividad.java

Source

/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package informes;

import com.itextpdf.text.BadElementException;
import com.itextpdf.text.BaseColor;
import com.itextpdf.text.Chunk;
import com.itextpdf.text.Document;
import com.itextpdf.text.DocumentException;
import com.itextpdf.text.Font;
import com.itextpdf.text.Image;
import com.itextpdf.text.Paragraph;
import com.itextpdf.text.pdf.PdfPTable;
import com.itextpdf.text.pdf.PdfWriter;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.faces.context.ExternalContext;
import javax.faces.context.FacesContext;
import modelo.Actividad;
import modelo.Objetivoestrategico;
import modelo.Objetivoestrategicoindicador;

/**
 *
 * @author adrian
 */
public class InformeActividad {

    private String descripsion;
    private List<Objetivoestrategico> items;

    public InformeActividad(String descripsion, List<Objetivoestrategico> items) {
        this.descripsion = descripsion;
        this.items = items;
    }

    public String getDescripsion() {
        return descripsion;
    }

    public void setDescripsion(String descripsion) {
        this.descripsion = descripsion;
    }

    public List<Objetivoestrategico> getItems() {
        return items;
    }

    public void setItems(List<Objetivoestrategico> items) {
        this.items = items;
    }

    private ExternalContext ec = FacesContext.getCurrentInstance().getExternalContext();

    private static void agregarLineasEnBlanco(Paragraph parrafo, int nLineas) {
        for (int i = 0; i < nLineas; i++) {
            parrafo.add(new Paragraph(" "));
        }
    }

    public void generarInforme() {
        try {
            Document document = new Document();
            Paragraph ParrafoHoja = new Paragraph();
            String parrafo = this.getDescripsion();
            String ruta = ec.getRealPath("img");
            PdfWriter.getInstance(document, new FileOutputStream(ruta + "\\" + "actividades.pdf"));

            Font fuente = new Font();
            fuente.setColor(255, 0, 0);
            fuente.setSize(30);

            Font fuente3 = new Font();
            fuente3.setColor(255, 255, 255);
            fuente3.setSize(30);

            PdfPTable tabla2 = new PdfPTable(1);
            tabla2.getDefaultCell().setBackgroundColor(BaseColor.BLUE);
            tabla2.setWidthPercentage(110f);
            tabla2.addCell(new Paragraph("UNIDAD EDUCATIVA", fuente3));
            tabla2.addCell(new Paragraph("'MISIONEROS OBLATOS'", fuente3));

            Paragraph p = new Paragraph(parrafo, fuente);

            agregarLineasEnBlanco(ParrafoHoja, 3);

            document.open();
            document.add(tabla2);
            document.add(p);
            document.add(ParrafoHoja);
            Font fuente1 = new Font();
            fuente1.setColor(0, 0, 0);
            fuente1.setSize(5);

            Font fuente2 = new Font();
            fuente2.setColor(255, 0, 0);
            fuente2.setSize(5);
            PdfPTable tabla = new PdfPTable(5);
            tabla.setWidthPercentage(107f);

            Font fuente4 = new Font();
            fuente4.setColor(0, 0, 0);
            fuente4.setSize(8);

            // Paragraph p4 = new Paragraph(parrafo, fuente4);

            //tabla.addCell(new Paragraph("OBJESTRATEGICO",fuente2));
            tabla.addCell(new Paragraph("RESPONSABLE", fuente2));
            tabla.addCell(new Paragraph("CONTROL", fuente2));
            tabla.addCell(new Paragraph("FECHA INICIO", fuente2));
            tabla.addCell(new Paragraph("FECHA FIN", fuente2));
            tabla.addCell(new Paragraph("AVANCE", fuente2));
            int cont = 0;
            tabla.getDefaultCell().setBackgroundColor(BaseColor.WHITE);
            for (int i = 0; i < this.getItems().size(); i++) {
                // Paragraph p1 =new Paragraph(parrafo,fuente);
                String num = String.valueOf(i);
                Paragraph p4 = new Paragraph("Objetivo: " + num + " --> " + this.getItems().get(i).getNombre(),
                        fuente4);
                document.add(p4);
                Paragraph p8 = new Paragraph();
                agregarLineasEnBlanco(p8, 1);
                document.add(p8);

                for (Actividad a : this.getItems().get(i).getActividadCollection()) {
                    System.out.println("");
                    if (a.getIdObjetivoEstrategico()
                            .getIdObjetivoEstrategico() == (this.getItems().get(i).getIdObjetivoEstrategico())) {
                        cont = 1;
                        tabla.addCell(new Paragraph(a.getIdObjetivoEstrategico().getNombre(), fuente1));

                        tabla.addCell(new Paragraph(a.getIdPersonaResponsable().getNombre(), fuente1));
                        tabla.addCell(new Paragraph(a.getControl(), fuente1));
                        tabla.addCell(new Paragraph(a.getFechaInicio().toString(), fuente1));
                        tabla.addCell(new Paragraph(a.getFechaFin().toString(), fuente1));
                        tabla.addCell(new Paragraph(a.getAvance().toString(), fuente1));

                    }
                }
                Paragraph p7 = new Paragraph();
                if (cont == 1) {
                    document.add(tabla);
                    cont = 0;
                    agregarLineasEnBlanco(p7, 2);
                    document.add(p7);
                } else {
                    Font fuente5 = new Font();
                    fuente5.setColor(0, 0, 255);
                    fuente5.setSize(10);

                    document.add(new Paragraph("No contiene actividades registradas", fuente5));
                    agregarLineasEnBlanco(p7, 2);
                    document.add(p7);
                }
            }

            document.add(new Paragraph(new Date().toString()));

            document.close();
            System.out.println("aquiiiiii");
        } catch (FileNotFoundException ex) {
            Logger.getLogger(InformeActividad.class.getName()).log(Level.SEVERE, null, ex);
        } catch (DocumentException ex) {
            Logger.getLogger(InformeActividad.class.getName()).log(Level.SEVERE, null, ex);
        } catch (IOException ex) {
            Logger.getLogger(InformeActividad.class.getName()).log(Level.SEVERE, null, ex);
        }
    }

}