嵌入一​​次并在postscript中多次引用EPS文件

时间:2013-05-23 06:06:39

标签: postscript eps

我正在使用Apache FOP创建一个10000页的postscript文件,每页只包含一个人的名字。我得到一个大的(4MB)EPS文件,应该添加到每个页面的背景中。我应该创建一个单独的输出postscript文件进行打印。虽然我可以在我的postscript的每一页中嵌入EPS(如EPSF_SPEC [1]中所述),但我想嵌入一次并引用它。否则,为每个输出页面添加4MB,最终输出postscript是巨大的。是否可以在postscript中执行此操作?如果是的话怎么样?

我已经看了[2]。我还将它们创建为PDF并使用iText添加了一次背景。 尺寸很小但是当我使用Ghostscript将其转换为PS时,尺寸太大了。最后,FOP只能内联添加EPS文件,即使配置了optimize-resources = true。

[1] http://partners.adobe.com/public/developer/en/ps/5002.EPSF_Spec.pdf

[2] Overlay two postscript files (command line approach)?

2 个答案:

答案 0 :(得分:1)

您可以将EPS定义为表单,然后根据需要执行表单。请参阅PostScript语言参考手册的第4.7节:

  

4.7表单表单是要绘制多个的任意图形,文本或采样图像的独立描述   时间,可以在几页上,也可以在同一页上的几个位置上   页。表单的外观由PostScript过程描述   调用图形操作符。表格的语言支持是   LanguageLevel 2功能。

请注意,Ghostscript pswrite / ps2write设备不支持将PDF表单作为PostScript表单处理,因此多次嵌入olutput。我的假设是,这就是你的方法[2]不起作用的原因。

答案 1 :(得分:0)

在文件的开头,执行

/drawBackground {
    save
    /showpage {} bind def
    <contents of background.eps>
    restore
} def

(只有在您的EPS带有save的情况下,/showpage ... defrestoreshowpage行才是必需的。)

绘制页面时,请做

drawBackground
...
showpage