 
			
				06/06/2013, 17:19
			
			
			     |  
      |    |    |    Fecha de Ingreso: junio-2013  
						Mensajes: 1
					  Antigüedad: 12 años, 4 meses Puntos: 0     |        |  
  |      Error con texto al imprimir un PDF desde JAVA con JPanel        Hola:   
En mi trabajo surgio la necesidad de imprimir un recibo de pago que manejan, el procedimiento que hago es diseñar el recibo mediante el Jasper, una vez diseñado tengo un metodo para generarlo en PDF, no lo guardo en la maquina, se genera como un arreglo de bytes.   
Despues tengo 2 metodos, uno para visualisar en pantalla el PDF, el cual funciona perfecto y lo visualiza, y el otro metodo para mandarlo a imprimir SIN QUE SE VISUALICE, es decir, tomo el arreglo de bytes (PDF) y lo mando directo a la impresora. Uso la libreria JPanel, el pdf (recibo) se imprime alineado correactamente, solo que imprime las puras lineas, no imprime nada de texto.    
Investigando vi que la propiedad "setTextPrint" de la libreria pdfDecoder toca algo sobre eso, la active y fue ahi que me imprimio el texto PERO lo imprime todas las letras en el mismo espacio y en forma vertical, es decir, si dice HOLA, imprime la H y luego la O encima de la H y asi sucesivamente.   
Me podrian ayudar? este es el codigo del metodo que uso.   
public void imprimirPDF(byte[] informePDF) { 
        PdfDecoder pdf = null;      
        try { 
            pdf = new PdfDecoder(true); 
            //Asignar la impresora predeterminada 
            PrintService service = PrintServiceLookup.lookupDefaultPrintService(); 
            PrinterJob printJob = PrinterJob.getPrinterJob(); 
            printJob.setPrintService(service); 
            Paper paper = new Paper(); 
            PageFormat pf = printJob.defaultPage();   
            //Se asigna el tamaño del papel media carta             
            paper.setSize(612, 385); //ANCHO, ALTO (EN PUNTOS) 
            paper.setImageableArea(20, -91, 595, 595);                       
            pf.setPaper(paper);               
            pf.setOrientation(pf.LANDSCAPE); //Asignarle orientacion a horizontal 
            //Cargar el pdf para imprimir 
            pdf.openPdfArray(informePDF); //Asignar el pdf 
            pdf.setTextPrint(pdf.TEXTSTRINGPRINT); //Usar las fuentes como texto 
            pdf.PDFContainsEmbeddedFonts(); 
            pdf.hasEmbeddedFonts();               
            pdf.setPageFormat(pf); 
            //Enviar a imprimir 
            printJob.setPageable(pdf);   
            printJob.print(); 
        } catch (Exception e) { 
            e.printStackTrace();   
        } finally {   
            pdf.closePdfFile();   
        }   
    }           |