Imprimir varios documentos
Hola,
estoy haciendo un programa con el que pretendo imprimir varios archivos (uno detrás de otro por supuesto).
Los archivos están en formato pdf y todos se encuentran en la misma carpeta.
El listado de documentos que quiero imprimir lo introduzco en un txt y se introducen los nombres uno debajo de otro. Luego desde programa accedo al txt, recorro una a una todas las entradas y lanzo la función "imprimir".
Para imprimir utilizo la función:
ShellExecute Me.hWnd, "print", ruta, "", "", 4
Con lo que el programa me abre el acrobat y me imprime el archivo que le paso. (Dentro de mi programa he conseguido que la variable ruta contenga la dirección correcta del documento que intento imprimir).
Y ahora viene mi problema. Cuando el listado son 3 ó 4 documentos me los imprime sin ningún problema. Pero cuando el listado se hace más grande (30 ó 40 documentos) la impresora no me imprime todos los planos. Es como si se "saltara" algunos. De hecho, sobre un mismo txt los documentos que me imprime cada vez no son los mismos, osea que cada vez se salta unos. No siempre se salta el primer documento, ni la misma cantidad.
Dándole vueltas he pensado que a lo mejor el programa "recorre" el listado muy rápido y que a la impresora no le da tiempo a recibir la orden de imprimir algunos documentos. Ahora estoy intentando retardar la impresión entre un documento y otro mediante la función sleep, pero no acierto a poner un tiempo adecuado. De hecho no se si el problema es debido a esto, con lo que no se si aumentar el tiempo de retardo me permitirá solucionar el problema.
¿Hay alguna manera de que el programa espere a que la impresora le lance un evento de "ya he terminado de imprimir el documento" o algo similar...
--
Antes de nada muchas gracias por su atención. Lamento ser extenso.
Un saludo
estoy haciendo un programa con el que pretendo imprimir varios archivos (uno detrás de otro por supuesto).
Los archivos están en formato pdf y todos se encuentran en la misma carpeta.
El listado de documentos que quiero imprimir lo introduzco en un txt y se introducen los nombres uno debajo de otro. Luego desde programa accedo al txt, recorro una a una todas las entradas y lanzo la función "imprimir".
Para imprimir utilizo la función:
ShellExecute Me.hWnd, "print", ruta, "", "", 4
Con lo que el programa me abre el acrobat y me imprime el archivo que le paso. (Dentro de mi programa he conseguido que la variable ruta contenga la dirección correcta del documento que intento imprimir).
Y ahora viene mi problema. Cuando el listado son 3 ó 4 documentos me los imprime sin ningún problema. Pero cuando el listado se hace más grande (30 ó 40 documentos) la impresora no me imprime todos los planos. Es como si se "saltara" algunos. De hecho, sobre un mismo txt los documentos que me imprime cada vez no son los mismos, osea que cada vez se salta unos. No siempre se salta el primer documento, ni la misma cantidad.
Dándole vueltas he pensado que a lo mejor el programa "recorre" el listado muy rápido y que a la impresora no le da tiempo a recibir la orden de imprimir algunos documentos. Ahora estoy intentando retardar la impresión entre un documento y otro mediante la función sleep, pero no acierto a poner un tiempo adecuado. De hecho no se si el problema es debido a esto, con lo que no se si aumentar el tiempo de retardo me permitirá solucionar el problema.
¿Hay alguna manera de que el programa espere a que la impresora le lance un evento de "ya he terminado de imprimir el documento" o algo similar...
--
Antes de nada muchas gracias por su atención. Lamento ser extenso.
Un saludo
1 respuesta
Respuesta de denciso
1