generadorPDF.generarPDF.java Source code

Java tutorial

Introduction

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

   import Datos.Resolucion;
   import Datos.Socio;
   import java.io.FileOutputStream;
   import java.util.Date;

   import com.itextpdf.text.Anchor;
   import com.itextpdf.text.BadElementException;
   import com.itextpdf.text.BaseColor;
   import com.itextpdf.text.Chapter;
   import com.itextpdf.text.Document;
   import com.itextpdf.text.DocumentException;
   import com.itextpdf.text.Element;
   import com.itextpdf.text.Font;
   import com.itextpdf.text.List;
   import com.itextpdf.text.ListItem;
   import com.itextpdf.text.Paragraph;
   import com.itextpdf.text.Phrase;
   import com.itextpdf.text.Section;
   import com.itextpdf.text.pdf.PdfPCell;
   import com.itextpdf.text.pdf.PdfPTable;
   import com.itextpdf.text.pdf.PdfWriter;

   /**
    *
    * @author Gonzalo
    */
   public class generarPDF {

       private static String FILE;
       private static Font catFont = new Font(Font.FontFamily.TIMES_ROMAN, 18, Font.BOLD);
       private static Font redFont = new Font(Font.FontFamily.TIMES_ROMAN, 12, Font.NORMAL, BaseColor.RED);
       private static Font subFont = new Font(Font.FontFamily.TIMES_ROMAN, 16, Font.BOLD);
       private static Font smallBold = new Font(Font.FontFamily.TIMES_ROMAN, 12, Font.BOLD);
       private static Font cuerpo = new Font(Font.FontFamily.TIMES_ROMAN, 12);

       /**
        * @return the FILE
        */
       public static String getFILE() {
           return FILE;
       }

       /**
        * @param aFILE the FILE to set
        */
       public static void setFILE(String aFILE) {
           FILE = aFILE;
       }

public void generarPDF_Resolucion(Socio sociox, String num_res,int tipo_resolucion){
     try {
         Resolucion res=new Resolucion();
         res= res.BuscarX(num_res);
         //generar nombre
         FILE = "C:\\CPI\\Resoluciones\\";
         String nombreArchivo = num_res;
         String[] parts = nombreArchivo.split("/");
         String num_nombreArchivo =parts[0];
         String ao_carpeta =parts[1];
         switch(tipo_resolucion){
               case 1:
                   FILE=FILE.concat("Aceptacion\\"+ao_carpeta+"\\"+num_nombreArchivo+".pdf");
               break;
               case 2:
                   FILE=FILE.concat("Expulsion\\"+ao_carpeta+"\\"+num_nombreArchivo+".pdf");
               break;
               case 3:
                   FILE=FILE.concat("Renuncia\\"+ao_carpeta+"\\"+num_nombreArchivo+".pdf");
               break;
               case 4:
                   FILE=FILE.concat("Suspension\\"+ao_carpeta+"\\"+num_nombreArchivo+".pdf");
               break;    
                
       }
     //verfificar, si no existe la carpeta, crearla
     //http://devtroce.com/2010/03/26/verificar-y-crear-directorio-con-java/
      
     res.guardarRutaArchivo(res.getId_resolucion(), FILE);
      
          
     Document document = new Document();
     PdfWriter.getInstance(document, new FileOutputStream(getFILE()));
     document.open();
       addMetaData(document);
       addTitlePage(document,res);
       addContent(document,sociox,res);
     document.close();
       
   } catch (Exception e) {
     e.printStackTrace();
   }
}

       // iText allows to add metadata to the PDF which can be viewed in your Adobe
       // Reader
       // under File -> Properties
       private static void addMetaData(Document document) {
           document.addTitle("My first PDF");
           document.addSubject("Using iText");
           document.addKeywords("Java, PDF, iText");
           document.addAuthor("Lars Vogel");
           document.addCreator("Lars Vogel");
       }

       private static void addTitlePage(Document document, Resolucion res) throws DocumentException {
           Paragraph preface = new Paragraph();
           // We add one empty line
           addEmptyLine(preface, 1);
           // Lets write a big header
           preface.add(new Paragraph("Consejo Profesional de Informatica de Santiago del Estero", catFont));

           addEmptyLine(preface, 1);
           // Will create: Report generated by: _name, _date
           preface.add(new Paragraph("Comision Directiva del Consejo, " + new Date(), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
                   smallBold));
           addEmptyLine(preface, 2);
           preface.add(new Paragraph("Resolucion N" + res.getNumero_resolucion() + "", smallBold));

           addEmptyLine(preface, 3);

           preface.add(new Paragraph("Esta Resolucion de tipo " + res.getTipo()
                   + " formulada para notificar al socio con legajo: " + res.getLegajo_socio()
                   + " de su actual estado como socio del Consejo.\n" + res.getDescripcion_solicitud() + " "
                   + res.getDescripcion_resolucion() + " en la fecha " + res.getFecha(), cuerpo));

           document.add(preface);
           // Start a new page
           document.newPage();
       }

       private static void addContent(Document document, Socio sociox, Resolucion res) throws DocumentException {
           Anchor anchor = new Anchor("First Chapter", catFont);
           anchor.setName("First Chapter");

           // Second parameter is the number of the chapter
           Chapter catPart = new Chapter(new Paragraph(anchor), 1);

           Paragraph subPara = new Paragraph("Subcategory 1", subFont);
           Section subCatPart = catPart.addSection(subPara);
           subCatPart.add(new Paragraph("Hello"));
           subCatPart.add(new Paragraph(sociox.getApellido() + sociox.getNombre() + sociox.getLegajo_socio()));

           subPara = new Paragraph("Subcategory 2", subFont);
           subCatPart = catPart.addSection(subPara);
           subCatPart.add(new Paragraph("Paragraph 1"));
           subCatPart.add(new Paragraph("Paragraph 2"));
           subCatPart.add(new Paragraph("Paragraph 3"));

           // add a list
           createList(subCatPart);
           Paragraph paragraph = new Paragraph();
           addEmptyLine(paragraph, 5);
           subCatPart.add(paragraph);

           // add a table
           createTable(subCatPart);

           // now add all this to the document
           //document.add(catPart);

           // Next section
           anchor = new Anchor("Second Chapter", catFont);
           anchor.setName("Second Chapter");

           // Second parameter is the number of the chapter
           catPart = new Chapter(new Paragraph(anchor), 1);

           subPara = new Paragraph("Subcategory", subFont);
           subCatPart = catPart.addSection(subPara);
           subCatPart.add(new Paragraph("This is a very important message"));

           // now add all this to the document
           //document.add(catPart);

       }

       private static void createTable(Section subCatPart) throws BadElementException {
           PdfPTable table = new PdfPTable(3);

           // t.setBorderColor(BaseColor.GRAY);
           // t.setPadding(4);
           // t.setSpacing(4);
           // t.setBorderWidth(1);

           PdfPCell c1 = new PdfPCell(new Phrase("Table Header 1"));
           c1.setHorizontalAlignment(Element.ALIGN_CENTER);
           table.addCell(c1);

           c1 = new PdfPCell(new Phrase("Table Header 2"));
           c1.setHorizontalAlignment(Element.ALIGN_CENTER);
           table.addCell(c1);

           c1 = new PdfPCell(new Phrase("Table Header 3"));
           c1.setHorizontalAlignment(Element.ALIGN_CENTER);
           table.addCell(c1);
           table.setHeaderRows(1);

           table.addCell("1.0");
           table.addCell("1.1");
           table.addCell("1.2");
           table.addCell("2.1");
           table.addCell("2.2");
           table.addCell("2.3");

           subCatPart.add(table);

       }

       private static void createList(Section subCatPart) {
           List list = new List(true, false, 10);
           list.add(new ListItem("First point"));
           list.add(new ListItem("Second point"));
           list.add(new ListItem("Third point"));
           subCatPart.add(list);
       }

       private static void addEmptyLine(Paragraph paragraph, int number) {
           for (int i = 0; i < number; i++) {
               paragraph.add(new Paragraph(" "));
           }
       }

   }