Como ajustar o BoundingBox de um arquivo EPS?
Eu quero cortar área principal de umPS
ouPDF
arquivo para criar umEPS
arquivo sem espaço em branco. Comandos deghostrcipt
, ps2pdf
, epstools
pode cortar o desenho principal do arquivo do documento.
O problema é que eles só cortam em sua forma original, mas eu quero criar um arquivo EPS comBoundingBox 0 0 x y
; cortada e movida para o canto inferior esquerdo.
A diferença é quando queremos inserir o arquivo EPS resultante dentro de um documento PS. Quando tendoBoundingBox x0 y0 x y
, o documento PS insere o arquivo EPS no ponto x0 y0, em vez de onde estamos.
EXEMPLO:
Considere um simplesPS
arquivo como
%!
/Times-Roman findfont
11 scalefont setfont
72 700 moveto
(This is a test)show
se convertendo paraEPS
com um comando como
ps2eps test.ps test.eps
Vai produzir
%!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
Ele foi recortado em suas coordenadas originais e o resultadoBoundingBox
é72 700 127 708
. Agora, se tentar inserir esteEPS
arquivo dentro de umPS
documento, ele tenta aninhar nessa coordenada.
Será útil se criar umEPS
arquivo comBoundingBox: 0 0 55 8
. Obviamente, todas as coordenadas de desenho (aqui moveto) devem ser modificadas com essa nova referência.
NOTA: Como dito, meu propósito de consertar o ponto de referência do BoundingBox é torná-lo importável dentro do documento PS. Assim, uma resposta alternativa para essa pergunta é: como inserir um arquivo EPS dentro do documento PS, independentemente de sua BoundingBox.
Por exemplo, como inserir este arquivo EPS no local200 200 255 208
de um documento PS. Eu tento inserir o EPS com o seguinte código, mas ele não funcionará a menos que o BoundingBox seja iniciado de0 0
:
200 200 translate
save
/showpage {} bind def
(test.eps)run
restore