Foros del Web » Programación para mayores de 30 ;) » Java »

imprimir ticket PDF con java

Estas en el tema de imprimir ticket PDF con java en el foro de Java en Foros del Web. hola, quisiera que me ayuden a solucionar un problem, quisiera saber como puedo imprimir en mi impresora térmica epson tm-t20, un ticket en pdf que ...
  #1 (permalink)  
Antiguo 01/12/2015, 14:32
jd7
 
Fecha de Ingreso: mayo-2013
Mensajes: 11
Antigüedad: 10 años, 10 meses
Puntos: 0
Información imprimir ticket PDF con java

hola, quisiera que me ayuden a solucionar un problem, quisiera saber como puedo imprimir en mi impresora térmica epson tm-t20, un ticket en pdf que tengo creado,,
he buscado mucho por la web y no he encontrado mucho sobre este tema,,
agradezco de antemano su atención
  #2 (permalink)  
Antiguo 01/12/2015, 15:12
Avatar de emilio_viguri  
Fecha de Ingreso: junio-2011
Ubicación: Mexico
Mensajes: 116
Antigüedad: 12 años, 10 meses
Puntos: 3
Pregunta Respuesta: imprimir ticket PDF con java

Bueno ya somos 2 yo actualmente estoy buscando info = a si que aquí estamos

Bueno lo que yo tengo es esto es una liga donde hay códigos para imprimir no los e probado por que no tengo la impresora apenas estoy investigando pero se que tengo que hacerlo por que ya me lo pidieron.

https://github.com/mike42/escpos-php

Se que se puede hacer un PDF con las medidas y margenes desde php ya echo documentos pero eran tamaño carta así que cundo tenga mediadas te paso algún código y hay nos ayudamos.

Dicen que solo necesitas
Instalar la impresora con sus controladores
mandar print
seleccionas la impresora
ya lo de mas es normal como cualquier print()

Pero no se si ya trataste de mandar algo básico muy corto como

Código PHP:
Ver original
  1. <?='Hola mundo son las '.date('H:i:s'); ?>

Última edición por emilio_viguri; 01/12/2015 a las 15:17 Razón: mas info
  #3 (permalink)  
Antiguo 01/12/2015, 17:33
jd7
 
Fecha de Ingreso: mayo-2013
Mensajes: 11
Antigüedad: 10 años, 10 meses
Puntos: 0
Respuesta: imprimir ticket PDF con java

estoy intentando de todo, pero no me corre, cuando intento cargar el pdf,,
este codigo que tengo solo sirve para texto :/

Código:
        
        int margin = 8;
        String output = "texto a imprimir";
        
        JTextPane jtp = new JTextPane();
        jtp.setText(output);
        jtp.setFont(new Font(Font.MONOSPACED, 0 , 8));     
        PrinterJob printerJob = PrinterJob.getPrinterJob();
        PageFormat pageFormat = printerJob.defaultPage();        
        Paper paper = new Paper();      
        //paper.setSize(180.0, (double) (paper.getHeight() + lines * 10.0));
        paper.setImageableArea(margin, margin, document.getPageSize().getWidth() - margin * 2, document.getPageSize().getHeight() - margin * 2);
        pageFormat.setPaper(paper);        
        pageFormat.setOrientation(PageFormat.PORTRAIT);
        printerJob.setPrintable(jtp.getPrintable(null, null), pageFormat);
        try {       
            printerJob.print();
        } catch (PrinterException ex) {
            Logger.getLogger(Reporte_Factura.class.getName()).log(Level.SEVERE, null, ex);
        }
  #4 (permalink)  
Antiguo 02/12/2015, 17:39
Avatar de emilio_viguri  
Fecha de Ingreso: junio-2011
Ubicación: Mexico
Mensajes: 116
Antigüedad: 12 años, 10 meses
Puntos: 3
Sonrisa Respuesta: imprimir ticket PDF con java

Tu tienes ya una impresora de TICKET ? Yo no la tengo asi que tengo que trabajar al aire por que no tengo como hacer pruebas...

Esto que te paso es para generar un PDF según yo con tamaños ya adecuados, ya funciona y genera el PDF sin problemas pero prueba lo y me pasas ese dato quieres

Código PHP:
Ver original
  1. <?php require("../archivos/fpdf/fpdf.php");?>
  2. <?php
  3. class PDF extends FPDF{
  4.     function FancyTable(){
  5.        
  6.         $this->SetAuthor('Informatica NEXCEN S.A. de C.V.');
  7.         $this->SetCreator('FPDF para www.nexcen.com.mx');
  8.         $this->SetSubject('www.nexcen.com.mx');
  9.         $this->SetKeywords("VENTA ");
  10.        
  11.         #Al parecer en ticket tiene como máximo de Px 70 pero hay que checar margenes.
  12.        
  13.         $X=1; $Y=2; #Inicio de lugar para la marca o margen celda.     
  14.         $grosor = 70; #ancho del tiket.
  15.         $LogoTamano = 20;
  16.         $SaltoLinea = 4;
  17.        
  18.         $this->SetXY($X,$Y);
  19.         $this->Cell($grosor, 270, '', 1); #Celda Margen
  20.        
  21.         #LOGO Seleccionar el logo a mostrar.
  22.         $this->Image("../archivos/imagenes/logo.jpg",23,$Y+1,$LogoTamano);
  23.        
  24.         #Iniciamos Escritura en celdas.
  25.         $this->SetXY($X, $Y+$LogoTamano);
  26.         $this->SetFont('Arial','B',9);
  27.         $this->SetTextColor(0,0,0);
  28.         $this->Write(0,'Venta #');
  29.         $this->Ln($SaltoLinea); $this->SetX($X);
  30.         $this->Write(0,'Tipo de Venta');
  31.         $this->Ln($SaltoLinea); $this->SetX($X);
  32.         $this->Write(0,'Fecha {venta.fecha}');
  33.         $this->Ln($SaltoLinea); $this->SetX($X);
  34.         $this->Write(0,'Sucursal {venta.almacen}');
  35.         $this->Ln($SaltoLinea); $this->SetX($X);
  36.         $this->Write(0,'Cliente {venta.nombre}');
  37.         $this->Ln($SaltoLinea); $this->SetX($X);
  38.        
  39.         $this->Rect($X,$LogoTamano+21,$grosor,0); #Dibuja un rectángulo.
  40.                
  41.         #Crear Encabezado de Celdas
  42.         $this->SetFont('Arial','B',8);
  43.         $Border = 0; #1 Si 0 No.
  44.         $w=array(10,12,12,9,13,14); #tamaño de las celdas
  45.         $titulocolumna=array('CANT','PROD','UNID','T/E','COSTO','');
  46.         for($i=0; $i<=count($titulocolumna)-1; $i++)
  47.             $this->Cell($w[$i],5,$titulocolumna[$i],$Border,0,'C',0);
  48.         $this->Ln();
  49.         $this->SetX($X);
  50.        
  51.         $this->SetFont('Arial','',9);
  52.        
  53. #       do{
  54.         for($i=0; $i<=rand(1,41); $i++){
  55.             $this->Cell($w[0],5,$i+1,$Border,0,'C',0);
  56.             $this->Cell($w[1],5,rand(1,2015),$Border,0,'C',0);
  57.             $this->Cell($w[2],5,rand(1,2015),$Border,0,'C',0);
  58.             $this->Cell($w[3],5,rand(1,2015),$Border,0,'C',0);
  59.             $this->Cell($w[4],5,rand(1,2015),$Border,0,'R',0);
  60.             $this->Cell($w[5],5,rand(1,2015),$Border,0,'R',0);
  61.             $this->Ln($SaltoLinea+1);
  62.             $this->SetX($X);
  63.         }#while
  64.            
  65.         $this->Cell($w[0],5,'CatTot',$Border,0,'C',0);
  66.         $this->Cell($w[1],5,'',$Border,0,'C',0);
  67.         $this->Cell($w[2],5,'',$Border,0,'C',0);
  68.         $this->Cell($w[3],5,'',$Border,0,'C',0);
  69.         $this->Cell($w[4],5,'',$Border,0,'R',0);
  70.         $this->Cell($w[5],5,'CatTot',$Border,0,'C',0);
  71.         $this->Ln($SaltoLinea+1);
  72.         $this->SetX($X);
  73.        
  74.         $this->MultiCell($grosor,4,'T/E = Tipo de Entrega.',$Border,'l');
  75.         $this->SetX($X);
  76.         $this->MultiCell($grosor,4,'RE = Requiere Entrega.',$Border,'l');
  77.         $this->SetX($X);
  78.         $this->MultiCell($grosor,4,'RA = Recoger en Almacen.',$Border,'l');
  79.     }
  80. }
  81.  
  82. //Creación del objeto de la clase heredada
  83. $pdf=new PDF();
  84. $pdf->AliasNbPages();
  85. $pdf->AddPage();
  86. $pdf->FancyTable();
  87. $pdf->Output();
  88. ?>

Si requiere algún arreglo me avisas y ya se los hago

Recuerda agregar la librería de FPDF aqui la descargas FPDF Version: 1.6
  #5 (permalink)  
Antiguo 04/12/2015, 22:55
Avatar de Andreslrz  
Fecha de Ingreso: septiembre-2008
Mensajes: 99
Antigüedad: 15 años, 7 meses
Puntos: 2
Respuesta: imprimir ticket PDF con java

Recuerda que el esta hablando de java, no de php, aunque la logica sea independiente del leguaje las funciones si cambian. Ademas por el codigo de el es Java para escritorio, no web.
  #6 (permalink)  
Antiguo 05/12/2015, 11:27
jd7
 
Fecha de Ingreso: mayo-2013
Mensajes: 11
Antigüedad: 10 años, 10 meses
Puntos: 0
Respuesta: imprimir ticket PDF con java

Cita:
Iniciado por Andreslrz Ver Mensaje
Recuerda que el esta hablando de java, no de php, aunque la logica sea independiente del leguaje las funciones si cambian. Ademas por el codigo de el es Java para escritorio, no web.
tiene razón, ya genero el pdf sin problema,, logre imprimir... al fin,, pero tengo un problema, cuando quiero re dimensionar. el ticket siempre me sale del mismo tamaño,

dejo el codigo, en el caso de que alguien me pueda ayudar, o se base para resolver algun problem,,

Código:
            
            String filePath = "./Facturas/factura_N°_" + numero + ".pdf";
            FileInputStream fileInputStream = new FileInputStream(filePath);
            byte[] pdfContent = new byte[fileInputStream.available()];
            fileInputStream.read(pdfContent, 0, fileInputStream.available());
            ByteBuffer buffer = ByteBuffer.wrap(pdfContent);
            final PDFFile pdfFile = new PDFFile(buffer);
            fileInputStream.close();

            PDFPrintPage pages = new PDFPrintPage(pdfFile);
            PrinterJob printJob = PrinterJob.getPrinterJob();
            Book book = new Book();
            
           
            PageFormat pageFormat = printJob.defaultPage();
            Paper paper =  new Paper();
            paper.setSize( width,height);
            paper.setImageableArea(0, 0, width,height);
            
            pageFormat.setPaper(paper);
            
            
            book.append(pages, pageFormat);
            printJob.setPageable(book);
            printJob.print();
width y height se los paso como parametro
  #7 (permalink)  
Antiguo 20/12/2015, 21:07
 
Fecha de Ingreso: diciembre-2015
Mensajes: 1
Antigüedad: 8 años, 4 meses
Puntos: 0
Respuesta: imprimir ticket PDF con java

Hola soy nuevo en el foro, pero también pasé por el mismo problema y definitivamente no encontramos en un solo lugar la solución o la luz a la solución a nuestro problema.

Veamos, tratare de ver si puedo ayudarte con lo poco que he aprendido buscando y probando, te haré un par de preguntas.

1. Ya tienes configurado tu impresor con algún tipo de papel predefinido?
2. Cuando generas tu archivo PDF, utilizas alguna otra herramienta, como por ejemplo iReport?

Tu código me es familiar pues fue una de las primeras pruebas que realice, pero es un poco mas complicado, pero no imposible.

De antemano te digo, si utilizar iReport te será mas fácil.

Quedo a la espera de tu respuesta.

Etiquetas: pdf, print, termica, ticket
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 02:46.