modelo.GenerarPDF.java Source code

Java tutorial

Introduction

Here is the source code for modelo.GenerarPDF.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 modelo;

import ClasesGenericas.Cliente;
import ClasesGenericas.Producto;
import com.itextpdf.text.BaseColor;
import com.itextpdf.text.Document;
import com.itextpdf.text.DocumentException;
import com.itextpdf.text.FontFactory;
import com.itextpdf.text.Image;
import com.itextpdf.text.Paragraph;
import com.itextpdf.text.Phrase;
import com.itextpdf.text.Rectangle;
import com.itextpdf.text.pdf.PdfPCell;
import com.itextpdf.text.pdf.PdfPTable;
import com.itextpdf.text.pdf.PdfWriter;
import com.itextpdf.text.Font;
import com.itextpdf.text.Font.FontFamily;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.ArrayList;

/**
 *
 * @author panle
 */
public class GenerarPDF {

    public void nuevoReporteClientes(ArrayList<Cliente> Datos) throws IOException {
        // Se crea el documento Document documento = new Document();
        // Se crea el OutputStream para el fichero donde queremos dejar el pdf.
        Document documento = null;
        try {
            FileOutputStream ficheroPdf = new FileOutputStream("C:\\Users\\panle\\Documents\\ReporteClientes.pdf");
            documento = new Document(); // Se asocia el documento al OutputStream y se indica que el espaciado entre
            // lineas sera de 20. Esta llamada debe hacerse antes de abrir el documento
            PdfWriter.getInstance(documento, ficheroPdf).setInitialLeading(20);

            // Se abre el documento.
            documento.open();
            documento.add(new Paragraph("REPORTE CLIENTES", FontFactory.getFont("ARIAL", // fuente
                    16, // tamao
                    Font.ITALIC, // estilo
                    BaseColor.BLACK))); // color

            PdfPTable tabla = new PdfPTable(9);
            Font font = new Font(FontFamily.COURIER, 6, Font.BOLD, BaseColor.BLACK);
            PdfPCell cell = new PdfPCell(new Phrase("algo", font));
            documento.add(new Paragraph("\n"));

            Image img = Image.getInstance("C:\\Users\\panle\\Documents\\logo.png");
            documento.add(img);
            documento.add(new Paragraph("\n"));
            int conta = 0;

            cell.setBorder(Rectangle.TITLE);
            tabla.addCell("NOMBRE COMLETO");
            tabla.addCell("USUARIO");
            tabla.addCell("NIT");
            tabla.addCell("NO DOCUMENTO");
            tabla.addCell("PROFESION");
            tabla.addCell("TELFONO CELULAR");
            tabla.addCell("TELFONO RESIDENCIA");
            tabla.addCell("DIRECCIN");
            tabla.addCell("CIUDAD");

            while (conta < Datos.size()) {
                cell.setBorder(Rectangle.NO_BORDER);
                tabla.addCell(Datos.get(conta).getNOMBRE() + " " + Datos.get(conta).getAPELLIDO());
                tabla.addCell(Datos.get(conta).getUSUARIO());
                tabla.addCell(Datos.get(conta).getNIT());
                tabla.addCell(Datos.get(conta).getNUMERO_DOC());
                tabla.addCell(Datos.get(conta).getPROFESION());
                tabla.addCell(Datos.get(conta).getTEL_CEL());
                tabla.addCell(Datos.get(conta).getTEL_RESIDENCIA());
                tabla.addCell(Datos.get(conta).getDIRECCION());
                tabla.addCell(Datos.get(conta).getCIUDAD());
                conta++;
            }

            documento.add(tabla);
            documento.close();

        } catch (FileNotFoundException | DocumentException e) {
            System.out.println("Error al generar Reporte Clientes, por:");
            e.printStackTrace();
        }
    }

    public void nuevoReporteProductos(ArrayList<Producto> Datos) throws IOException {
        // Se crea el documento Document
        // Se crea el OutputStream para el fichero donde queremos dejar el pdf.
        Document documento = null;
        try {
            //Direccion root
            FileOutputStream ficheroPdf = new FileOutputStream("C:\\Users\\panle\\Documents\\ReporteProductos.pdf");
            //FileOutputStream ficheroPdf = new FileOutputStream("user.dir/tmp", "ReporteProductos.pdf");
            //File tempfile = new File("user.dir/tmp", "tempfile.txt");    
            documento = new Document();
            // Se asocia el documento al OutputStream y se indica que el espaciado entre
            // lineas sera de 20. Esta llamada debe hacerse antes de abrir el documento
            PdfWriter.getInstance(documento, ficheroPdf).setInitialLeading(20);

            // Se abre el documento
            documento.open();
            documento.add(new Paragraph("REPORTE PRODUCTOS", FontFactory.getFont("ARIAL", // fuente
                    16, // tamao
                    Font.ITALIC, // estilo
                    BaseColor.BLACK))); // color

            PdfPTable tabla = new PdfPTable(3);//#campos(columnas) para la tabla
            Font font = new Font(FontFamily.COURIER, 6, Font.BOLD, BaseColor.BLACK);
            PdfPCell cell = new PdfPCell(new Phrase("Celdas", font));

            documento.add(new Paragraph("\n"));

            Image img = Image.getInstance("C:\\Users\\logo.png");
            documento.add(img);
            documento.add(new Paragraph("\n"));

            int conta = 0;

            cell.setBorder(Rectangle.TITLE);
            tabla.addCell("DESCRIPCION");
            tabla.addCell("REFERENCIA");
            tabla.addCell("TIPO");

            while (conta < Datos.size()) {
                cell.setBorder(Rectangle.NO_BORDER);
                tabla.addCell(Datos.get(conta).getDESCRIPCION());
                tabla.addCell(Datos.get(conta).getREFERENCIA());
                tabla.addCell(Datos.get(conta).getTIPO());
                conta++;
            }

            documento.add(tabla);
            documento.close();

        } catch (FileNotFoundException | DocumentException e) {
            System.out.println("Error al generar Reporte Productos, por:");
            e.printStackTrace();
        }
    }

    public void nuevoReporteVentasFecha(ArrayList<Producto> Datos) throws IOException {
        // Se crea el documento Document
        // Se crea el OutputStream para el fichero donde queremos dejar el pdf.
        Document documento = null;
        try {
            //Direccion root
            FileOutputStream ficheroPdf = new FileOutputStream(
                    "C:\\Users\\panle\\Documents\\ReporteVentasFecha.pdf");
            //FileOutputStream ficheroPdf = new FileOutputStream("user.dir/tmp", "ReporteProductos.pdf");
            //File tempfile = new File("user.dir/tmp", "tempfile.txt");    
            documento = new Document();
            // Se asocia el documento al OutputStream y se indica que el espaciado entre
            // lineas sera de 20. Esta llamada debe hacerse antes de abrir el documento
            PdfWriter.getInstance(documento, ficheroPdf).setInitialLeading(20);

            // Se abre el documento
            documento.open();
            documento.add(new Paragraph("REPORTE VENTAS POR FECHA", FontFactory.getFont("ARIAL", // fuente
                    16, // tamao
                    Font.ITALIC, // estilo
                    BaseColor.BLACK))); // color

            PdfPTable tabla = new PdfPTable(3);//#campos(columnas) para la tabla
            Font font = new Font(FontFamily.COURIER, 6, Font.BOLD, BaseColor.BLACK);
            PdfPCell cell = new PdfPCell(new Phrase("Celdas", font));

            documento.add(new Paragraph("\n"));

            Image img = Image.getInstance("C:\\Users\\logo.png");
            documento.add(img);
            documento.add(new Paragraph("\n"));

            int conta = 0;

            cell.setBorder(Rectangle.TITLE);
            tabla.addCell("DESCRIPCION");
            tabla.addCell("REFERENCIA");
            tabla.addCell("TIPO");

            while (conta < Datos.size()) {
                cell.setBorder(Rectangle.NO_BORDER);
                tabla.addCell(Datos.get(conta).getDESCRIPCION());
                tabla.addCell(Datos.get(conta).getREFERENCIA());
                tabla.addCell(Datos.get(conta).getTIPO());
                conta++;
            }

            documento.add(tabla);
            documento.close();

        } catch (FileNotFoundException | DocumentException e) {
            System.out.println("Error al generar Reporte Productos, por:");
            e.printStackTrace();
        }
    }

    public void nuevoReporteVentasCiudad(ArrayList<Producto> Datos) throws IOException {
        // Se crea el documento Document
        // Se crea el OutputStream para el fichero donde queremos dejar el pdf.
        Document documento = null;
        try {
            //Direccion root
            FileOutputStream ficheroPdf = new FileOutputStream(
                    "C:\\Users\\panle\\Documents\\ReporteVentasCiudad.pdf");
            //FileOutputStream ficheroPdf = new FileOutputStream("user.dir/tmp", "ReporteProductos.pdf");
            //File tempfile = new File("user.dir/tmp", "tempfile.txt");    
            documento = new Document();
            // Se asocia el documento al OutputStream y se indica que el espaciado entre
            // lineas sera de 20. Esta llamada debe hacerse antes de abrir el documento
            PdfWriter.getInstance(documento, ficheroPdf).setInitialLeading(20);

            // Se abre el documento
            documento.open();
            documento.add(new Paragraph("REPORTE VENTAS POR CIUDAD", FontFactory.getFont("ARIAL", // fuente
                    16, // tamao
                    Font.ITALIC, // estilo
                    BaseColor.BLACK))); // color

            PdfPTable tabla = new PdfPTable(3);//#campos(columnas) para la tabla
            Font font = new Font(FontFamily.COURIER, 6, Font.BOLD, BaseColor.BLACK);
            PdfPCell cell = new PdfPCell(new Phrase("Celdas", font));

            documento.add(new Paragraph("\n"));

            Image img = Image.getInstance("C:\\Users\\logo.png");
            documento.add(img);
            documento.add(new Paragraph("\n"));

            int conta = 0;

            cell.setBorder(Rectangle.TITLE);
            tabla.addCell("DESCRIPCION");
            tabla.addCell("REFERENCIA");
            tabla.addCell("TIPO");

            while (conta < Datos.size()) {
                cell.setBorder(Rectangle.NO_BORDER);
                tabla.addCell(Datos.get(conta).getDESCRIPCION());
                tabla.addCell(Datos.get(conta).getREFERENCIA());
                tabla.addCell(Datos.get(conta).getTIPO());
                conta++;
            }

            documento.add(tabla);
            documento.close();

        } catch (FileNotFoundException | DocumentException e) {
            System.out.println("Error al generar Reporte Productos, por:");
            e.printStackTrace();
        }
    }

    public void nuevoReporteVentasMueble(ArrayList<Producto> Datos) throws IOException {
        // Se crea el documento Document
        // Se crea el OutputStream para el fichero donde queremos dejar el pdf.
        Document documento = null;
        try {
            //Direccion root
            FileOutputStream ficheroPdf = new FileOutputStream(
                    "C:\\Users\\panle\\Documents\\ReporteVentasMueble.pdf");
            //FileOutputStream ficheroPdf = new FileOutputStream("user.dir/tmp", "ReporteProductos.pdf");
            //File tempfile = new File("user.dir/tmp", "tempfile.txt");    
            documento = new Document();
            // Se asocia el documento al OutputStream y se indica que el espaciado entre
            // lineas sera de 20. Esta llamada debe hacerse antes de abrir el documento
            PdfWriter.getInstance(documento, ficheroPdf).setInitialLeading(20);

            // Se abre el documento
            documento.open();
            documento.add(new Paragraph("REPORTE VENTAS POR MUEBLE", FontFactory.getFont("ARIAL", // fuente
                    16, // tamao
                    Font.ITALIC, // estilo
                    BaseColor.BLACK))); // color

            PdfPTable tabla = new PdfPTable(3);//#campos(columnas) para la tabla
            Font font = new Font(FontFamily.COURIER, 6, Font.BOLD, BaseColor.BLACK);
            PdfPCell cell = new PdfPCell(new Phrase("Celdas", font));

            documento.add(new Paragraph("\n"));

            Image img = Image.getInstance("C:\\Users\\logo.png");
            documento.add(img);
            documento.add(new Paragraph("\n"));

            int conta = 0;

            cell.setBorder(Rectangle.TITLE);
            tabla.addCell("DESCRIPCION");
            tabla.addCell("REFERENCIA");
            tabla.addCell("TIPO");

            while (conta < Datos.size()) {
                cell.setBorder(Rectangle.NO_BORDER);
                tabla.addCell(Datos.get(conta).getDESCRIPCION());
                tabla.addCell(Datos.get(conta).getREFERENCIA());
                tabla.addCell(Datos.get(conta).getTIPO());
                conta++;
            }

            documento.add(tabla);
            documento.close();

        } catch (FileNotFoundException | DocumentException e) {
            System.out.println("Error al generar Reporte Productos, por:");
            e.printStackTrace();
        }
    }
}