Page 1 of 1

EMF - Enhanced meta file no se borran

Posted: Mon Aug 06, 2018 10:20 pm
by mterraz
Estimados colegas,
Trabajando con Fivewin 18 en una función Imprime() he notado que los archivos EMF (Enhanced meta file) generados por el preview de la impresión no son borrados automáticamente una vez que el dialogo de preview de la impresión se cierra, los archivos emf permanecen el directorio "TEMP".
No logro entender que ha cambiado desde la versión de Fivewin 10 en la cual se generaban archivos wmf que se borraban automáticamente.
Ahora los arvhivos emf no se borran del directorio donde son generados por el preview en getenv('TEMP') y quedan linkeados a la aplicación de forma que tampoco puedo realizar un FERASE hasta que no cierre y termine la aplicación por completo.

FUNCTION Imprime()
Local cPath:=getenv('TEMP')+'\'
Local aFiles:={}

aFiles:=Directory(getenv('TEMP')+'\emf.*')

PRINT oPrn NAME 'impresión' PREVIEW MODAL

aEval(aFiles,{|x,y| aAdd(oPrn:aMeta, cPath+x[1] ) })

ENDPRINT

aEval(aFiles,{|x,y| FERASE( cPath+x[1] ) })

RETU .T.

Informacion correspondiente a la clase printer.prg de las versiones 10 y 18 de Fivewin.

*************************
FWH 18 CLASS - printer.prg
*************************
function PrintEnd()

if oPrinter:lMeta
if Empty( oPrinter:cFile )
oPrinter:Preview()
elseif "pdf" $ Lower( oPrinter:cFile )
FWSavePreviewToPDF( oPrinter, If( Lower( cFileExt( oPrinter:cFile ) ) == "pdf", ;
oPrinter:cFile, nil ), oPrinter:lPreview )
oPrinter:End()
elseif "emf" $ Lower( oPrinter:cFile )
CopyFile( oPrinter:aMeta[ 1 ], oPrinter:cFile, 0 )
If oPrinter:lPreview
oPrinter:Preview()
else
oPrinter:End()
endif
endif
else
oPrinter:End()
endif

oPrinter := nil

return nil

*************************
FWH 10 CLASS - printer.prg
*************************
function PrintEnd()

if oPrinter:lMeta
oPrinter:Preview()
else
oPrinter:End()
endif

oPrinter := nil

return nil

Muchas gracias,
Cualquier aporte sera bienvenido.
Saludos Mariano