gpt4 book ai didi

pdf - 如何调整EPS文件的BoundingBox?

转载 作者:行者123 更新时间:2023-12-04 18:46:54 24 4
gpt4 key购买 nike

我想裁剪 PS 的主要区域或 PDF文件以创建 EPS没有空格的文件。 ghostrcipt的命令, ps2pdf , epstools可以裁剪出文档文件的主图。

问题是它们只以原始形式裁剪,但我想用 BoundingBox 0 0 x y 创建一个 EPS 文件。 ;裁剪并移动到左下角。

当我们想要在 PS 文档中插入生成的 EPS 文件时的区别 i。当有 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

它已被裁剪为其原始坐标,结果 BoundingBox72 700 127 708 .现在,如果尝试插入此 EPS PS 中的文件文档,它试图在这个坐标上嵌套。

如果创建 EPS 会很有用文件与 BoundingBox: 0 0 55 8 .当然,所有绘图坐标(此处为 moveto)都必须使用此新引用进行修改。

注意:如前所述,我修复 BoundingBox 引用点的目的是使其可在 PS 文档中导入。因此,这个问题的另一个答案是:如何在 PS 文档中插入 EPS 文件而不管其 BoundingBox。

例如,如何在位置 200 200 255 208 插入此 EPS 文件一个PS文档。我尝试使用以下代码插入 EPS,但除非 BoundingBox 从 0 0 开始,否则它将无法工作:
200 200 translate 
save
/showpage {} bind def
(test.eps)run
restore

最佳答案

要将其转换为您想要的 BoundingBox 样式的 EPS,我将使用 Ghostscript 并让 EPS 进行往返:EPS => PDF => EPS。

诀窍是通过添加 -dEPSCrop 来确保 PDF 使用与 BoundingBox 宽度和高度相同的媒体尺寸。参数。

这两个命令创建您的“没有空格的 EPS”:

第一步:将 EPS 转换为 PDF:

gs                   \
-o so#12682621.pdf \
-sDEVICE=pdfwrite \
-dEPSCrop \
so#12682621.eps

第二步:将 PDF 转换回 EPS:
gs                                \
-o so#12682621.roundtripped.eps \
-sDEVICE=epswrite \
so#12682621.pdf

要测试生成的 EPS 的保真度,您可以使用 ImageMagick 的 compare以红色像素显示差异,作为 PNG 文件:
 compare                      \
-density 600 \
12682621.roundtripped.eps \
12682621.eps \
-compose src \
12682621.png

结果是: enter image description here

您会注意到存在一些像素差异。它们是由 %%HiResBoundingBox 中的 707.500000 值引起的。 ,这会导致稍后出现舍入错误(PNG 不能有“半像素”)。

关于pdf - 如何调整EPS文件的BoundingBox?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12682621/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com