【问题标题】:Ghostscript | Unrecoverable Error, exit code 1鬼脚本 |不可恢复的错误,退出代码 1
【发布时间】: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


【解决方案1】:

把这个$cmd改成

$outputName = "merged_new.pdf";
$cmd = "cd ".$datadir." && gs -q -dNOPAUSE -dBATCH -sDEVICE=pdfwrite -sOutputFile=$outputName ";"

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-12
    • 1970-01-01
    • 1970-01-01
    • 2017-11-14
    相关资源
    最近更新 更多