EMF - Enhanced meta file no se borran
Posted: Mon Aug 06, 2018 10:20 pm
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
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