![]() |
impresion grafica mediante codigos de escape
hola muchachos
les comento en la empresa donde trabajo me mandaron hacer un programita .... bueno mejor voy a empezar por el comienzo en donde trabajo tienen un programa de facturacionque imprime en papel continuo imprime perfectamente en dos vias cuando estas son un papel grande (una hoja de 9 " X 12 " fanfold comun) pero los driver de windows no me permiten achicar el tamaño de la hoja para que se preguntaran quiero eso es que tengo que hacer la impresion de facturas en tres vias el el tamaño de la hoja es 3/4 el de una comun o tambien tengo que imprimir 3 vias de medio fanfold el problema consiste en que en cuanto mando a imprimir una linea y finalizo la impresion windows manda un new page entonces la hoja avanza hasta la siguiente hoja pero no eso no es lo que quieren porque el usuario debe cortar la factura y luego con la perilla tienen que mover manualmente la hoja hacia atras hasta llegar a la pocision de imprimir la impresora es una LX-300 por eso intento hacer un programita para manejar la impresora mediante codigos de escape ya pude imprimir algunas cosas mediante los mismos pero no pude decirle a la misma que imprima un texto en las coordenadas X e Y (dado que por coordenadas es mas esacta la impresion de facturas) ya que en mi trabajo utilizan un objeto de impresion que le dicen las coordenadas e imprimen me dijeron que se hace con el modo grafico ed la impresora pero sigo sin entender como decirle que lo imprima en las coordenadas X e Y estoy eternamente agradecido si alguien pudiera darme una mano por favor Emiliano |
Para la impresión gráfica puedes usar el objeto printer, pero si lo que quieres es imprimir directamente con codigos escape aquí tienes una referencia de ESC/P de Epson.
|
Cita:
y ese manual ya lo tengo pero no he podido dar una tecla de como se le envia los comandos graficos si pudieras darme una mano estaria muy agradecido |
Bueno, no nos dices que sistema operativo usas ni con que código imprimes cuando dices:
Cita:
Cita:
En la otra parte del tema: SI se puede cambiar el tamaño de la hoja de la impresora. En Win9x el driver trae para espcificar el tamaño de hoja personalizado, en WinXP debes hacer así: 1) Abres la carpeta de Impresoras 2) Seleccionas la LX-300 3) En el menú Archivo eliges Propiedades del servidor 4) Marcas la casilla Crear un nuevo formato 5) Especificas el tamaño de tu hoja. Listo! |
1) no importa el sistema operativo porque solo le estoy mandando caracteres de escape al puerto paralelo
y si es importante es XP 2) al mandarle la info directamente al puerto no necesariamente tiene que estar en la lista de impresoras instaladas solo con que halla una conexion con el puerto paralelo ya esta 3) codigo si queres lo pongo pero creo no serviria de nada dado que lo que estoy preguntando no esta en mi codigo porque no lo se como se hace por las dudas mi codigo es algo similar a la que puso luchifer en el post http://www.clubdelphi.com/foros/showthread.php?t=47000 no pongo mi verdadero codigo porque programo en visual basic pero estoy aki porque ustedes saben mas que la gente que programa en VB gracias |
Ah! Sucede que con Delphi tienes una gran ventaja: el objeto TPrinter, que te permite especificar exactamente las coordenadas donde quiere imprimir, por ejemplo:
Bueno, el error es que si pones writeln justamente le estás diciendo al programa que escriba una línea, es decir, que lo termine con el código #13(ENTER). Deberías utilizar write en su lugar. ¿POR QUE NO TE CAMBIAS A DELPHI? :) |
con el objeto printer se puede hacer eso
printer.currentx = 150 'setea X printer.currenty = 250 'setea Y printer.print "hola" ' imprime printer.enddoc 'finaliza y manda manda a la impresora el tema esta en que cuando finaliza la impresion manda un LF o sea nueva paguina y no puedo evitarlo ademas los driver de windows no me permiten efectuar un tamaño de papel personalizado ya que el objeto printer si usa las impresoras que estan en windows si me decis que en delphi podes imprimir media hoja de fanfold y dejar el cabezal en la mitad de abajo. hago una rutina en delphi y ya pero si ese es el caso dime como se hace |
La franja horaria es GMT +2. Ahora son las 06:20:05. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi