我有两个eps文件
a.eps
b.eps
我需要读取它们的内容,并创建一个包含a和b的新a.eps文件。
1.定位(x,y)
2.scaling
3.rotating
例如:如果
a.eps含量为X
b.eps含量为O
output.eps含量X
我正在尝试Graphics2D库,但是读取一个EPS文件和提取形状变得很有挑战性。
发布于 2019-05-23 08:08:29
如果坚持使用PostScript,这是微不足道的。EPS文件是“封装”的,也就是说它们是完全独立的。EPS的意图是,您可以将EPS文件直接插入到一个PostScript程序中,只知道它的大小和形状。
您所需要做的就是更改每个文件之间的CTM,以便它们出现在正确的位置(并在组合文件周围添加EPS文件的锅炉板)。PostScript (EPS是PostScript的一个子集)有一组丰富的操作人员。
因此,例如,要将EPS1和EPS2组合起来,并从组合中生成一个新的EPS,您可以这样做:
%!PS-Adobe-2.0 EPSF-1.2
%%Creator:me, myself-
%%Title:combined EPS
%%CreationDate:23/5/19 9:32 AM
%%DocumentFonts:Helvetica-Bold
%%BoundingBox:0 0 612 792
%%EndComments
save
0 0 moveto
0.5 scale
...
... insert contents of EPS1 here
...
restore
save
306 0 moveto
0.5 scale
...
... insert contents of EPS1 here
...
restore
%%EOF在媒体的左下角画EPS1,缩小50%,然后在底部画EPS2,从左边画306个点(4.25英寸),再缩小50%。
您的必须得到最终EPS的BoundingBox注释正确,这对于任何导入EPS的应用程序都是至关重要的。
如果你真的想要一个EPS文件,或者不想自己做所有的计算和锅炉板,那么你可以使用Ghostscript的eps2write设备来提供帮助。您仍然需要编写PostScript代码来定位EPS文件,但是程序可以更简单。以上面的例子为例:
%!
save
0 0 moveto
0.5 scale
(/disk/path/EPS1.eps) run
restore
save
306 0 moveto
0.5 scale
(/disk/path/EPS2.eps) run
restore
showpage将其保存为一个方便的文件,例如input.ps,然后执行:
gs -sDEVICE=eps2write -sOutputFile=combined.eps input.ps结果应该是一个新的单一EPS文件,包含两个原始的EPS文件的内容,所有的BoundingBox和其他样板照顾您。
https://stackoverflow.com/questions/56265133
复制相似问题