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 Reportes; import Listas.ListaUsuario; import Nodos.NodoUsuario; import com.itextpdf.text.BaseColor; import com.itextpdf.text.Document; import com.itextpdf.text.DocumentException; import com.itextpdf.text.Element; import com.itextpdf.text.Font; import com.itextpdf.text.FontFactory; import com.itextpdf.text.Paragraph; import com.itextpdf.text.pdf.PdfPCell; import com.itextpdf.text.pdf.PdfPTable; import com.itextpdf.text.pdf.PdfWriter; import java.io.FileOutputStream; import java.io.IOException; import javax.swing.JOptionPane; /** * * @author Edward */ public class ReportePersonal { int NumeroColumnas; public static NodoUsuario Nodo = new NodoUsuario(); public void crearInformeTabla(String tabla, String campo, ListaUsuario P) { String nombreArchivo = "Reporte_Personal.pdf"; Document documento = null; // Se crea el documento documento = new Document(); Nodo = P.getPrimero(); try { int NumeroColumnas = numeroDeColumnas(); // Se crea el OutputStream para el fichero donde queremos dejar el pdf. System.out.println(" archivo " + nombreArchivo); FileOutputStream ficheroPdf = new FileOutputStream(nombreArchivo); // 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(); //INSETAR objetos al documento documento.add(crearTitulo("Tabla " + tabla));// inserta el titulo documento.add(new Paragraph(" "));//para dar un salto de linea // documento.add(obtenerImagen("images.jpg"));// inserta una imagen que se llama images.jpg documento.add(tablaTitulos());// inserta una tabla con las columnas del rs documento.add(tablaDatos());// inserta una tabla con los registros del rs //documento.add( sumaDatosCampo(tabla,campo)); documento.close(); } catch (IOException r) // errores al copiar en el archivo { System.out.println("error CREAR EL ARCHIVO"); } catch (DocumentException h1) { System.out.println("errorL AL ABRIR EL DOCUMENTO"); } mostrarArchivo(nombreArchivo); } public int numeroDeColumnas() { int numeroColumnas = 4; return numeroColumnas; } public Paragraph crearTitulo(String titulo) { Paragraph parrafo2 = new Paragraph(titulo, FontFactory.getFont("arial", 18, Font.BOLD, BaseColor.BLACK)); // fuente, tamao, estilo, color parrafo2.setAlignment(1);//el 1 es para centrar return parrafo2; } public PdfPTable tablaTitulos() { PdfPTable tabla = null; int numeroColumnas; String V[] = new String[5]; V[0] = "Tipo Documento"; V[1] = "Documento"; V[2] = "Nombre"; V[3] = "Correo"; V[4] = "Perfil"; // ResultSetMetaData metaDatos = rs.getMetaData(); // Se obtiene el numero de columnas. numeroColumnas = 5;//metaDatos.getColumnCount(); tabla = new PdfPTable(numeroColumnas); PdfPCell celda = null; for (int i = 0; i < numeroColumnas; i++) { String tituloColumna = V[i]; celda = new PdfPCell( new Paragraph(tituloColumna, FontFactory.getFont("arial", 12, Font.BOLD, BaseColor.BLACK))); celda.setBackgroundColor(BaseColor.WHITE); celda.setHorizontalAlignment(Element.ALIGN_CENTER); tabla.addCell(celda); } return tabla; } public PdfPTable tablaDatos() { PdfPTable tabla = null; int numeroColumnas; String tipoDoc, documento, nombre, correo, perfil; String V[] = new String[6]; PdfPCell celda; // Se obtiene el numero de columnas. numeroColumnas = 5; tabla = new PdfPTable(numeroColumnas);//construye una tabla con el nmero de columnas requeridas while (Nodo != null) // recorre cada registro del resultset { tipoDoc = Nodo.getUsuario().getTipoDoc(); documento = Nodo.getUsuario().getDocumento(); nombre = Nodo.getUsuario().getNombre(); correo = Nodo.getUsuario().getCorreo(); perfil = Nodo.getUsuario().getPerfil(); V[0] = tipoDoc; V[1] = documento; V[2] = nombre; V[3] = correo; V[4] = perfil; for (int i = 0; i < numeroColumnas; i++)//lee cada campo del registro activo { String fila = V[i]; celda = new PdfPCell( new Paragraph(fila, FontFactory.getFont("arial", 12, Font.NORMAL, BaseColor.BLACK))); celda.setBackgroundColor(BaseColor.WHITE); tabla.addCell(celda); } Nodo = Nodo.getLiga(); } return tabla; } public void mostrarArchivo(String nombreArchivo) { String comando[] = { "C:\\Program Files (x86)\\Adobe\\Reader 11.0\\Reader\\AcroRd32.exe", nombreArchivo }; try { Runtime.getRuntime().exec(comando); } catch (Exception e) { JOptionPane.showMessageDialog(null, "EL ARCHIVO PDF FUE CREADO CORRECTAMENTE PERO NO SE PUEDE MOSTRAR \n CORRIJA LA RUTA DE LA APLICACION ACROR32.EXE"); e.printStackTrace(); } } }