Java tutorial
/* * 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(" ")); } } }