【发布时间】:2018-09-11 17:53:13
【问题描述】:
我有一个用来合并 PDF 的 shell 脚本,在今天之前,它似乎运行良好。
现在,当我跑步时,我收到以下消息: GPL Ghostscript 9.06:不可恢复的错误,退出代码 1
它会生成一个空白 PDF,而不是合并的 PDF。这是我的代码:
<?php
$pdf1 = "file_1.pdf";
$pdf2 = "file_2.pdf";
$fileArray= array($pdf1,$pdf2);
$datadir = "/usr/pdf_merge/merged";
$outputName = $datadir."merged_new.pdf";
$cmd = "gs -q -dNOPAUSE -dBATCH -sDEVICE=pdfwrite -sOutputFile=$outputName ";
//Add each pdf file to the end of the command
foreach($fileArray as $file) {
$cmd .= $file." ";
}
$result = shell_exec($cmd);
有什么想法可能是错的吗?
我正在使用 Debian 运行 Apache。
谢谢
【问题讨论】:
-
你合并了哪些文件?文件中的任何文件是否包含空格?
-
$datadir结尾不是缺少斜线吗?尝试使用 realpath 函数作为输出路径。 -
@DiogoAlves 你说得对,它确实需要一个斜线,但这并没有解决整体问题
-
首先(很抱歉一直重复这一点)您没有“合并”PDF 文件。您正在创建一个新的 PDF 文件,该文件应该与输入内容相同。 PDF 文件的内部内容将与其输入不同。你还没有提供文件,所以我们不能自己尝试,你还没有提供 Ghostscript 的反向通道输出,并且你正在使用 -q 这减少了后面的信息量渠道会放弃,使其不那么有用。最后,您使用的是 6 岁的 Ghostscript 版本,您需要升级。
-
如果您提供文件,我会看一下,反向通道记录也会有所帮助。
标签: php apache debian ghostscript