鬼脚本 |不可恢复的错误,退出代码 1
Posted
技术标签:
【中文标题】鬼脚本 |不可恢复的错误,退出代码 1【英文标题】:Ghostscript | Unrecoverable Error, exit code 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 版本,您需要升级。
如果您提供文件,我会看一下,反向通道记录也会有所帮助。
【参考方案1】:
把这个$cmd
改成
$outputName = "merged_new.pdf";
$cmd = "cd ".$datadir." && gs -q -dNOPAUSE -dBATCH -sDEVICE=pdfwrite -sOutputFile=$outputName ";"
【讨论】:
以上是关于鬼脚本 |不可恢复的错误,退出代码 1的主要内容,如果未能解决你的问题,请参考以下文章
MSVC2013:如何避免使用错误的预构建脚本中止构建过程(错误 MSB3073: :VCEnd" 退出,代码 -1)