我正在使用Apache FOP创建10000页的后记文件,每页仅包含一个人的名字。我得到了一个大(4MB)的EPS文件,该文件应添加到每页的背景中。我应该创建一个输出后记文件以进行打印。尽管我可以将EPS嵌入到我的脚本的每一页中(如EPSF_SPEC [1]中所述),但是我想将其嵌入一次并引用它。否则,为每个输出页面添加4MB,并且最终的输出脚本很大。可以在附言中这样做吗?如果是,怎么办?
我已经看过[2]。我也将它们创建为PDF,并使用iText一次添加了背景。尺寸很小,但是当我使用Ghostscript将其转换为PS时,尺寸太大。最后,即使使用optimize-resources = true进行配置,FOP也只能内联添加EPS文件。
[1] http://partners.adobe.com/public/developer/en/ps/5002.EPSF_Spec.pdf
您可以将EPS定义为表单,然后根据需要执行表单。请参见《 PostScript语言参考手册》的第4.7节:
4.7表单表单是对要绘制成多个的任意图形,文本或样本图像的独立描述。时间,在同一页面上的多个页面或多个位置页。表单的外观由PostScript过程描述调用图形运算符。表格的语言支持是LanguageLevel 2功能。
[请注意,Ghostscript pswrite / ps2write设备不支持将PDF表单作为PostScript表单处理,因此请多次嵌入olutput。我的假设是这就是为什么您的方法[2]不起作用的原因。
在文件开头,请执行
/drawBackground {
save
/showpage {} bind def
<contents of background.eps>
restore
} def
((仅当您的EPS包含save
时,才需要/showpage ... def
,restore
和showpage
行,它们经常这样做。)
绘制页面时,请执行
drawBackground
...
showpage