sysctrl2 wrote:Holas Jose,
ya probe tu aportacion esta bueno,,
como controlas si el formato es a media carta?
papel continuo, de media carta,,
o ahi seguimos usando tdosprn ?
saludos..
Simple, lo haces con la función IniImp(nAncho, nLargo, nFilas, nColumnas, cNom_spooler, lsel_imp, lpreview, lLnds ,nCopias), le das el largo en cmts de la pagina, sea media pagina, cuarto de pagina
o quinto de pagina o la fracción que sea y le das la mitad, cuarta parte o quinta parte respectivamente de las filas que usas para la pagina entera y listo.
Puedes usar papel de cualquier largo.
Ejemplo si usas una hoja carta, usas 60 filas, 80 columnas y tamaño de pagina: 21.59 x 27.94
Para A4 yo uso 72 filas y 80 columnas y la medida es 21 x 29.7cmts
para media carta serà 21.59 x 13.97 y 30 filas (la mitad)
IniImp(21.59, 13.97, 30, 80, "Listado mio", .t., .t., .f., 1)
combinando tamaños de hoja y filas cambias la distancia de interlineado, combinando tamaños de hoja y columnas cambias a condensado (si es más de 80 y no es apaisado cambia la fuente automaticamente a una mas pequeña, aunque puedes indicar el tamaño de fuente si lo deseas, ve la función PrnSay)
Recuerda que el objetivo de estas funciones es facilmente modificar un listado para matriz de puntos en lpt1
a un listado a cualquier tipo de impresora en impresion grafica.
Si lo que deseas es imprimir en una impresora de matriz de puntos en lpt1, tdosprn será mas rápido, ya que evitas imprimir de forma gráfica.
Pero con esta clase esos mismos listados los puedes imprimir en una laser, en chorro de tinta, en impresoras conectadas por usb, lpt1 o de la red.
Espero ayude.