Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux 如何使用gs避免输出合并pdf文件的收缩?_Linux_Bash_Ghostscript - Fatal编程技术网

Linux 如何使用gs避免输出合并pdf文件的收缩?

Linux 如何使用gs避免输出合并pdf文件的收缩?,linux,bash,ghostscript,Linux,Bash,Ghostscript,我使用这个命令链接合并一堆ps文件,并在linux中将它们转换为pdf,但输出pdf文件的大小从第2页开始缩小,到最后一页几乎消失 gs -dBATCH -dSAFER -dNOPAUSE -q -sDEVICE=pdfwrite -sOutputFile=output.pdf input.rg=4.0*.ps 任何提示问题的起因以及解决方法?将每个ps文件分别转换为pdf i=1 ls *4.0*.ps |while read line do gs -dBATCH -dSAFER -

我使用这个命令链接合并一堆ps文件,并在linux中将它们转换为pdf,但输出pdf文件的大小从第2页开始缩小,到最后一页几乎消失

gs  -dBATCH -dSAFER -dNOPAUSE -q -sDEVICE=pdfwrite -sOutputFile=output.pdf input.rg=4.0*.ps

任何提示问题的起因以及解决方法?

将每个ps文件分别转换为pdf

i=1
ls *4.0*.ps |while read line
do
  gs  -dBATCH -dSAFER -dNOPAUSE -q -sDEVICE=pdfwrite -sOutputFile=new.${i}.pdf ${line}
  i=$(($i+1))
done
然后使用pdftkserver()将所有pdf文件合并为一个pdf文件

pdftk new.*.pdf output output.pdf

很可能每个PostScript程序都不是独立的。它可能会修改CTM,这会导致下一页继承上一页的CTM,然后进一步修改,依此类推。这首先意味着您的PostScript程序表现不好。您可以通过在每个程序之前使用“保存”,在每个程序之后使用“还原”来封装每个程序来消除此问题。我尝试了您的答案,并收到以下错误消息:错误:句柄只能是一个大写字母,命令pdftk只接受以大写或小写开头的文件名。我更新了答案,你能再试一次吗?