Word.Application.ActiveDocument.ExportAsFixedFormat(tcTargetFile, 17, .F.) lRet=This.WaitForFile(tcTargetFile) *=================================* * PROCEDURE WaitForFile(tcFile) - wait for the file to twice open and have the same length *=================================* Procedure WaitForFile(tcFile) Local lnUntil, lnPrevLen, lnCurLen, h, l, lnInterval *-- give it 30 seconds into the future lnUntil=Seconds()+30 lnPrevLen=-2 lnCurLen=-1 lnInterval=500 *-- assume that whatever writes to a file will do so at least twice a second: Do While lnPrevLen#lnCurLen And Seconds()<lnUntil This.ASleep(lnInterval) h=Fopen(tcFile,10) If h>0 *-- zero length doesn't count, still open by creator lnPrevLen=Iif(lnCurLen>0, lnCurLen, lnPrevLen) lnCurLen=Fseek(h,0,2) Fclose(h) lnInterval=100 && once it exists, check more often Endif Enddo l=lnPrevLen=lnCurLen If Seconds()>=lnUntil This.oLog.Log(Textmerge([Waiting for file "<<tcfile>>" past <<DTOT(DATE())+lnuntil>>]), 3) Endif If Not l This.oLog.Log(Textmerge([Waiting for file "<<tcFile>>", current length <<lncurlen>>, previous <<lnprevlen>>.])) Endif Return lUpdate: now I see you said "any printable file"... ah, this is only for what you can open in Word.