【问题标题】:Embed once and reference many times an EPS file in postscript在 postscript 中嵌入一次并多次引用 EPS 文件
【发布时间】:2013-05-23 06:06:39
【问题描述】:

我正在使用 Apache FOP 创建一个 10000 页的 postscript 文件,每页只包含一个人的姓名。我得到了一个大的 (4MB) EPS 文件,它应该被添加到每一页的背景中。我应该创建一个用于打印的输出 postscript 文件。虽然我可以将 EPS 嵌入到我的后记的每一页中(如 EPSF_SPEC [1] 中所述),但我想嵌入一次并引用它。否则,为每个输出页面添加 4MB,最终输出的 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)?

【问题讨论】:

  • 是的,这实际上是每个打印作业的 PostScript 文件。每一张通常在 10000 到 20000 页之间,包含数千张发票或报表。
  • 似乎不能开玩笑,但这个问题让我想起了巴西的 Buttle/Tuttle。 ...注意你的 b 和 t!

标签: postscript eps


【解决方案1】:

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

4.7 表单 表单是对要绘制多个的任意图形、文本或采样图像的自包含描述 时间,无论是在几页上,还是在同一页的多个位置 页。表单的外观由 PostScript 过程描述 调用图形运算符。表单的语言支持是一种 LanguageLevel 2 功能。

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

【讨论】:

  • 当 JPEG 图像被添加为背景并且 optimize-resources=true 时,FOP 已经使用表单。所以我想我可以用它作为一个例子。谢谢你的回答!
【解决方案2】:

在文件的开头,做

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

save/showpage ... defrestore 行仅在您的 EPS 中包含 showpage 时才需要,他们经常这样做。)

当你画一个页面时,做

drawBackground
...
showpage

【讨论】:

    猜你喜欢
    • 2013-07-14
    • 1970-01-01
    • 1970-01-01
    • 2019-07-13
    • 2011-06-21
    • 2019-06-16
    • 2021-08-18
    • 1970-01-01
    相关资源
    最近更新 更多