PDA

Ver la Versión Completa : X copias con TPrinter


newtron
31-08-2012, 18:26:05
Hola a tod@s.

Yo imprimo de forma habitual usando el objeto TPrinter sin grandes problemas. El tema que quiero resolver ahora y no consigo es poder imprimir dos copias de un mismo documento tamaño cuartilla en un folio.

Estoy haciendo pruebas poniendo TPrinter.Copies=2 pero me imprime un documento, salta de página y me imprime el otro en la siguiente.

¿Alguien sabe qué más tengo que tocar para poder sacar las dos copias en el mismo folio?

Gracias y un saludo

roman
31-08-2012, 18:56:48
Ni idea. ¿Has checado que la opción pcCopies esté activada en Printer.Capabilities? Según la ayuda, eso indica si el manejador de la impresora permite especificar el número de copias.

// Saludos

newtron
31-08-2012, 19:58:18
Ni idea. ¿Has checado que la opción pcCopies esté activada en Printer.Capabilities? Según la ayuda, eso indica si el manejador de la impresora permite especificar el número de copias.

// Saludos

No lo he mirado pero los tiros no tienen que ir por ahi porque las dos copias las saca pero en folios distintos, no en el mismo como yo quiero.

Casimiro Notevi
31-08-2012, 20:05:57
Lo mismo puedes configurar en la impresora para que cambie su tamaño de página por el que te interesa.

roman
31-08-2012, 20:21:39
De hecho, ahora veo que no había leído correctamente la pregunta, pero no creo que eso se pueda. ¿Imprimir dos copias en la misma hoja? No conozco impresora que lo haga. En todo caso, ¿por que no repites la rutina de impresión para que salgan las dos copias?

// Saludos

newtron
31-08-2012, 20:28:43
Lo mismo puedes configurar en la impresora para que cambie su tamaño de página por el que te interesa.

Ya he probado y se comporta exactamente igual le ponga el tamaño que le ponga.

De hecho, ahora veo que no había leído correctamente la pregunta, pero no creo que eso se pueda. ¿Imprimir dos copias en la misma hoja? No conozco impresora que lo haga. En todo caso, ¿por que no repites la rutina de impresión para que salgan las dos copias?

// Saludos

jejejejejej.... ¿tú sabes lo que me estás pidiendo? :D

roman
31-08-2012, 20:32:17
jejejejejej.... ¿tú sabes lo que me estás pidiendo? :D

Sí. En lugar de


ImprimeDocumento;


pones


ImprimeDocumento;
ImprimeDocumento;


:rolleyes:

// Saludos

newtron
31-08-2012, 21:00:04
No es tan fácil, haciéndolo de esa forma se imprime igualmente en dos folios distintos porque por cada "Imprimedocumento" hace un salto de página de forma automática al hacer el .EndDoc y si no lo haces, al tener la misma posición en el canvas, imprimiría uno encima de otro.

La única solución sería hacer un "Imprimedocumento" y sin hacer .Endoc cambiar la posición vertical para que al hacer el segundo "Imprimedocumento" lo imprima debajo antes de hacer el .EndDoc y este tema lo tengo peliagudo, es una unidad con 8000 líneas que originalmente no hice yo y que estoy modificando según voy necesitando.

De todas formas lo intentaré por esa vía.

Gracias y un saludo

roman
31-08-2012, 21:18:51
No creo que tengas mayor problema. El ImprimeDocumento lo cambias por


ImprimeDocumento(PosicionInicial);
ImprimeDocumento(PosicionInicial + MedidaDeMediaCartilla);
TerminaDocumento(); // Aquí el EndDoc


es decir, no tienes que meterte con tus 8000 líneas, sólo cambiar el endoc de lugar y ponerle un parámetro a tu rutina.

Por cierto, ¿8000 líneas para imprimir? Pues ¿qué es? ¿El Don Quijote? Aunque no creo que quepa en media cuartilla :p :D

// Saludos

newtron
01-09-2012, 11:16:13
Por cierto, ¿8000 líneas para imprimir? Pues ¿qué es? ¿El Don Quijote? Aunque no creo que quepa en media cuartilla :p :D

// Saludos

No hombre, el caso es que nos hemos creado nuestro propio editor de reportes casero estilo fastreports y esos, con sus cabeceras, bandas, grupos, etc. entonces el tema está más complicado que enviar un par de lineas a pelo a la impresora.

http://img339.imageshack.us/img339/6063/71526918.jpg (http://imageshack.us/photo/my-images/339/71526918.jpg/)

http://img600.imageshack.us/img600/7213/28638007.jpg

Casimiro Notevi
01-09-2012, 11:28:26
A ver si actualizamos el IVA :p

Oye, y ¿por qué habéis creado un programa de ese tipo en lugar de usar alguno existente?, lo digo porque lleva bastante tiempo y trabajo y habiendo cosas ya hechas que funcionan bien...

newtron
05-09-2012, 09:22:53
Oye, y ¿por qué habéis creado un programa de ese tipo en lugar de usar alguno existente?, lo digo porque lleva bastante tiempo y trabajo y habiendo cosas ya hechas que funcionan bien...

Bueno, la verdad es que esto viene de hace bastantes años, de cuando yo todavía programaba en msdos y contraté a un programador para empezar los nuevos desarrollos para "guindoun". Este hombre fue el que decidió el lenguaje (delphi ^\||/) y la base de datos (dbf del database desktop v\||/). Empezó a programar los componentes que usaríamos y entre ellos incluyó el generador de informes que no sé por qué motivo lo desarrollamos nosotros en vez de usar uno ya existente.

La verdad es que, como todo, tiene sus ventajas y sus inconvenientes. En una versión antigua de nuestra contabilidad estuvimos usando para unos cuantos informes el crystal reports y la verdad es que es un poco fastidioso tener que ir instalando sus dlls con los problemas que eso conlleva y cada vez que cambiaba algún campo de la base de datos regenerar los informes, etc.

Con nuestro generador de reportes no necesitamos dlls, está bastante adaptado a nuestras necesidades, lo modificamos según nos va haciendo falta y podemos, por ejemplo, incluir en nuestras aplicaciones generadores de informes por el cliente sin grandes complicaciones.

Saludos