Seguimiento de avance de Impresión

Espero se encuentre bien de salud en unión de sus seres queridos, mi pregunta es la siguiente : Cuando mando a la impresora reportes, desearía que conforme avanza la impresión real en la impresora, detectar ese avance, también la cantidad de página de la impresión y cosas por el estilo, si me envía un ejemplo seria bueno.

2 respuestas

Respuesta
1
Todo esto, es posible si y solo si, tu haces tu propio manejador de impresión, o dicho en otras palabras, un programa que controle, cabecera, detalle, pie, etc. y que imprima cada cosa que tu le indiques que imprima, donde controle dispositivos de impresión, tamaños de hoja, intentar de la impresión, exceso de impresión, numero de copias, saltos de página, páginas iniciales, páginas finales, y un largo etc., todo esto gracias a Dios ya lo controla el controlador propio de Windows, por lo que hacer todo lo que anteriormente te comente, seria como inventar los agujeros para regadera, simplemente power builder se sirve de este manejador ya existente y cuando tu envías una impresión, power builder se la envía al manejador de windows y el se pelea con el sistema, dispositivos, etc., en otras palabras una vez que power builder entrega el reporte al manejador correspondiente, power builder deja de tener control sobre este, y ya no es posible saber que pasa con el, claro, posiblemente alguien diga que existen librerías tipo API que pueden informar este tipo de actividades, o que encuentres librerías que interceptan este tipo de acciones, aun así, power builder no podría tener el control, sino que siempre dependería de lo que el manejador le proporcione.
Lo que si puedes conocer es, información previa a la impresión, como el numero de hojas que serán impresas, por ejemplo. O por medio de propio driver de la impresora que estés utilizando, pedir que te solicite insertar una página para ser impresa, de esta forma vas pasando una a una, claro esto me dirás que es totalmente fuera de lugar, pero recuerda que el que controla esto es el manejador de impresión.
Un ejemplo practico es, cuando envías a imprimir un datawindow simplemente utilizas la función print(), que pasa internamente, no tengo ni idea, pero imprime, respeta margenes, salta páginas, utiliza colas de impresión, etc.
Un posible ejemplo de como modificar ciertas cosas antes de la impresión te la puede dar un ejemplo que esta incluido en la demo que viene dentro de la instalación de PB, cualquiera que sea tu version, en ella encontraras una ventana que simula un print setup, en el que puedes definir, la intentar de la impresión, el numero de páginas, la calidad de la impresión, la impresora, y algunas otras cosas más.
Respuesta
1
El tema es que cuando mandas a imprimir queda en el spool y no tienes un control real sobre el mismo. Por este motivo no podes saber que se esta imprimiendo y que no (por lo menos con las impresoras con las que he trabajado yo).
Estuve mirando unas APIS pero no encontré una que haga lo que necesitas.
Con las propiedades de impresion de la dw "Print.property DataWindow object property" podes setear los valores pero una vez que estan se lo manda al spool y estamos como te mencione al principio.
La cantidad de páginas que se imprimirán la podes sacar poniendo la dw en modo printpreview y viendo la cantidad de hojas que produce "PageCount ( )".

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas