blog de 2hn

Impresion automatica con applet

Hola, Tengo un sistema en web el cual genera reportes y ticket en formato PDF, la necesidad es que al generar un ticket este se imprima automática mente. Este paso se realizo implementando un applet el cual obtiene el documento pdf y lo envia a la impresora del cliente. El applet implementa la librería ICEPDF.

El aplet funciona correctamente, también fue necesario certificarlo y agregarle los permisos en el MANIFEST. El problema de este applet es que no es optimo al momento de imprimir, tarda en promedio 1m en generar la impresión y las lineas donde tarda 20s son las siguientes:

Al momento de obtener las impresoras del cliente

PrintService[] services = PrintServiceLookup.lookupPrintServices(null, null);

Y al momento de imprimir el documento:

printHelper.print();

Alguna idea con este problema?

Impresión de Códigos de Barra en Impresoras Zebras

Hola. Aquí dejo una aportación de la forma de enviar información a una impresora de etiquetas Zebra, al principio fue un dolor de cabeza, pero luego es cuestión de entender un poquito los comando y las dimensiones de la etiqueta.

En primer lugar es crear una cadena y por cada linea de la cadena es encesario agregar una nueva linea (\n). Los comandos escritos fueron extraidos del documento "EPL Programming Guide" del capitulo EPL Commands.

Cuando se forme la cadena a imprimir, se envia a la impresora deseada, en este caso el PrintService deberá estar seleccionando la etiquetadora.

String comando = "N\n"
    + "B220,40,0,1,2,4,100,N,\"micodigo\"\n"
    + "A220,150,0,1,1,1,N,\"micodigo\"\n"
    + "P1\n";
   
PrintService  printService = null;
....
   
DocFlavor flavor = DocFlavor.BYTE_ARRAY.AUTOSENSE;
Doc doc = new SimpleDoc(comando.getBytes(), flavor, null);
DocPrintJob docPrintJob = printService.createPrintJob();
   
docPrintJob.print(doc, null);
   

Espero que les sea de gran ayuda. Saludos.

Guardar PDF utilizando Springframework e iReport con paginado

Hola, para todos aquellos que utilizan springframework e iReport para visualizar sus reportes, les dejo un ejemplo para la visualización y guardado del reporte en el servidor.

  1. Lo primero que tendremos que hacer es extender de la clase org.springframework.web.servlet.view.jasperreports.AbstractJasperReportsSingleFormatView.
  2. En el constructor de nuestra clase especificar el tipo de contenido: setContentType("application/pdf");
  3. Sobrescribir los siguientes metodos: createExporter, useWriter y renderReport

En el método createExporter, en este método especificaremos los permisos que tendrá el reporte, en este caso lo podrán copiar, guardar e imprimir.

JRExporter jRExporter = new JRPdfExporter();
jRExporter.setParameter(JRPdfExporterParameter.IS_ENCRYPTED, Boolean.TRUE);
jRExporter.setParameter(JRPdfExporterParameter.IS_128_BIT_KEY, Boolean.TRUE);
jRExporter.setParameter(JRPdfExporterParameter.OWNER_PASSWORD, "password");
int permisos = PdfWriter.AllowPrinting | PdfWriter.AllowCopy;
Distribuir contenido