>REPORT FORM c:\test\salessum.frx NOCONSOLE TO FILE c:\test\salessum.ps >X = "c:\test\salessum.ps" >Y = "c:\test\salessum.pdf" >= frx_ps2pdf(X,Y) > >FUNCTION frx_ps2pdf >DECLARE LONG gsapi_init_with_args IN gsdll32.DLL ; > LONG lngGSInstance, LONG lngArgumentCount, ; > LONG lngArguments >DECLARE LONG gsapi_exit IN gsdll32.DLL ; > LONG lngGSInstance > >SET PROCEDURE TO clsheap ADDITIVE >= ConvertFile(cFile_in,cFile_out) >RETURN >*------------------------------------------------------- > >FUNCTION ConvertFile(tcFileIn, tcFileOut) >DIMENSION laArgs[11] >laArgs[1] = "ps2pdf" && >laArgs[2] = "-dNOPAUSE" >laArgs[3] = "-dBATCH" >laArgs[4] = "-dSAFER" >laArgs[5] = "-r300" >laArgs[6] = "-sDEVICE=pdfwrite" >laArgs[7] = "-sOutputFile=" + tcFileOut >laArgs[8] = "-c" >laArgs[9] = ".setpdfwrite" >laArgs[10] = "-f" >laArgs[11] = tcFileIn >RETURN CallGS(@laArgs) >*------------------------------------------------------- > >FUNCTION CallGS(taArgs) >loHeap = CREATEOBJECT('Heap') && class HEAP de ED Raugh >lnGSInstanceHandle = 0 >lnCallerHandle = 0 >* Load Ghostscript and get the instance handle >lnReturn = gsapi_new_instance(@lnGSInstanceHandle, @lnCallerHandle) >IF (lnReturn < 0) > loHeap = NULL > RETURN .F. >ENDIF >lnElementCount = ALEN(taArgs) >lcPtrArgs = "" >FOR lnCounter = 1 TO lnElementCount > lcPtrArgs = lcPtrArgs + NumToLONG(loHeap.AllocString(taArgs[lnCounter])) >ENDFOR >lnPtr = loHeap.AllocBlob(lcPtrArgs) > >lnReturn = gsapi_init_with_args(lnGSInstanceHandle, lnElementCount, lnPtr) > >* Stop the Ghostscript interpreter >gsapi_exit (lnGSInstanceHandle) >* release the Ghostscript instance handle' >gsapi_delete_instance (lnGSInstanceHandle) >loHeap = NULL >RETURN lnReturn >ENDFUNC >>