Php GhostScript-合并来自不同目录的PDF
我必须合并多个pdf文件,并且正在使用详细的解决方案来构建一个Ghostscript命令:Php GhostScript-合并来自不同目录的PDF,php,ghostscript,Php,Ghostscript,我必须合并多个pdf文件,并且正在使用详细的解决方案来构建一个Ghostscript命令: // $output_file_name = 'test_file_complete.pdf' // $original_file = 'test_file.pdf' // $append_files = array('../toappend/1.pdf', '../toappend/2.pdf', '../toappend/3.pdf', '../toappend/4.pdf') public func
// $output_file_name = 'test_file_complete.pdf'
// $original_file = 'test_file.pdf'
// $append_files = array('../toappend/1.pdf', '../toappend/2.pdf', '../toappend/3.pdf', '../toappend/4.pdf')
public function merge_documents($output_file_name, $original_file, $append_files)
{
$cmd = "gs -q -dNOPAUSE -dBATCH -sDEVICE=pdfwrite -sOutputFile=$output_file_name ";
$cmd .= $original_file . " ";
foreach($append_files as $file) {
$cmd .= $file . " ";
}
$result = shell_exec($cmd);
}
我生成的$cmd字符串是:
gs -q -dNOPAUSE -dBATCH -sDEVICE=pdfwrite -sOutputFile=test_file_complete.pdf test_file.pdf ../toappend/1.pdf ../toappend/2.pdf ../toappend/3.pdf ../toappend/4.pdf
请注意,要合并的第一个文件在当前目录中,其他文件在另一个目录中处于较高的级别
在命令行中,当我导航到原始文件的目录并运行它时,它工作得非常好。但是,在我的函数中,它失败,并显示以下消息:
字符串错误:/undefinedfilename在中
TEMP_quote_2014_09_05_13_16_04.pdf操作数堆栈:
执行堆栈:%interp_exit.runexec2-nostringval-
-nostringval--nostringval-2%停止推送-nostringval--nostringval--nostringval-false 1%停止推送字典堆栈:-dict:1162/1684roG-
-dict:0/20G--dict:77/200L-当前分配模式为本地最后一个操作系统错误:2
如果我只使用toappend目录中的文件来运行代码,它会很好地合并这些文件。如果我使用绝对路径,这就不再是一个问题。这样做对我来说没有问题,但是对于有类似问题的人来说可能会有用