我正在使用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
答案 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 ... def
,restore
和showpage
行才是必需的。)
绘制页面时,请做
drawBackground
...
showpage