【发布时间】:2012-10-01 23:41:25
【问题描述】:
我想裁剪PS 或PDF 文件的主要区域以创建一个没有空白的EPS 文件。 ghostrcipt、ps2pdf、epstools命令可以将主图从文档文件中裁剪出来。
问题是它们只以原始形式裁剪,但我想用BoundingBox 0 0 x y 创建一个EPS文件;裁剪并移动到左下角。
当我们想要将生成的 EPS 文件插入到 PS 文档中时的区别。当有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。现在如果尝试在PS 文档中插入这个EPS 文件,它会尝试在这个坐标处嵌套。
如果使用BoundingBox: 0 0 55 8 创建一个EPS 文件将会很有用。当然,所有绘图坐标(此处为 moveto)都必须使用此新参考进行修改。
注意: 如前所述,我修复 BoundingBox 参考点的目的是使其可在 PS 文档中导入。因此,这个问题的另一个答案是:如何在 PS 文档中插入 EPS 文件,而不考虑其边界框。
例如,如何将此 EPS 文件插入到 PS 文档的位置 200 200 255 208。我尝试使用以下代码插入 EPS,但除非 BoundingBox 从 0 0 开始,否则它将不起作用:
200 200 translate
save
/showpage {} bind def
(test.eps)run
restore
【问题讨论】:
-
请发布(链接到)您希望修改的示例 EPS 文件。
-
@KurtPfeifle 情况很一般,但我通过示例进一步描述了我的问题。
标签: pdf ghostscript postscript eps