奇怪的问题,ghostscript 和 pdf 文件
Posted
技术标签:
【中文标题】奇怪的问题,ghostscript 和 pdf 文件【英文标题】:Weird problem, with ghostscript and pdf files 【发布时间】:2010-02-09 14:10:44 【问题描述】:我正在使用 ghostscript 从 postscript 文件创建 pdf 文件。我的 PS 文件没有方向说明,所以当我想创建横向 pdf 文件时,我使用 ghostscript 来旋转页面。问题是,ghostscript 只旋转第一页,当我的 pdf 文件超过 1 页时,其他文件没有正确旋转。这是我正在使用的命令:
cat $psinput | gs -sPAPERSIZE=a4 -sDEVICE=pdfwrite -sOuputFile="/tmp/pdf" \
-dAutoRotatePages="/None" -c "<< /Orientation 3 >> setpagedevice" \
90 rotate 0 -595 translate -dNOPAUSE -dEPSCrop -f - -c -quit
有人知道如何纠正这个问题吗?
【问题讨论】:
@kofucii:-dAutoRotatePages="/None"
可以不带引号:-dAutoRotatePages=/None
。 -sOuputFile=/tmp/pdf
也一样。不过,不确定这是否会导致您悲伤或无害。 -- 但是,-c
-construct 绝对是错误放置和错误引用的! 它应该在最后,就在 -f -
输入数据语句之前,如下所示:... -dNOPAUSE -dEPSCrop -c "<</Orientation 3>> setpagedevice 90 rotate 0 -595 translate" -f - -c quit
【参考方案1】:
没有看到您的实际$psinput
,很难给出明确的建议。您的 $psinput,通过 stdin 到 Ghostscript,可能包含多个 PS 文件...您是否尝试过使用这些选项之一
-dOrient1=true
-dOrient1=false
在你的命令行中?另外,在我看来,您应该将 90 rotate 0 -595 translate 命令放在与-c
一起使用的引号内,然后定位输入 (-f - ) 到处理的最后:
-c "<</Orientation 3>> setpagedevice 90 rotate 0 -595 translate" -f - -c quit
你也试过用
-c ".setpdfwrite <<//AutoRotatePages /PageByPage>> setdistillerparams"
或
-c ".setpdfwrite <<//AutoRotatePages /All>> setdistillerparams"
或
-c ".setpdfwrite <<//AutoRotatePages /None>> setdistillerparams"
在您的命令行上(有或没有您的原始旋转代码)?
【讨论】:
【参考方案2】:如果您一定不能使用 ghostscript 进行旋转,您可以使用 pdftk 或 impose 代替。
【讨论】:
以上是关于奇怪的问题,ghostscript 和 pdf 文件的主要内容,如果未能解决你的问题,请参考以下文章
Ghostscript - 错误的 CMYK 颜色转换 - 100% 黄色转换为 98% 黄色?