El Thu, Jan 03, 2002 at 10:09:05AM -0300, Santiago Pastorino escribi�:
> Simplemente excelente las explicaciones la verdad no ten�a ni idea de
> todo esto.
> Me queda una sola duda, con respecto al tema del borrado de la cola y la
> cancelaci�n de la impresi�n, yo con cups borro la cola, �por que tengo
> que apagar la impresora, prenderla y repetir ese preceso 2 veces m�s
> para que la impresora par�? o sea apagarla 3 veces, �no se supone que en
> la primer apagada se borra el buffer? y entonces que es lo que sigue
> haciendo la impresora.

 
 Pues hace lo que te coment�, hay 3 partes b�sicas en los sistemas de
impresi�n..

 cola -> buffer de dispositivo *nix -> buffer de dispositivo fisico
(impresora)

 Si tu borras la cola, has de esperar a que la impresora termine con
los otros 2 buffers, osea .. a que se acabe lo que tiene en su buffer
interno (si la apagas, esto se borra), y a que acabe la informaci�n
que hay en el buffer de dispositivo *nix, esto �ltimo que yo sepa no
hay forma (sin toquetear el kernel) de que ter permita hacer un flush
del buffer a /dev/null ... creo que a base de jugar con los par�metros
del modulo lp (si lo tienes como m�dulo), podrias ajustar el tama�o
del buffer de dispositivo. Ten en cuenta que si pones un valor muy
peque�o, podras *borrar* la cola y que casi no imprima nada mas que la
p�gina en curso, pero te arriesgas a caer en la misma situaci�n que
windows cuando est� el sistema con carga alta, paradas repentinas de
la impresi�n por falta de informaci�n en el buffer.

 Yo creo que la soluci�n mas elegante es echarle un ojo al cups a ver
si tiene alguna opci�n de modificaci�n del buffer de dispositivo, para
que envie poca informaci�n.

 Me explico ...


 lpr archivo.ps ->> cups lo procesa con el gs y genera el RAW Stream
para la impresora ->> se encola para enviar al dispositivo ->> se abre
el dispositivo en modo escritura (esto ya activa ciertos buffers del
kernel) ->> se empieza a escribir en el dispositivo mientras no se
reciba una se�al de cancelaci�n o el dispositivo devuelva error
(buffer lleno, impresora parada, etc.).

 ->> Se recibe se�al de cancelaci�n ... >> Se deja de escribir en el
dispositivo, se escribe en el dispositivo la secuencia de fin de
pagina correspondiente al modelo y lenguaje que use ->> se hace un
flush del dispositivo para envia a la impr esta informaci�n.


 Ya a partir de aki depende de como la impresora maneje el tema de los
trabajos.

 El problema est� en que no todas las impresoras tiene soporte
*nativo* para la gesti�n de trabajos, por ejemplo las hp usan el PLJ,
con lo que se le puede enviar una orden de cancelaci�n en medio del
stream de datos y la impresora parar� y cancelar� el trabajo actual,
otras impresoras tienen un lenguaje nativo para hacer esto .. y otras
(las epson de gama media/baja por ejemplo y la mayoria de las impr de
tinta) simplemente no tienen este tipo de mecanismos y dejan esa
tarea al subsistema de impresi�n.

 Espero haberte clarificado el tema a t� y al resto de los listeros.

 Saludos


-- 
   _                                                                   _        
  // Ra�l A. Betancort Santana    /> A Dream is an answer to      __   \\       
 // <[EMAIL PROTECTED]> // question that we don't know  (oo)   \\      
// Dimensi�n Virtual S.L.       //  how to ask.                 / \/ \  //      
\> A Linux Solution Provider   </                               `V__V' </       

Attachment: pgpd8r3ecEg9d.pgp
Description: PGP signature

Responder a