Hola de nuevo!!
Estoy intentando usar la clase DOSPRN y la verdad no se por donde empezar.
Antonio hay algun ejemplo del que me pueda guiar.
Gracias,
slds!
nolgiati wrote:Hola de nuevo!!
Estoy intentando usar la clase DOSPRN y la verdad no se por donde empezar.
Antonio hay algun ejemplo del que me pueda guiar.
Gracias,
slds!
//----------------------------------------------------------------------------//
FUNCTION PrintDosForWin()
LOCAL cTexto := ""
LOCAL ON_GRANDE := CHR(27) + CHR(33) + CHR(16) // Para Impresoras Epson
LOCAL OFF_GRANDE := CHR(27) + CHR(33) + CHR(01) // Para Impresoras Epson
LOCAL cPrinter := GetDefaultPrinter() // Seleciona la Impresora Por Defecto de Windows
//LOCAL CRLF := CHR(13) + CHR(10)
LOCAL cFileName := "texto.prn"
cTexto += "Esta es la primera linea del texto" + CRLF
cTexto += Replicate( "*-", 20 ) + CRLF
cTexto += ON_GRANDE + "LETRAS GRANDES" + OFF_GRANDE + CRLF
cTexto += "Esta es otra linea de texto..." + CRLF
cTexto += PADL( "Izquierza", 40 ) + CRLF
cTexto += PADC( "CENTRALIZADO", 40 ) + CRLF
cTexto += PADR( "Derecha", 40 ) + CRLF
cTexto += PADC( "< Linea Final >", 40, "-" ) + CRLF
If WriteStream( cFileName, cTexto )
// Envia la Impresion al Spool de Windows
PrintFileRaw( cPrinter, cFileName, "Impresion En Formato DOS desde Windows" )
FERASE( cFileName )
EndIF
RETURN NIL
// Esta Funcion la encontre por ahi...
FUNCTION WriteStream( cFile, cStream )
LOCAL nHandle := FCreate( cFile )
IF FError() <> 0
RETURN( .F. )
ENDIF
FWrite( nHandle, cStream, Len(cStream) )
FClose( nHandle )
RETURN ( FError() == 0 )
// Cabecera
cTexto += Replicate( "-", 40 ) + CRLF
cTexto += ON_GRANDE + PADC( "PRESUPUESTO", 32 ) + OFF_GRANDE + CRLF
cTexto += DtoC( Date() )+Space( 22 )+Time() + CRLF
cTexto += Replicate( "-", 40 ) + CRLF
cTexto += PadR( "CANTIDAD/PRECIO UNIT", 40 ) + CRLF
cTexto += PadR( "CODIGO/UNID.", 40 ) + CRLF
cTexto += PadR( "DESCRIPCION/PRECIO TOTAL", 40 ) + CRLF
cTexto += Replicate( "-", 40 ) + CRLF
//
// Articulos
aEval( hP3:aArticulos, {|aItm| cTexto += PadC( "*** NO FISCAL NO FISCAL ***", 40 ) + CRLF + ;
PadR( Str( aItm[iCantid],,,.T.)+"/"+Str( aItm[iPrcVta],,,.T.), 40 ) + CRLF + ;
PadR( aItm[iCodArt]+"/"+aItm[iUnidad], 40 ) + CRLF + ;
PadR( aItm[iDescArt], 29 ) + Trans( aItm[iPrcTot], PIC_OCHOCIF2 ) + CRLF, ;
nTotVta += aItm[iPrcTot] } )
// Total y cierre
cTexto += CRLF + PadL( "Total", 20 ) +" "+ ON_GRANDE+Trans( nTotVta, PIC_NUEVECIFP ) + OFF_GRANDE + CRLF
cTexto += PadC( "< Fin Presupuesto >", 40, "-" ) + CRLF
if ( lOk:= ::WritePrnFile( cFileTicket, cTexto ) )
// Envia la Impresion al Spool de Windows
PrintFileRaw( ::cPrnTicket, cFileTicket, "Impresion En Formato DOS desde Windows" )
else
Alert( "["+Str( FError(),,,.T.)+"] Error al crear archivo de Impresión"+CRLF+"Reintente",,"Alerta",, IDI_HAND )
end
return( lOk )
// Fin
// --------------------------------------------------- Guarda Archivo de impresión
//
METHOD WritePrnFile( cFile, cStream ) CLASS TImprimir
local nHandle := FCreate( cFile )
if FError() <> 0
return( .F. )
end
FWrite( nHandle, cStream, Len( cStream ) )
FClose( nHandle )
return( FError() == 0 )
// Fin
Return to FiveWin para Harbour/xHarbour
Users browsing this forum: No registered users and 41 guests