您是否知道EPS文件是如何使用假设? EPS文件的重点在于它被用作应用程序的“黑匣子”。
当应用程序创建PostScript程序时,它可以在最终输出中包含EPS,但不知道它的大小以外的任何内容。因此,当生成PostScript时,应用程序知道EPS的大小,并修改CTM以根据需要缩放内容,并将其定位到页面上。
如果您想使用多个EPS文件,那么您必须执行相同的操作,您必须修改每个EPS文件之间的CTM,以便将其放置在所需页面上的大小和位置。如果你不这样做,那么它们都会停留在当前位置并在页面上缩放。就像你说的那样,他们最终会彼此重叠。
现在EPS文件的全部意义在于,它可以通过编程设置,但你有写程序做:-)
首先,你需要从EPS解析包围盒文件。如果EPS正确符合,这将是%% BoundingBox和可选的%% HiResBondingBox注释。
有了这些信息,您需要确定您正在使用的媒体大小和/或如何缩放EPS文件以适合所需媒体。
然后,您开始一个新的PostScirpt程序,首先请求特定的介质尺寸,然后使用scale
和translate
运算符移动到介质上的正确位置,然后执行第一个EPS文件(通过包含内容,或使用run
运营商)。
为每个EPS文件重复该过程。
使用showpage
操作者
假设你已经使用的Ghostscript的eps2write设备最后写入新的内容,所得到的文件将是一个新EPS文件体现了个体EPS文件,缩放并放置作为内容你希望。
因此,例如,(所有值都是假想的示例数据):
%!
<< /PageSize [612 792] >> setpagedevice
gsave
306 396 moveto
0.5 0.5 scale
(example1.eps) run
grestore
gsave
306 0 moveto
1.5 1.5 scale
(example2.eps) run
grestore
gsave
0 396 moveto
(example3.eps) run
grestore
gsave
0 0 moveto
0.66 0.66 scale
(example4.eps) run
grestore
showpage
谢谢。我可以通过使用每个eps的-c开关一起使用翻译来得到它的工作。 –