我想裁剪一个PS
或PDF
文件的主要区域以创建一个EPS
没有空白的文件。ghostrcipt
、ps2pdf
、的命令epstools
可以从文档文件中裁剪出主图。
问题是它们只以原始形式裁剪,但我想用BoundingBox 0 0 x y
;创建一个 EPS 文件。裁剪并移动到左下角。
当我们想要在 PS 文档中插入生成的 EPS 文件时的区别。当有 时BoundingBox x0 y0 x y
,PS 文档在点 x0 y0 处插入 EPS 文件,而不是我们所在的位置。
例子:
考虑一个简单的PS
文件
%!
/Times-Roman findfont
11 scalefont setfont
72 700 moveto
(This is a test)show
如果EPS
使用类似的命令将其转换为
ps2eps test.ps test.eps
它会产生
%!PS-Adobe-2.0 EPSF-2.0
%%BoundingBox: 72 700 127 708
%%HiResBoundingBox: 72.000000 700.000000 127.000000 707.500000
%%EndComments
% EPSF created by ps2eps 1.68
%%BeginProlog
save
countdictstack
mark
newpath
/showpage {} def
/setpagedevice {pop} def
%%EndProlog
%%Page 1 1
/Times-Roman findfont
11 scalefont setfont
72 700 moveto
(This is a test)show
%%Trailer
cleartomark
countdictstack
exch sub { end } repeat
restore
%%EOF
它已在其原始坐标中进行裁剪,结果BoundingBox
为72 700 127 708
. 现在,如果尝试EPS
在文档中插入此文件PS
,它会尝试在此坐标处嵌套。
如果EPS
使用BoundingBox: 0 0 55 8
. 当然,所有绘图坐标(此处为 moveto)都必须使用此新参考进行修改。
注意:如前所述,我修复 BoundingBox 参考点的目的是使其可在 PS 文档中导入。因此,这个问题的另一个答案是:如何在 PS 文档中插入 EPS 文件,而不管它的 BoundingBox。
例如,如何将此 EPS 文件插入到200 200 255 208
PS 文档的位置。我尝试使用以下代码插入 EPS,但除非 BoundingBox 从以下位置启动,否则它将不起作用0 0
:
200 200 translate
save
/showpage {} bind def
(test.eps)run
restore