双面后记 - 强制新页面

Posted

技术标签:

【中文标题】双面后记 - 强制新页面【英文标题】:Duplex Postscript - Force new page 【发布时间】:2010-11-14 05:51:20 【问题描述】:

有没有一种简单的方法可以在不插入空白页的情况下将 postscript 页面强制到新的物理页面上?

例如假设我有一个包含 10 个附言页的 PS 文档,需要打印到不同的文档包中:

1 - 物理页面 1 正面

2 - 物理页 1 背面

3 - 物理页面 2

4 - 物理页面 3 正面

5 - 物理页 3 背面

6 - 物理页面 4 正面

7 - 物理页面 5

8 - 物理页 6 正面

9 - 物理页面 7 正面

10 - 物理第 7 页背面

我可以将整个文件设置为双面打印,并在第 3、6、7 和 8 页之后插入虚拟页面,但我想避免这种情况,因为我们的打印机按每次展示而不是按物理页面收费。

我希望有一个简单的 PS 语法对应于“强制到首页”。

【问题讨论】:

【参考方案1】:

尝试关闭双面打印并立即重新打开,否则会插入空白页。

<< /Duplex false >> setpagedevice
<< /Duplex true >> setpagedevice

setpagedevice 隐式调用 erasepageinitgraphics(所以在相关的 showpage 之后使用它),但是 PostScript 语言参考手册说:

在设备激活时,双面设备总是在一张新的介质上打印第一页;停用时,如果仅在一面打印,它会自动传送最后一张介质。

所以,如果这可行,它应该保存showpage,但仍能正确弹出页面。

【讨论】:

【参考方案2】:

这可能有点牵强,但您可以更改showpage 的行为,然后编写任何您想要的程序。

% before the first -showpage-

/pageCount 0 def

% redefinition of 'showpage'
/showpage 

    showpage
    /pageCount pageCount 1 add def

    % add page checking here, and whatever logic you want
    % just call another showpage to create an empty one

bind def 
% 'bind' keeps old showpage unaltered, avoiding recursion

当无法禁用双工时,这是一个选项,正如 dreamlax 在他的回答中所显示的那样。

【讨论】:

以上是关于双面后记 - 强制新页面的主要内容,如果未能解决你的问题,请参考以下文章

IE 页面被强制进入 IE7 文档模式

Vue组件强制刷新的解决方案

Firebase 托管 - 强制浏览器在新部署时重置缓存?

.htaccess:在所有页面上强制 www,在一个页面上强制 https,在所有其他页面上强制 http

D3 sankey图 - 强制节点位置

在 ASP.NET Core 中首次登录时强制重定向到另一个页面