首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >合并两个postscripts时,ghostscript不保留页面级别参数

合并两个postscripts时,ghostscript不保留页面级别参数
EN

Stack Overflow用户
提问于 2020-10-03 06:08:57
回答 1查看 78关注 0票数 1

我已经使用ghostscript将pdf文件转换为postscript,在转换过程中,我已经传递了双工选项的页面级参数,如下所示。

代码语言:javascript
运行
复制
gswin32c.exe -q -dSAFER -dNOPAUSE -dBATCH -sDEVICE=output.ps \
  -c "<</PSPageOptions [ (<</Duplex false>> setpagedevice) 
  (<</Duplex true>> setpagedevice) (<</Duplex true>> setpagedevice) ] 
  /LockDistillerParams true>> setdistillerparams" -f input.pdf

有关上述命令,请参阅解决方案链接:https://stackoverflow.com/a/64128881/13696415

现在,我已经添加了2个pdf文件的双工参数,并转换为2个单独的postscript,问题是,当我合并这些pdf和Ghostscript时,它丢失了我在转换为ps时传递的页面级参数。我尝试了下面的建议答案来合并postscript。https://stackoverflow.com/a/3445325/13696415为什么在合并时丢失了附加参数?合并时如何保留页级参数?谁来帮帮忙。

EN

回答 1

Stack Overflow用户

发布于 2020-10-04 22:11:34

合并2个postscript文件时,我可以确认setpagedevice的%%BeginPageSetup条目丢失。即使/LockDistillerParams也无法保存设置。仅使用ghostscript ps2write设备再次运行postscript文件就会导致输出丢弃以前的设置。我怀疑ghostscript每次都会重写它们,如果缺少/PSPageOptions来重做它们。我不知道在合并时保存设置的方法。

我已经尝试了另外两种技术,都取得了不错的效果。

(1)合并2个postscript文件,然后使用ps2write设备将所需设置写入合并后的postscript文件。

代码语言:javascript
运行
复制
gs -dBATCH -dNOPAUSE -sDEVICE=ps2write -sOutputFile=merged.ps -f file1.pdf file2.pdf
gs -dBATCH -dNOPAUSE -sDEVICE=ps2write -sOutputFile=merged-out.ps -c ' << /PSPageOptions [ (<</Duplex false>> setpagedevice) (<</Duplex true>> setpagedevice) (<</Duplex true>> setpagedevice) ] /LockDistillerParams true >> setdistillerparams ' -f merged.ps

(2)使用ghostscript通过ps2write设备合并这两个pdf文件,并在一个操作中包含/PSPageOptions setdistillerparams。我发现这只适用于某些pdf文件。例如,如果pdf文件是用我的Firefox使用的Firefox图形库生成的,那么即使用ghostscript重新蒸馏,这也不起作用。

我在这里测试的是两个12页的行为良好的pdf文件。结果根据需要在第13页显示% page3字符串。字符串可以根据需要更改为使用setpagedevice:

代码语言:javascript
运行
复制
gs -dBATCH -dNOPAUSE -sDEVICE=ps2write -sOutputFile=file1+2.ps -c '<< /PSPageOptions [(% page1)(% page2)(% page3)(% page4)(% page5)] /LockDistillerParams true >>setdistillerparams' -f file1.pdf file2.pdf

附注:请编辑您的原始帖子以显示正确的sDEVICE标注。根据用户的不同,可以省略反斜杠。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64178779

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档