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

questionAnswers(2)

yourAnswerToTheQuestion