¿Cómo ajustar BoundingBox de un archivo EPS?
Quiero recortar el área principal de unPS
oPDF
archivo para crear unEPS
Archivo sin espacios en blanco. Comandos deghostrcipt
, ps2pdf
, epstools
Puede recortar el dibujo principal del archivo de documento.
El problema es que solo se recortan en su forma original, pero quiero crear un archivo EPS conBoundingBox 0 0 x y
; Recortada y movida a la esquina inferior izquierda.
La diferencia es cuando queremos insertar el archivo EPS resultante dentro de un documento PS. Al tenerBoundingBox x0 y0 x y
, el documento PS inserta el archivo EPS en el punto x0 y0, en lugar de donde estamos.
EJEMPLO:
Considere un simplePS
archivar como
%!
/Times-Roman findfont
11 scalefont setfont
72 700 moveto
(This is a test)show
si convertirlo aEPS
con un comando como
ps2eps test.ps test.eps
Producirá
%!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
Se ha recortado en sus coordenadas originales, y el resultadoBoundingBox
es72 700 127 708
. Ahora si intento insertar esteEPS
archivo dentro de unPS
Documento, trata de anidar en esta coordenada.
Será útil si la creación de unEPS
archivo conBoundingBox: 0 0 55 8
. Por supuesto, todas las coordenadas de dibujo (aquí moveto) deben modificarse con esta nueva referencia.
NOTA: Como se dijo, mi propósito de arreglar el punto de referencia de BoundingBox es hacerlo importable dentro del documento de PS. Por lo tanto, una respuesta alternativa a esta pregunta es: cómo insertar un archivo EPS dentro del documento PS independientemente de su BoundingBox.
Por ejemplo, cómo insertar este archivo EPS en la ubicación200 200 255 208
de un documento de PS. Intento insertar el EPS con el siguiente código, pero no funcionará a menos que se inicie BoundingBox desde0 0
:
200 200 translate
save
/showpage {} bind def
(test.eps)run
restore