ghost脚本是否需要一些时间才能在给定位置复制转换后的文件

问题描述:

我正在使用ghost脚本将文件转换为以下版本。ghost脚本是否需要一些时间才能在给定位置复制转换后的文件

shell_exec('gs -sDEVICE=pdfwrite -dCompatibilityLevel=1.4 -dNOPAUSE -dQUIET -dBATCH -sOutputFile=' . $strTempConvertedPdfFilePath . ' ' . $strTempFilePath); 

(我假设上面的命令是同步的,下一行只有在完成幽灵脚本执行之后执行。)

只是afert这一点,如果转换后的文件存在于路径我使用$ strTempConvertedPdfFilePath位置。

它有时会工作并返回true,有时候不会,并且只需刷新页面就可以为相同的文件和路径返回false。

我怀疑幽灵脚本需要一些时间来复制转换后的文件在给定的位置,并由此file_exists间歇地返回true/false。

请让我知道是否有人遇到过类似问题并有解决办法。

Ghostscript(或更具体的pdfwrite设备)不需要任何时间'复制'该文件,因为它不复制该文件。

打开最终目标文件(-sOutputFile),在卸载设备之前写入内容并关闭文件,并退出Ghostscript并将控制权返回给shell。

我不是shell编程或PHP的专家,但我会倾向于认为shell_exec在子进程退出之前将控制权返回给程序。或者,操作系统需要一些时间来检测目标文件的存在或有效性。显而易见的解决方案是在测试文件之前坚持一小段延迟。

+0

谢谢Ken澄清文件写入过程。我也在考虑添加延迟。但不知道多少是足够的,因为我认为它是输出文件写入时间,它可以根据文件大小而变化。现在,如果你的情况是这样,那么总是需要几乎相同的时间。 – RajeshK