将EPS图像插入PostScript文档

时间:2012-09-03 19:21:28

标签: ghostscript postscript eps

要将外部EPS文件插入PostScript文档,系统会指示使用文本编辑器打开EPS文件,并在PostScript文件中复制/粘贴基于文本的数据。

我想知道是否有一种标准方法将外部EPS文件包含在PostScript文档中?我的意思是链接到EPS文件,因为PS可以在运行PostScript文档时捕获并读取其内容。我已经阅读了有关run命令的内容,但不知道如何使用它在主PostScript文档中包含外部EPS文件。

更新:将EPS图像插入

%!PS-Adobe-3.0

/Times-Roman findfont
14 scalefont setfont

72 700 moveto
(Thi is a text) show

72 300 translate
(1.eps)run

72 100 moveto
(Another text bellow image) show
showpage

它发送到下一页。在此示例中,第二个文本转到第2页,而不是显示在位置72 100。

3 个答案:

答案 0 :(得分:5)

由于您扩展了原始问题,我最好添加另一个答案......

首先,不要在第一行使用%!PS-Adobe-3.0你的文件符合某个标准,它是不做)。仅使用%!PS(或甚至仅%!)。

第二次,您必须确保您的1.eps文件确实是有效 EPS。由于您未包含1.eps,我无法检查此内容。

第三次,不,它不是导致新页面被创建的translate语句 - 这个翻译本身在语法上是正常的(取决于你想要达到的效果)。

第四,您的EPS不应使用showpage运算符,否则我的其他答案中给出的那条简单行将无法自行运行。如果EPS本身弹出showpage,您需要在之前将showpage运算符重新定义为no-op ,然后运行EPS,并恢复原始{{1}运行后的语义:

showpage

第五,第二个文字不一定会出现低于 EPS。根据EPS的实际尺寸,它可能看起来像是在EPS上打印出来的。空间。

第六,第一个文字可能会被EPS'笔画和填充(取决于EPS的实际图纸尺寸),因此可能看起来根本不存在。

第七,真正的PostScript大师(我不是一个),可能会找到 Zeroth Eighth Nineth 第十个甚至更多关于此主题的项目......; - )

答案 1 :(得分:3)

假设您的EPS文件与主PostScript文件位于同一目录中,并称为my.eps。然后,您可以将此行放入PostScript文件的代码中:

(my.eps) run

你必须确定这条线的确切位置才能产生想要的效果。可能就在showpage运算符开始之前就好了。

答案 2 :(得分:3)

为了帮助您更好地了解EPS,请运行此命令(根据您自己的情况调整路径):

sudo gs                                                  \
  -o /opt/local/share/ghostscript/9.05/examples/tigr.eps \
  -sDEVICE=epswrite                                      \
   /opt/local/share/ghostscript/9.05/examples/tiger.eps

然后考虑这个名为so#12253041.ps的示例PostScript文件:

%!

/Times-Roman findfont 14 scalefont setfont

% Page 1
72 680 moveto (This is a text on page 1) show

72 200 translate
save
.5 .5 scale
  /showpage {} bind def
  (/opt/local/share/ghostscript/9.05/examples/tigr.eps) run
2 2 scale
restore

72 100 moveto (Another text \(across image\)) show
showpage


% Page 2
72 680 moveto (This is a text on page 3...) show

.5 .5 scale
72 200 translate
save
  /showpage {} bind def
  (/opt/local/share/ghostscript/9.05/examples/tigr.eps) run
restore
2 2 scale

72 100 moveto
(Another text \(across image\)) show
showpage


% Page 3
72 680 moveto (This is more text on page 3. But it is not visible... Why?) show

.25 .25 scale
72 200 translate
save
  /showpage {} bind def
  (/opt/local/share/ghostscript/9.05/examples/tiger.eps) run
restore
4 4 scale

72 100 moveto
(Another text \(across image\)) show
showpage


% Page 4 (empty)
showpage

并运行:

gs -o so#12253041.pdf -sDEVICE=pdfwrite so#12253041.ps

过去

  1. ...试着了解PS的每一行发生了什么;
  2. ...考虑每个页面代码的差异(也是运营商的顺序);
  3. ...还要查看两个EPS文件之间的差异。