CREO Q NADIEN EN ESTE FORO TRABAJA CON TPRINTER COMO NO HAY RESPUESTA PARA TRABAJAR CON PAPEL,CONTINUO EN IMPRESORA MATRICIALES. EL PROBLEMA ES EL SALTO DE PAPEL COMO LO COMENTA OTRO COLEGA EN EL FORO.
ESTO LO COMECTO OTRO COLEGA TAMBIEN:
Impresion en forma continua, impresor de matrices
- Uso de la clase TPrinter (....si, ya se, deberia utilizar la tDosPrn, pero es necesario en este caso, pues hay impresion de unos aspectos gráficos).
El lío ocurre con el salto de papel, pues el formulario de impresion no es tamaño carta (es más pequeño), y al hacer un ENDPAGE se sale una pagina tamaño carta.
En otra pregunta ya realizada a este respecto, Antonio sugiere utilizar la funcion PrnSetSize() antes de declarar el objeto TPrinter..... pero no me funciona!!!
SALUDOS
PARECE QUE NADIEN TRABAJA CON TPRINTER
- Antonio Linares
- Site Admin
- Posts: 37481
- Joined: Thu Oct 06, 2005 5:47 pm
- Location: Spain
- Contact:
Hola,
Lo que pasa es que es el windows el que controla el salto de pagina segun el tamaño de hoja que tengas informado en la configuracion de la impresora, a menos que le digas que tiene otro tamaño del pagina y eso lo haces con el PrnSetSize() que si no me equivoco es un metodo de tprinter.
Atte,
Lautaro
Lo que pasa es que es el windows el que controla el salto de pagina segun el tamaño de hoja que tengas informado en la configuracion de la impresora, a menos que le digas que tiene otro tamaño del pagina y eso lo haces con el PrnSetSize() que si no me equivoco es un metodo de tprinter.
Atte,
Lautaro
Quizá tengas que averiguar cuales son las secuencias de escape de tu impresora y mandarselas, vía PrinterEsc(), nada más definir el TPRINTER.
Intenta mandar, primero, la secuencia de inicialización. Muchas veces es CHR(27)+"@" o algo así. Después, la de tamaño de pagina. Algo similar a CHR(27)+CHR(67)+CHR('cantidad de líneas'). En la documentacion de tu impresora debería venir.
Antes de terminar la impresión, deberás recuperar el tamaño de página: CHR(27)+CHR(67)+CHR('cantidad original de líneas').
Por intentarlo no pierdes nada.
Intenta mandar, primero, la secuencia de inicialización. Muchas veces es CHR(27)+"@" o algo así. Después, la de tamaño de pagina. Algo similar a CHR(27)+CHR(67)+CHR('cantidad de líneas'). En la documentacion de tu impresora debería venir.
Antes de terminar la impresión, deberás recuperar el tamaño de página: CHR(27)+CHR(67)+CHR('cantidad original de líneas').
Por intentarlo no pierdes nada.
Nos Gusta Programar
- Armando Picon
- Posts: 448
- Joined: Mon Dec 26, 2005 9:11 pm
- Location: Lima, Peru
En la clase printer tipo DOS, no hay problema de utilizar el COMMAND para setear el tamaño del papel en lineas, etc.
En tPrinter tambien se puede definir el papel con SetPage(). Yo lo utilizo constantemente y no he tenido problemas (excepto uno que acabo de consultar en el foro con el titulo de "Bug en la calse Printer?".
Saludos
Armando
En tPrinter tambien se puede definir el papel con SetPage(). Yo lo utilizo constantemente y no he tenido problemas (excepto uno que acabo de consultar en el foro con el titulo de "Bug en la calse Printer?".
Saludos
Armando
- Armando Picon
- Posts: 448
- Joined: Mon Dec 26, 2005 9:11 pm
- Location: Lima, Peru
En la clase printer tipo DOS, no hay problema de utilizar el COMMAND para setear el tamaño del papel en lineas, etc.
En tPrinter tambien se puede definir el papel con SetPage(). Yo lo utilizo constantemente y no he tenido problemas (excepto uno que acabo de consultar en el foro con el titulo de "Bug en la clase Printer?".
Saludos
Armando
En tPrinter tambien se puede definir el papel con SetPage(). Yo lo utilizo constantemente y no he tenido problemas (excepto uno que acabo de consultar en el foro con el titulo de "Bug en la clase Printer?".
Saludos
Armando