List of usage examples for com.itextpdf.text.pdf PdfContentByte setTextMatrix
public void setTextMatrix(final float x, final float y)
From source file:uy.gub.imm.sae.web.mbean.reserva.PasoFinalMBean.java
License:Open Source License
public String imprimirTicket() { try {/* www .ja v a 2 s . c o m*/ BaseColor colorBlack = new BaseColor(0, 0, 0); BaseFont times = BaseFont.createFont(BaseFont.TIMES_ROMAN, BaseFont.CP1252, BaseFont.NOT_EMBEDDED); BaseFont helveticaBold = BaseFont.createFont(BaseFont.HELVETICA_BOLD, BaseFont.CP1252, BaseFont.NOT_EMBEDDED); BaseFont symbol = BaseFont.createFont(BaseFont.SYMBOL, BaseFont.CP1252, BaseFont.NOT_EMBEDDED); SimpleDateFormat sdfHr = new SimpleDateFormat("HH:mm"); SimpleDateFormat sdfFecha = new SimpleDateFormat("dd/MM/yyyy"); Rectangle pageSize = new Rectangle(210, 210); Document document = new Document(pageSize); document.addTitle(getI18N().getText("etiqueta.reserva.title")); ByteArrayOutputStream os = new ByteArrayOutputStream(); PdfWriter pdfWriter = PdfWriter.getInstance(document, os); document.open(); PdfContentByte pdfContent = pdfWriter.getDirectContent(); InputStream is = PasoFinalMBean.class.getResourceAsStream(SAEProfile.getInstance().getProperties() .getProperty(SAEProfile.PROFILE_UI_TEMPLATES_IMAGES_LOGO_TICKET_KEY)); byte[] arrImage = new byte[4096]; is.read(arrImage); Image img = Image.getInstance(arrImage); img.scaleAbsolute(100, 30); img.setAbsolutePosition(55, 170); document.add(img); //Dibujo primer lnea LineSeparator line = new LineSeparator(); line.setAlignment(LineSeparator.ALIGN_CENTER); line.setLineColor(colorBlack); line.setLineWidth(0.5f); line.drawLine(pdfContent, 10, 200, 170); //Etiqueta RESERVA pdfContent.beginText(); pdfContent.setFontAndSize(helveticaBold, 15); pdfContent.setTextMatrix(45, 150); pdfContent.showText(getI18N().getText("etiqueta.reserva.showText")); pdfContent.endText(); //Fecha de la reserva String fecha_reserva = sdfFecha.format(sesionMBean.getDisponibilidad().getHoraInicio()); pdfContent.beginText(); pdfContent.setFontAndSize(symbol, 16); pdfContent.setTextMatrix(130, 150); pdfContent.showText(fecha_reserva); pdfContent.endText(); //Dibujo segunda lnea line.drawLine(pdfWriter.getDirectContent(), 10, 200, 140); int etiqHoraTamanio = 25; int etiqHoraX = 15; int etiqHoraY = 85; int valorHoraTamanio = 40; int valorHoraX = 105; int valorHoraY = 80; String serie = sesionMBean.getRecurso().getSerie(); boolean conSerie = (serie != null) && (serie.length() >= 1); if (sesionMBean.getRecurso().getMostrarNumeroEnTicket()) { if (!conSerie) { //Ajusto valor y etiqueta hora etiqHoraTamanio = 20; etiqHoraX = 15; etiqHoraY = 110; valorHoraTamanio = 30; valorHoraX = 120; valorHoraY = 107; //Etiqueta NUMERO pdfContent.beginText(); pdfContent.setFontAndSize(helveticaBold, 20); pdfContent.setTextMatrix(15, 65); pdfContent.showText(getI18N().getText("etiqueta.numero.numero")); pdfContent.endText(); //Numero de la reserva String nro = sesionMBean.getReservaConfirmada().getNumero().toString(); int nro_pos = 135; if (nro.length() == 1) { nro_pos = 135; } else if (nro.length() == 2) { nro_pos = 125; } else { nro_pos = 105; } pdfContent.beginText(); pdfContent.setFontAndSize(symbol, 60); pdfContent.setTextMatrix(nro_pos, 55); pdfContent.showText(nro); pdfContent.endText(); } else { //<<<<<< Agregado >>>>>> //Ajusto valor y etiqueta hora etiqHoraTamanio = 20; etiqHoraX = 15; etiqHoraY = 123; valorHoraTamanio = 20; valorHoraX = 120; valorHoraY = 122; //Etiqueta SERIE pdfContent.beginText(); pdfContent.setFontAndSize(helveticaBold, 20); pdfContent.setTextMatrix(15, 87); pdfContent.showText(getI18N().getText("etiqueta.numero.serie")); pdfContent.endText(); pdfContent.beginText(); pdfContent.setFontAndSize(helveticaBold, 20); pdfContent.setTextMatrix(120, 87); pdfContent.showText(serie); pdfContent.endText(); //Etiqueta NUMERO pdfContent.beginText(); pdfContent.setFontAndSize(helveticaBold, 20); pdfContent.setTextMatrix(15, 50); pdfContent.showText(getI18N().getText("etiqueta.numero.numero")); pdfContent.endText(); //Numero de la reserva String nro = sesionMBean.getReservaConfirmada().getNumero().toString(); int nro_pos = 135; if (nro.length() == 1) { nro_pos = 135; } else if (nro.length() == 2) { nro_pos = 125; } else { nro_pos = 105; } pdfContent.beginText(); pdfContent.setFontAndSize(symbol, 40); pdfContent.setTextMatrix(nro_pos, 47); pdfContent.showText(nro); pdfContent.endText(); } } //Etiqueta HORA pdfContent.beginText(); pdfContent.setFontAndSize(helveticaBold, etiqHoraTamanio); pdfContent.setTextMatrix(etiqHoraX, etiqHoraY); pdfContent.showText(getI18N().getText("etiqueta.hora.hora")); pdfContent.endText(); //Hora de la reserva pdfContent.beginText(); pdfContent.setFontAndSize(symbol, valorHoraTamanio); pdfContent.setTextMatrix(valorHoraX, valorHoraY); pdfContent.showText(sdfHr.format(sesionMBean.getDisponibilidad().getHoraInicio())); pdfContent.endText(); //Dibujo tercer lnea line.drawLine(pdfWriter.getDirectContent(), 10, 200, 45); String ticketEtiqUno = sesionMBean.getRecurso().getTextoRecurso().getTicketEtiquetaUno(); String ticketEtiqDos = sesionMBean.getRecurso().getTextoRecurso().getTicketEtiquetaDos(); int largoEtiqUno = 0; int largoEtiqDos = 0; int xValores = 0; if (ticketEtiqUno != null) { largoEtiqUno = ticketEtiqUno.length(); } if (ticketEtiqDos != null) { largoEtiqDos = ticketEtiqDos.length(); } if (largoEtiqUno > largoEtiqDos) { xValores = 8 * (largoEtiqUno + 1); } else { xValores = 8 * (largoEtiqDos + 1); } //Etiqueta uno if (ticketEtiqUno != null) { pdfContent.beginText(); pdfContent.setFontAndSize(helveticaBold, 10); pdfContent.setTextMatrix(10, 30); pdfContent.showText(ticketEtiqUno + ":"); pdfContent.endText(); } //Valor etiqueta uno String valorEtiqUno = sesionMBean.getRecurso().getTextoRecurso().getValorEtiquetaUno(); if (valorEtiqUno != null) { pdfContent.beginText(); pdfContent.setFontAndSize(times, 10); pdfContent.setTextMatrix(xValores, 30); pdfContent.showText(valorEtiqUno); pdfContent.endText(); } //Etiqueta dos if (ticketEtiqDos != null) { pdfContent.beginText(); pdfContent.setFontAndSize(helveticaBold, 10); pdfContent.setTextMatrix(10, 15); pdfContent.showText(ticketEtiqDos + ":"); pdfContent.endText(); } //Valor etiqueta dos String valorEtiqDos = sesionMBean.getRecurso().getTextoRecurso().getValorEtiquetaDos(); if (valorEtiqDos != null) { pdfContent.beginText(); pdfContent.setFontAndSize(times, 10); pdfContent.setTextMatrix(xValores, 15); pdfContent.showText(valorEtiqDos); pdfContent.endText(); } pdfWriter.addJavaScript("this.print({bUI: true, bSilent: true, bShrinkToFit: true});", false); pdfWriter.addJavaScript("this.closeDoc(true);"); document.close(); FacesContext facesContext = FacesContext.getCurrentInstance(); HttpServletResponse response = (HttpServletResponse) facesContext.getExternalContext().getResponse(); response.setContentType("application/pdf"); os.writeTo(response.getOutputStream()); response.getOutputStream().flush(); response.getOutputStream().close(); facesContext.responseComplete(); } catch (Exception e) { e.printStackTrace(); } return null; }
From source file:uy.gub.imm.sae.web.mbean.reserva.PasoFinalMBean.java
License:Open Source License
public String guardarTicket() { try {// w w w . j a va 2s . co m BaseColor colorBlack = new BaseColor(0, 0, 0); BaseFont times = BaseFont.createFont(BaseFont.TIMES_ROMAN, BaseFont.CP1252, BaseFont.NOT_EMBEDDED); BaseFont helveticaBold = BaseFont.createFont(BaseFont.HELVETICA_BOLD, BaseFont.CP1252, BaseFont.NOT_EMBEDDED); BaseFont symbol = BaseFont.createFont(BaseFont.SYMBOL, BaseFont.CP1252, BaseFont.NOT_EMBEDDED); SimpleDateFormat sdfHr = new SimpleDateFormat("HH:mm"); SimpleDateFormat sdfFecha = new SimpleDateFormat("dd/MM/yyyy"); Rectangle pageSize = new Rectangle(210, 210); Document document = new Document(pageSize); document.addTitle(getI18N().getText("etiqueta.reserva.title")); ByteArrayOutputStream os = new ByteArrayOutputStream(); PdfWriter pdfWriter = PdfWriter.getInstance(document, os); document.open(); PdfContentByte pdfContent = pdfWriter.getDirectContent(); InputStream is = PasoFinalMBean.class.getResourceAsStream(SAEProfile.getInstance().getProperties() .getProperty(SAEProfile.PROFILE_UI_TEMPLATES_IMAGES_LOGO_TICKET_KEY)); byte[] arrImage = new byte[4096]; is.read(arrImage); Image img = Image.getInstance(arrImage); img.scaleAbsolute(100, 30); img.setAbsolutePosition(55, 170); document.add(img); //Dibujo primer lnea LineSeparator line = new LineSeparator(); line.setAlignment(LineSeparator.ALIGN_CENTER); line.setLineColor(colorBlack); line.setLineWidth(0.5f); line.drawLine(pdfContent, 10, 200, 170); //Etiqueta RESERVA pdfContent.beginText(); pdfContent.setFontAndSize(helveticaBold, 15); pdfContent.setTextMatrix(45, 150); pdfContent.showText(getI18N().getText("etiqueta.reserva.showText")); pdfContent.endText(); //Fecha de la reserva String fecha_reserva = sdfFecha.format(sesionMBean.getDisponibilidad().getHoraInicio()); pdfContent.beginText(); pdfContent.setFontAndSize(symbol, 16); pdfContent.setTextMatrix(130, 150); pdfContent.showText(fecha_reserva); pdfContent.endText(); //Dibujo segunda lnea line.drawLine(pdfWriter.getDirectContent(), 10, 200, 140); int etiqHoraTamanio = 25; int etiqHoraX = 15; int etiqHoraY = 85; int valorHoraTamanio = 40; int valorHoraX = 105; int valorHoraY = 80; String serie = sesionMBean.getRecurso().getSerie(); boolean conSerie = (serie != null) && (serie.length() >= 1); if (sesionMBean.getRecurso().getMostrarNumeroEnTicket()) { if (!conSerie) { //Ajusto valor y etiqueta hora etiqHoraTamanio = 20; etiqHoraX = 15; etiqHoraY = 110; valorHoraTamanio = 30; valorHoraX = 120; valorHoraY = 107; //Etiqueta NUMERO pdfContent.beginText(); pdfContent.setFontAndSize(helveticaBold, 20); pdfContent.setTextMatrix(15, 65); pdfContent.showText(getI18N().getText("etiqueta.numero.numero")); pdfContent.endText(); //Numero de la reserva String nro = sesionMBean.getReservaConfirmada().getNumero().toString(); int nro_pos = 135; if (nro.length() == 1) { nro_pos = 135; } else if (nro.length() == 2) { nro_pos = 125; } else { nro_pos = 105; } pdfContent.beginText(); pdfContent.setFontAndSize(symbol, 60); pdfContent.setTextMatrix(nro_pos, 55); pdfContent.showText(nro); pdfContent.endText(); } else { //Ajusto valor y etiqueta hora etiqHoraTamanio = 20; etiqHoraX = 15; etiqHoraY = 123; valorHoraTamanio = 20; valorHoraX = 120; valorHoraY = 122; //Etiqueta SERIE pdfContent.beginText(); pdfContent.setFontAndSize(helveticaBold, 20); pdfContent.setTextMatrix(15, 87); pdfContent.showText(getI18N().getText("etiqueta.numero.serie")); pdfContent.endText(); pdfContent.beginText(); pdfContent.setFontAndSize(symbol, 20); pdfContent.setTextMatrix(120, 87); pdfContent.showText(serie); pdfContent.endText(); //Etiqueta NUMERO pdfContent.beginText(); pdfContent.setFontAndSize(helveticaBold, 20); pdfContent.setTextMatrix(15, 50); pdfContent.showText(getI18N().getText("etiqueta.numero.numero")); pdfContent.endText(); //Numero de la reserva String nro = sesionMBean.getReservaConfirmada().getNumero().toString(); int nro_pos = 135; if (nro.length() == 1) { nro_pos = 135; } else if (nro.length() == 2) { nro_pos = 125; } else { nro_pos = 105; } pdfContent.beginText(); pdfContent.setFontAndSize(symbol, 40); pdfContent.setTextMatrix(nro_pos, 47); pdfContent.showText(nro); pdfContent.endText(); } } //Etiqueta HORA pdfContent.beginText(); pdfContent.setFontAndSize(helveticaBold, etiqHoraTamanio); pdfContent.setTextMatrix(etiqHoraX, etiqHoraY); pdfContent.showText(getI18N().getText("etiqueta.hora.hora")); pdfContent.endText(); //Hora de la reserva pdfContent.beginText(); pdfContent.setFontAndSize(symbol, valorHoraTamanio); pdfContent.setTextMatrix(valorHoraX, valorHoraY); pdfContent.showText(sdfHr.format(sesionMBean.getDisponibilidad().getHoraInicio())); pdfContent.endText(); //Dibujo tercer lnea line.drawLine(pdfWriter.getDirectContent(), 10, 200, 45); String ticketEtiqUno = sesionMBean.getRecurso().getTextoRecurso().getTicketEtiquetaUno(); String ticketEtiqDos = sesionMBean.getRecurso().getTextoRecurso().getTicketEtiquetaDos(); int largoEtiqUno = 0; int largoEtiqDos = 0; int xValores = 0; if (ticketEtiqUno != null) { largoEtiqUno = ticketEtiqUno.length(); } if (ticketEtiqDos != null) { largoEtiqDos = ticketEtiqDos.length(); } if (largoEtiqUno > largoEtiqDos) { xValores = 8 * (largoEtiqUno + 1); } else { xValores = 8 * (largoEtiqDos + 1); } //Etiqueta uno if (ticketEtiqUno != null) { pdfContent.beginText(); pdfContent.setFontAndSize(helveticaBold, 10); pdfContent.setTextMatrix(10, 30); pdfContent.showText(ticketEtiqUno + ":"); pdfContent.endText(); } //Valor etiqueta uno String valorEtiqUno = sesionMBean.getRecurso().getTextoRecurso().getValorEtiquetaUno(); if (valorEtiqUno != null) { pdfContent.beginText(); pdfContent.setFontAndSize(times, 10); pdfContent.setTextMatrix(xValores, 30); pdfContent.showText(valorEtiqUno); pdfContent.endText(); } //Etiqueta dos if (ticketEtiqDos != null) { pdfContent.beginText(); pdfContent.setFontAndSize(helveticaBold, 10); pdfContent.setTextMatrix(10, 15); pdfContent.showText(ticketEtiqDos + ":"); pdfContent.endText(); } //Valor etiqueta dos String valorEtiqDos = sesionMBean.getRecurso().getTextoRecurso().getValorEtiquetaDos(); if (valorEtiqDos != null) { pdfContent.beginText(); pdfContent.setFontAndSize(times, 10); pdfContent.setTextMatrix(xValores, 15); pdfContent.showText(valorEtiqDos); pdfContent.endText(); } document.close(); FacesContext facesContext = FacesContext.getCurrentInstance(); HttpServletResponse response = (HttpServletResponse) facesContext.getExternalContext().getResponse(); response.setContentType("application/pdf"); response.setHeader("Content-disposition", "attachment; filename=" + "Ticket de confirmacin.pdf"); os.writeTo(response.getOutputStream()); response.getOutputStream().flush(); response.getOutputStream().close(); facesContext.responseComplete(); } catch (Exception e) { e.printStackTrace(); } return null; }