La Web del Programador: Comunidad de Programadores
 
    Pregunta:  23258 - IMPRESIóN CON COMANDO SAY
Autor:  Jorge Londoño
Desde un programa .prg envío comandos SAY a la impresora, con la ubicación donde deben imprimirse. Instalé una impresora Hewllet packard 892 y la impresión aparece en lugares diferentes, resultando una gráfica completamente despelotada. Cómo hago para obtener el mismo resultado que en la interior impresora.
Estoy trabajando en Fox Pro 2.6 para Windows.
Gracias por su colaboración.

  Respuesta:  Henry Martinez Flores
Tienes que almacenar en un string la linea completa a imprimir y luego SAY. Y para poder comprimir utilizar la clausula FONT.
Por ejemplo:
* Ejemplo
tstring=space(10)+mca.cuenta+space(1)+mca.nombre+space(1)+transf(mca.valor,'999,999.99')
tlinea=tlinea+1
@tlinea,0 SAY tstring FONT 'Courier New',9

* fin ejemplo

Si utilizas la fuente Courier New podras imprimir tanto en DOS como en modo Windows y el reporte no se modifica para nada.
Cuando programo los reportes si es en modo DOS, genero un archivo plano y luego lo mando a la impresora; y si es en modo windows lo envias directamente a la cola de la impresora.

Puedes utilizar el mismo programa la diferencia esta en el seteo inicial de la impresora.

Yo he programado un sistema que funciona bien tanto para DOS como para WINDOWS, y creeme fue un dolor de cabeza hasta encontrar la solucion.

Adios