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 ENDFUNCI dont know why it doesnt create a color PDF file.