Quiero recortar el área principal de un archivo PS
o PDF
para crear un archivo EPS
sin espacio en blanco. Los comandos de ghostrcipt
, ps2pdf
, epstools
pueden recortar el dibujo principal del archivo del documento.Cómo ajustar BoundingBox de un archivo EPS?
El problema es que solo recortan en su forma original, pero quiero crear un archivo EPS con BoundingBox 0 0 x y
; recortado y movido a la esquina inferior izquierda.
La diferencia es cuando queremos insertar el archivo EPS resultante dentro de un documento PS. Al tener BoundingBox x0 y0 x y
, el documento PS inserta el archivo EPS en el punto x0 y0, en lugar de donde estamos.
Ejemplo:
Consideremos un simple archivo PS
como
%!
/Times-Roman findfont
11 scalefont setfont
72 700 moveto
(This is a test)show
si la conversión a EPS
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 recortó en sus coordenadas originales, y el resultado BoundingBox
es 72 700 127 708
. Ahora, si intenta insertar este archivo EPS
dentro de un documento PS
, intenta anidar en esta coordenada.
Será útil si se crea un archivo EPS
con BoundingBox: 0 0 55 8
. Por supuesto, todas las coordenadas de dibujo (aquí moveto) se deben modificar con esta nueva referencia.
NOTA: Como dije, mi propósito al fijar el punto de referencia BoundingBox es hacer que sea importable dentro del documento 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ón 200 200 255 208
de un documento PS. Trato de insertar las EPS con el siguiente código, pero no va a funcionar a menos que el BoundingBox se inicia desde 0 0
:
200 200 translate
save
/showpage {} bind def
(test.eps)run
restore
Por favor, publique (un enlace a) un archivo EPS de muestra que desea ver modificado. –
@KurtPfeifle El caso es general, pero describí mi problema con ejemplos. – Googlebot