domingo, 24 de enero de 2010

Impresión directa

Amigos,

He realizado una clase para imprimir directamente a impresoras matriciales (no he checado con otro tipo de impresoras), esto es, sin importar si son Paralelas, Seriales, USB, WIFI u otras, siempre y cuando estén instaladas en windows.

AQUI LA DESCARGA

Sin más preambulo, aquí un ejemplo de uso:

#include

FUNCTION main()
LOCAL oTck
LOCAL nRow := 1

oTck := TDirectPrint():new()
? oTck:cIncos, oTck:cCredits
oTck:nCopy := 1

oTck:say( nRow++, 10, "William morales" )
oTck:say( nRow++, 12, "Gladys sanchez" )
oTck:say( nRow++, 00, "" )
oTck:jump( 10 )

oTck:sendtoprinter()

? "Termino de imprimir"

RETURN NIL

En el archivo de descarga viene la LIB, EXE y el PRG de ejemplo.
Y aquí un desgloce de lo que hasta ahora contiene.

DATAS
cIncos.- Nombre y versión de la clase
cBuild.- Fecha de creación de la LIB
cCredits.- Créditos de autoría y tester
nRow.- Línea de impresión
nCol.- Columna de impresión
cPrinter.- Nombre de la impresora a enviar
cDocument.- Nombre del documento que aparece en el Spooler de windows
nCopy.- Número de copias del documento a imprimir

new( cPrinter ).- Inicialización de la clase y (opcional) pasar nombre de la impresora, si no se pasa, se tomará la que este predeterminada en el momento.
printerdefault().- Asigna la impresora default a cPrinter
setlpt( nLpt ).- Asigna a cPrinter la impresora que esté asignada al puerto indicado
jump( nJump ).- Salta n lineas
say( nRow, nCol, cText ).- Imprime en la línea, columna especificada el texto enviado
opencash( cPrinter, nCash ).- Abre un cajón de dinero, pasandole que impresora se usa. "epson", "star" y el número de cajón a abrir.
sendtoprinter().- Envía a la impresora
checkport( nPort ).- Checa si en el puerto LPT especificado hay impresora asignada
eject().- Aplica un salto de página

Distintos envíos de secuencias de ESC a la impresora.
beginprint().- Inicializa la impresora, por si se imprimió antes un grafico
endprint().- Finaliza la impresión
bold( lOnOff ).- Habilita o deshabilita negritas
condensed().- Habilita condensada
normal().- Habilita o coloca impresión a texto normal
expansive( lOnOff ).- Habilita o deshabilita letras grandes
superscript( lOnOff ).- Habilita o deshabilita superscript
subscript( lOnOff ).- Habilita o deshabilita subscript
underline( lOnOff ).- Habilita o deshabilita underline

Bueno, es solo el principio, se aceptan sugerencias, críticas, etc.

Desde luego, espero comentarios o adiciones para poder haciendola estable y mas potente.

Por mi no se detengan a comentar o usar, si necesitan algo específico hagamos los comentarios y evaluamos.

Saludos y realmente espero podamos ahora si, poder comentar o sugerir.

Sinceramente.
William Morales

4 comentarios:

  1. Hola!!!!
    William,
    Como siempre, dando excelentes contribuciones, veo que te vales de un archivo .prn para enviar la impresión... se podría incluir un método por medio de cual poder imprimir cualquier archivo prn pre existente?

    Mi granito de arena..

    José Murugosa

    ResponderEliminar
  2. Hola William

    Muy por la clase, me gusta.

    Podrías adicionarle la impresión por Fonts, sería genial.

    Saludos

    Tavo

    ResponderEliminar
  3. José Murugosa,

    Excelente idea. Tomando en cuenta.

    PD. Estoy a la espera de el documento pendiente, a mi no se me olvida, jjejjejjejje

    Saludos

    ResponderEliminar
  4. Tavo,

    Recuerda que es un archivo que se genera y la idea principal es la de enviar dicho archivo a cualquier impresora windows con la velocidad si de un puerto LPTx directo.

    Pero si tienes alguna información que compartir con gusto la reviso.

    Saludos

    ResponderEliminar