nRECCOUNTCONVERT=ALLTRIM(STR(RECCOUNT())) cRECCOUNTCONVERT=' of '+ALLTRIM(STR(RECCOUNT())) Local loMyObject loMyObject = CreateObject("MyObject") _Screen.AddObject("oMyHandler", "MyHandler") loMyObject.Mainprocess() Return Define Class MyHandler as Custom Procedure DisplayProgress Lparameters lnPercent, lcMessage _VFP.StatusBar = " (" + "%)" EndProc EndDefine DEFINE CLASS MyObject AS Custom PROCEDURE Mainprocess Local Parallel as Parallel Parallel = NewObject("Parallel", "ParallelFox.vcx") Parallel.SetWorkerCount(Parallel.CPUCount) Parallel.StartWorkers() *Parallel.BindEvent("UpdateProgress", _Screen.oMyHandler, "DisplayProgress") SCAN iFilename=ALLTRIM(Fullpath) oFilename=ALLTRIM(Newpath) RCNON=RCNO *Parallel.do("PS2PDF",'convert.prg',,iFilename,oFilename) Parallel.CallMethod("ps2pdf", This.Class, This.ClassLibrary,,,iFilename,oFilename,RCNON) ENDSCAN SCAN oFilename=ALLTRIM(Fullpath) iFilename=ALLTRIM(Newpath) RCNON=RCNO Parallel.CallMethod("Pdf2Ps", This.Class, This.ClassLibrary,,,oFilename,iFilename,RCNON) ENDSCAN ENDPROC ** Convert ps files to PDF Using ps2PDF.Dll PROCEDURE ps2PDF PARAMETERS iFilename,oFilename,RCNON DECLARE INTEGER _apCreate@0 IN ps2pdf.dll AS apCreate DECLARE _apClose@4 IN ps2pdf.dll AS apClose INTEGER id DECLARE INTEGER _apConvert@4 IN ps2pdf.dll AS apConvert INTEGER id DECLARE INTEGER _apSetFunc@24 IN ps2pdf.dll AS apSetFunc INTEGER id, INTEGER code, INTEGER nOptVal1, INTEGER nOptVal2, STRING pOptVal1, STRING pOptVal2 DECLARE INTEGER _apGetFunc@24 IN ps2pdf.dll AS apGetFunc INTEGER id, INTEGER code, INTEGER nOptVal1, INTEGER nOptVal2, STRING pOptVal1, STRING pOptVal2 #define AP_Set_Output 3000 #define AP_Set_Input 3001 id=apCreate() IF (id # 0) apSetFunc(id, AP_Set_Input , 0, 0,iFilename, 0) &&input file. apSetFunc(id, AP_Set_Output, 0, 0,oFilename, 0) &&output format and file. apConvert(id) apClose(id) Sys(2335, 1) && disable unattended mode, allow UI WAIT WINDOW 'Converting to PDF..'+ALLTRIM(STR(RCNON)) NOWAIT *Worker.UpdateProgress(RECNO(), "Converting..") ENDIF ENDPROC PROCEDURE PDF2PS PARAMETERS oFilename,iFilename,RCNON Declare INTEGER VeryPDF_PDF2Vector in pdf2vec.dll String strCommandLine Strcmd= 'pdf2vec -$ XXXXXXXXXXXXXXXX '+CHR(34)+iFilename+CHR(34)+" "+CHR(34)+oFilename+CHR(34) nRet = VeryPDF_PDF2Vector(strcmd) Sys(2335, 1) && disable unattended mode, allow UI WAIT WINDOW 'Converting to PS..'+ALLTRIM(STR(RCNON)) NOWAIT RETURN ENDPROC ENDDEFINE Parallel.StopWorkers()