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. */ import ConexionBD.ConexionOracle; import com.itextpdf.text.BaseColor; import com.itextpdf.text.Document; import com.itextpdf.text.DocumentException; import com.itextpdf.text.Element; import com.itextpdf.text.FontFactory; import com.itextpdf.text.Image; import com.itextpdf.text.Paragraph; import com.itextpdf.text.pdf.PdfContentByte; import com.itextpdf.text.pdf.PdfGState; import com.itextpdf.text.pdf.PdfWriter; import java.awt.Font; import java.io.IOException; import java.net.URL; import java.sql.Connection; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; import java.util.Calendar; import java.util.GregorianCalendar; import java.util.logging.Level; import java.util.logging.Logger; import javax.servlet.ServletException; import static javax.servlet.SessionTrackingMode.URL; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; public class PrefichaPDF extends HttpServlet { String fichabd = null; String periodobd = null; String fechapdf = null; String prefichabd = null; String nombrebd = null; String apellidosbd = null; String curpbd = null; String carrerabd = null; String modalidadbd = null; protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { try { response.setContentType("application/pdf"); String curp = new String(request.getParameter("curp").getBytes("ISO-8859-1"), "UTF-8"); ConexionOracle conexionOracle = new ConexionOracle(); String sql = "select * from PERSONALDATA_ASP_TAB where curp=" + "'" + curp + "'"; System.out.println(sql); System.out.println("Esta es la curp: " + curp); conexionOracle.conectar(); Connection conn = conexionOracle.getConnection(); // driver@machineName:port:SID , userid, password Statement stmt = conn.createStatement(); ResultSet rset = stmt.executeQuery(sql); while (rset.next()) { fichabd = rset.getString("id_aspirante"); periodobd = rset.getString("periodo_solicitud"); prefichabd = rset.getString("preficha"); nombrebd = rset.getString("nombre"); String appat = rset.getString("apellido_pat"); String apmat = rset.getString("apellido_mat"); apellidosbd = appat + " " + apmat; curpbd = rset.getString("curp"); carrerabd = rset.getString("carrera"); modalidadbd = rset.getString("modalidad"); } try { Document preficha = new Document(); PdfWriter writer = PdfWriter.getInstance(preficha, response.getOutputStream()); preficha.open(); //encabezado //encabezado //encabezado //encabezado // documento.add(vacio); // documento.add(vacio); // documento.add(vacio); Paragraph depto = new Paragraph("Departamento de servicios escolares", FontFactory.getFont("arial", 20, Font.BOLD)); depto.setAlignment(Element.ALIGN_CENTER); preficha.add(depto); Paragraph vacio = new Paragraph(" ", FontFactory.getFont("arial", 10, Font.BOLD)); vacio.setAlignment(Element.ALIGN_CENTER); preficha.add(vacio); preficha.add(vacio); // preficha.add(vacio); //cuerpo //cuerpo //cuerpo //cuerpo //cuerpo Paragraph periodo_text = new Paragraph("Convocatoria de nuevo ingreso periodo: " + periodobd, FontFactory.getFont("arial", 10, Font.BOLD)); periodo_text.setAlignment(Element.ALIGN_CENTER); preficha.add(periodo_text); preficha.add(vacio); preficha.add(vacio); Paragraph fotografia = new Paragraph("Fotografa", FontFactory.getFont("arial", 10, Font.BOLD)); fotografia.setAlignment(Element.ALIGN_CENTER); preficha.add(fotografia); PdfContentByte rectangulo_general = writer.getDirectContentUnder(); rectangulo_general.rectangle(50, 48, 500, 710); rectangulo_general.fill(); drawRectangleSC(rectangulo_general, 50, 48, 500, 710); PdfContentByte rectangulo_periodo = writer.getDirectContentUnder(); rectangulo_periodo.rectangle(125, 725, 350, 20); rectangulo_periodo.fill(); drawRectangleSC(rectangulo_periodo, 125, 725, 350, 20); String url_logo = "/Imagenes/itt_logo_opt.jpg"; String absolute_url_logo = getServletContext().getRealPath(url_logo); Image itt_logo = Image.getInstance(absolute_url_logo); String url_logo_bnmx = "/Imagenes/bnmx_color_opt.jpg"; String absolute_url_logo_bnmx = getServletContext().getRealPath(url_logo_bnmx); Image bnmx_logo = Image.getInstance(absolute_url_logo_bnmx); Image Logo_itt = Image.getInstance(itt_logo); Logo_itt.setAbsolutePosition(140f, 640f); preficha.add(Logo_itt); Image Logo_banco = Image.getInstance(bnmx_logo); Logo_banco.setAbsolutePosition(380f, 340f); preficha.add(Logo_banco); PdfContentByte espacio_imagen = writer.getDirectContentUnder(); espacio_imagen.rectangle(255, 635, 85, 80); espacio_imagen.fill(); drawRectangleSC(espacio_imagen, 255, 635, 85, 80); // preficha.add(vacio); preficha.add(vacio); PdfContentByte fechaimpr = writer.getDirectContentUnder(); fechaimpr.rectangle(416, 635, 100, 35); fechaimpr.fill(); drawRectangleSC(fechaimpr, 416, 635, 100, 35); // drawRectangle(fechaimpr, 85, 530, 430, 25); Paragraph fechapdf = new Paragraph("\tFecha de impresin ", FontFactory.getFont("arial", 10, com.itextpdf.text.Font.BOLD)); fechapdf.setAlignment(Element.ALIGN_RIGHT); preficha.add(fechapdf); Paragraph fechapdf_fec = new Paragraph("\t" + fecha_hoy() + " ", FontFactory.getFont("arial", 10, com.itextpdf.text.Font.BOLD)); fechapdf_fec.setAlignment(Element.ALIGN_RIGHT); preficha.add(fechapdf_fec); preficha.add(vacio); Paragraph no_preficha = new Paragraph("Preficha N: " + prefichabd, FontFactory.getFont("arial", 20, Font.BOLD)); no_preficha.setAlignment(Element.ALIGN_CENTER); preficha.add(no_preficha); preficha.add(vacio); // preficha.add(vacio); PdfContentByte rectangulo_preficha_no = writer.getDirectContentUnder(); rectangulo_preficha_no.rectangle(85, 590, 430, 25); rectangulo_preficha_no.fill(); drawRectangleSC(rectangulo_preficha_no, 85, 590, 430, 25); PdfContentByte rectangulo_datos = writer.getDirectContentUnder(); rectangulo_datos.rectangle(85, 500, 430, 80); // rectangulo_datos.rec rectangulo_datos.fill(); drawRectangleSC(rectangulo_datos, 85, 500, 430, 80); ////////////////////////////// Paragraph nombre = new Paragraph( " Nombre: " + nombrebd, FontFactory.getFont("arial", 10, Font.BOLD)); nombre.setAlignment(Element.ALIGN_LEFT); preficha.add(nombre); // preficha.add(vacio); Paragraph apellidos = new Paragraph( " " + apellidosbd, FontFactory.getFont("arial", 10, Font.BOLD)); apellidos.setAlignment(Element.ALIGN_LEFT); preficha.add(apellidos); // preficha.add(vacio); Paragraph CURP = new Paragraph( " CURP: " + curpbd, FontFactory.getFont("arial", 10, Font.BOLD)); CURP.setAlignment(Element.ALIGN_LEFT); preficha.add(CURP); // preficha.add(vacio); Paragraph carrera = new Paragraph( " Carrera Solicitada: " + carrerabd, FontFactory.getFont("arial", 10, Font.BOLD)); carrera.setAlignment(Element.ALIGN_LEFT); preficha.add(carrera); // preficha.add(vacio); Paragraph modalidad = new Paragraph( " Modalidad: " + modalidadbd, FontFactory.getFont("arial", 10, Font.BOLD)); modalidad.setAlignment(Element.ALIGN_LEFT); preficha.add(modalidad); preficha.add(vacio); // preficha.add(vacio); Paragraph formatoBanamex = new Paragraph("FORMATO UNIVERSAL PARA DEPSITOS EN SUCURSALES BANAMEX", FontFactory.getFont("arial", 10, Font.BOLD)); formatoBanamex.setAlignment(Element.ALIGN_CENTER); preficha.add(formatoBanamex); PdfContentByte rectanguloDepositoB = writer.getDirectContentUnder(); rectanguloDepositoB.rectangle(85, 470, 430, 20); rectanguloDepositoB.fill(); drawRectangle(rectanguloDepositoB, 85, 470, 430, 20); PdfContentByte rectanguloPago = writer.getDirectContentUnder(); rectanguloPago.rectangle(85, 280, 430, 190); rectanguloPago.fill(); drawRectangleSC(rectanguloPago, 85, 280, 430, 190); preficha.add(vacio); PdfContentByte rectanguloConcepto = writer.getDirectContentUnder(); rectanguloConcepto.rectangle(150, 425, 295, 35); // rectangulo_datos.rec rectanguloConcepto.fill(); drawRectangleSC(rectanguloConcepto, 150, 425, 295, 35); Paragraph formatoConceptoPre = new Paragraph("CONCEPTO: PAGO DE DERECHO A EXAMEN DE ADMISIN", FontFactory.getFont("arial", 10, Font.BOLD)); formatoConceptoPre.setAlignment(Element.ALIGN_CENTER); preficha.add(formatoConceptoPre); Paragraph fechaEmision = new Paragraph("FECHA DE EMISIN: 18/12/2014", FontFactory.getFont("arial", 10, Font.BOLD)); fechaEmision.setAlignment(Element.ALIGN_CENTER); preficha.add(fechaEmision); preficha.add(vacio); // preficha.add(vacio); // preficha.add(vacio); // preficha.add(vacio); // preficha.add(vacio); preficha.add(vacio); Paragraph importe = new Paragraph("IMPORTE A PAGAR: $1,500.", FontFactory.getFont("arial", 15, Font.BOLD)); importe.setAlignment(Element.ALIGN_CENTER); preficha.add(importe); preficha.add(vacio); preficha.add(vacio); preficha.add(vacio); // preficha.add(vacio); // preficha.add(vacio); String ref = "44353452342353464765634523434"; Paragraph referencia = new Paragraph( " REFERENCIA (B): " + ref, FontFactory.getFont("arial", 10, Font.BOLD)); referencia.setAlignment(Element.ALIGN_LEFT); preficha.add(referencia); preficha.add(vacio); // Paragraph descrConcepto = new Paragraph("DESCRIPCIN DEL CONCEPTO: CUOTA POR CONCEPTO DE PREINCRIPCIN.", FontFactory.getFont("arial", 10, Font.BOLD)); // descrConcepto.setAlignment(Element.ALIGN_CENTER); // preficha.add(descrConcepto); preficha.add(vacio); preficha.add(vacio); preficha.add(vacio); // preficha.add(vacio); // preficha.add(vacio); // preficha.add(vacio); // preficha.add(vacio); // preficha.add(vacio); Paragraph atencion = new Paragraph("Atencin", FontFactory.getFont("arial", 15, Font.BOLD)); atencion.setAlignment(Element.ALIGN_CENTER); preficha.add(atencion); PdfContentByte rectangulo_atencion = writer.getDirectContentUnder(); rectangulo_atencion.rectangle(245, 229, 100, 25); rectangulo_atencion.fill(); drawRectangle(rectangulo_atencion, 245, 229, 100, 25); PdfContentByte rectangulo_info = writer.getDirectContentUnder(); rectangulo_info.rectangle(85, 94, 430, 100); rectangulo_info.fill(); drawRectangle(rectangulo_info, 85, 94, 430, 120); preficha.add(vacio); preficha.add(vacio); Paragraph informacion = new Paragraph( " Para continuar con el proceso de preinscripcin debers:\n" + " - Realizar el pago para tu examen de admisin con la \"REFERENCIA\" que aparece\n" + " en este documento en cualquier sucursal BANAMEX.\n" + " - Recibir la notificacin en tu correo electrnico y estar al pendiente de \n" + " las notificaciones que sern enviadas al mismo de que el pago ya fue procesado \n" + " para completar tu proceso de preinscripcin.\n", FontFactory.getFont("arial", 10, Font.BOLD)); informacion.setAlignment(Element.ALIGN_LEFT); preficha.add(informacion); // pie // pie // pie // pie // pie preficha.add(vacio); preficha.add(vacio); preficha.addTitle("Preficha"); preficha.addSubject("Instituto Tecnolgico de Toluca"); preficha.addKeywords("Instituto Tecnolgico de Toluca"); preficha.addAuthor("Departamento de Servicios escolares"); preficha.addCreator("Departamento de Servicios escolares"); preficha.close(); preficha.close(); } catch (DocumentException de) { throw new IOException(de.getMessage()); } } catch (SQLException ex) { Logger.getLogger(PrefichaPDF.class.getName()).log(Level.SEVERE, null, ex); } } public static void drawRectangle(PdfContentByte content, float x, float y, float width, float height) { content.saveState(); PdfGState state = new PdfGState(); content.setGState(state); content.setRGBColorFill(232, 232, 232); content.setColorStroke(BaseColor.LIGHT_GRAY); // content.setr content.setLineWidth((float) .5); content.rectangle(x, y, width, height); content.fillStroke(); content.restoreState(); } // public static void drawRectangleWhite(PdfContentByte content, float x, float y, float width, float height) { // content.saveState(); // PdfGState state = new PdfGState(); // content.setGState(state); // content.setRGBColorFill(255, 255, 2); // content.setColorStroke(BaseColor.CYAN); //// content.setr // content.setLineWidth((float) .5); // content.rectangle(x, y, width, height); // content.fillStroke(); // content.restoreState(); // } public static void drawRectangleSC(PdfContentByte content, float x, float y, float width, float height) { content.saveState(); PdfGState state = new PdfGState(); // state.setFillOpacity(0.6f); content.setGState(state); content.setRGBColorFill(0xFF, 0xFF, 0xFA); content.setColorStroke(BaseColor.LIGHT_GRAY); content.setLineWidth((float) .5); content.rectangle(x, y, width, height); content.fillStroke(); content.restoreState(); } public static void drawRectangleText(PdfContentByte content, float x, float y, float width, float height) { content.saveState(); PdfGState state = new PdfGState(); content.setGState(state); content.setRGBColorFill(0, 230, 255); content.setColorStroke(BaseColor.LIGHT_GRAY); content.setLineWidth((float) .5); content.rectangle(x, y, width, height); content.fillStroke(); content.restoreState(); } public static String fecha_hoy() { Calendar fec = new GregorianCalendar(); int ao = fec.get(Calendar.YEAR); int mes = fec.get(Calendar.MONDAY); int dia = fec.get(Calendar.DAY_OF_MONTH); String fech = dia + "/" + (mes + 1) + "/" + ao; return fech; } }