1

我正在使用 Apache FOP 创建一个 10000 页的 postscript 文件,每页仅包含一个人的姓名。我得到了一个大的 (4MB) EPS 文件,它应该被添加到每一页的背景中。我应该创建一个用于打印的输出 postscript 文件。虽然我可以将 EPS 嵌入到我的后记的每一页中(如 EPSF_SPEC [1] 中所述),但我想嵌入一次并引用它。否则,为每个输出页面添加 4MB,最终输出的 postscript 很大。可以在后记中做到这一点吗?如果是怎么办?

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

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

[2]覆盖两个postscript文件(命令行方式)?

4

2 回答 2

1

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

4.7 表单 表单是对任意图形、文本或要在多个页面或同一页面的多个位置多次绘制的采样图像的自包含描述。表单的外观由调用图形操作符的 PostScript 过程描述。表单的语言支持是 LanguageLevel 2 功能。

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

于 2013-05-23T07:25:45.383 回答
0

在文件的开头,执行

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

(只有当您的 EPS 中有 a 时,才需要使用save/showpage ... defrestoreshowpage,他们经常这样做。)

绘制页面时,请执行

drawBackground
...
showpage
于 2019-10-02T03:58:20.673 回答