Java - impresión en impresoras de matriz de punto

 
Vista:

impresión en impresoras de matriz de punto

Publicado por tsukasa (42 intervenciones) el 30/11/2006 15:41:44
He tenido constantes problemas imprimiendo en impresoras de matriz de punto de marca Panasonic. Hay por ahí algún problema de compatibilidad de java con algunas impresoras de estas? hay alguna información al respecto que pudiera leer?

Definitvamente no puedo imprimir en las sgtes:

Panasonic KX-P2130
Panasonic KX-P1180

ahí ocurre que típico a una cierta altura de la hoja se tergiversa o duplica parte de la impresión.

Lamentablemente también pasan cosas extrañas, aunque sólo de repente, con la Panasonic KX-P1150, que es una impresora tanto o más popular que las otras.

Con impresora Epson u Okidata y otra marca que no me acuerdo, no he visto estos problemas. Alguien sabe algo? sólo mando a imprimir de la manera común y corriente. Gracias.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:impresión en impresoras de matriz de punto

Publicado por Javier (37 intervenciones) el 30/11/2006 18:15:02
Hola...

Yo ya e hecho varios proyecto con impresion.... lamentablemente nunca eh tenido problemas pues las impresoras ke uso son Deskjet.... el caso es ke si te da un problema como duplicar parte de la impresion eso me suena ke no es por la impresora si no por la configuracion de ella en java......

Mira detalladamente la configuracion que tienes en PrinterJob......

Saludos espero haberte ayudado...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:impresión en impresoras de matriz de punto

Publicado por tsukasa (42 intervenciones) el 30/11/2006 18:52:15
Hola...

Bueno el asunto es que con las dos primeras impresoras que menciono, a una cierta altura (no siempre la misma), me imprimen repetido algo. Por ejemplo puede ser una palabra dos veces..

Paece que mi hermano tiene una de esas impresoras así que ahí puedo probar.

No sabía que fuera necesario configurar mayormente algo en el printerJob.

el código relevante lo tengo así: (deberé cambiarle algo? no tiene ningún añadido muy especial que digamos)

public class ImprimidorCotParcial implements java.awt.print.Printable
{

...

public boolean imprime ()
{
try
{ Imprimidor.imprime ("...", this, false); }
catch (Exception e)
{ UtilI.mostrarError (padre, e); return false; }

return true;
}

public int print (Graphics g2, PageFormat pf, int nPag) throws PrinterException
{
if (nPag>0)
{ return Printable.NO_SUCH_PAGE; }
Graphics2D g = (Graphics2D)g2;

int ancho = 615, largo = 771; // por ejemplo

Paper p = new Paper();
p.setSize (ancho*1.0, largo*1.0);
p.setImageableArea (0.0, 0.0, ancho*1.0, largo*1.0);
pf.setPaper (p);

g.translate (pif.ajusteX, pif.ajusteY);
g.setClip (0, 0, ancho, largo);
imprime (g);

return Printable.PAGE_EXISTS;
}

private void imprime (Graphics2D g)
{
g.drawString ("ejemplo", 30, 30);
}

}

-------------------
public class Imprimidor
{

public static void imprime (String nombreDoc, Printable printable, boolean cruzado)throws Exception
{
PrinterJob printJob= PrinterJob.getPrinterJob();

if (printJob.getPrintService()==null)
{ throw new Exception ("No se encuentra el servicio de impresión."); }

PrintService[] printers=PrinterJob.lookupPrintServices();

if (printers.length==0)
{ throw new Exception ("No se puede obtener ningún servicio de impresión."); }

printJob.setPrintService (printers[0]);
if (cruzado)
{
PageFormat pf = printJob.defaultPage();
pf.setOrientation(PageFormat.LANDSCAPE);
printJob.setPrintable (printable, pf);
// printJob.pageDialog (pf);
}
else
{ printJob.setPrintable (printable); }
printJob.setJobName (nombreDoc);

if (printJob.printDialog ())
{
printJob.print();
}
}

}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:impresión en impresoras de matriz de punto

Publicado por tsukasa (42 intervenciones) el 07/01/2013 19:30:13
vi este mensaje en google y no quise seguir pareciendo tan ignorante.. y para el que le pudiera servir. Bueno hace tiempo que prefiero usar el modo texto, el modo normal para impresoras normales se pifea a veces y no hay nada que uno pueda hacer. O sea genero un archivo de texto con los comandos especiales entremedio según el instructivo para la impresora, y envío el archivo a la impresora con AUTOSENSE.

He visto mencionado el envío del archivo de otras formas, por ejemplo, escribiendo a LPT1 y cosas así pero tenía un problema igual y desde que uso autonsense cero drama, o sea al final:

FileInputStream textstream = new FileInputStream(archivoGeneradoPreviamente);

DocFlavor myFormat = DocFlavor.INPUT_STREAM.AUTOSENSE;
Doc myDoc = new SimpleDoc(textstream, myFormat, null);
PrintRequestAttributeSet aset = new HashPrintRequestAttributeSet();

PrintService ps = .....

DocPrintJob job = ps.createPrintJob();
job.print (myDoc, aset);

----
nótese que uso programa instalado en cliente, no uso aplicaciones web.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar