Jak dostosować BoundingBox pliku EPS?
Chcę przyciąć główny obszar aPS
lubPDF
plik, aby utworzyćEPS
plik bez białych znaków. Poleceniaghostrcipt
, ps2pdf
, epstools
może przyciąć główny rysunek z pliku dokumentu.
Problem polega na tym, że przycinają się tylko w oryginalnej postaci, ale chcę utworzyć plik EPS za pomocąBoundingBox 0 0 x y
; przycięte i przeniesione do lewego dolnego rogu.
Różnica polega na tym, że chcemy wstawić wynikowy plik EPS do dokumentu PS. Kiedy mamBoundingBox x0 y0 x y
, dokument PS wstawia plik EPS w punkcie x0 y0, zamiast gdzie jesteśmy.
PRZYKŁAD:
Rozważmy prostePS
plik jako
%!
/Times-Roman findfont
11 scalefont setfont
72 700 moveto
(This is a test)show
jeśli go przekonwertujeszEPS
z poleceniem takim jak
ps2eps test.ps test.eps
Wytworzy
%!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
Został przycięty w oryginalnych współrzędnych, a wynikowyBoundingBox
jest72 700 127 708
. Teraz, jeśli próbujesz to wstawićEPS
plik w ciąguPS
dokument próbuje zagnieździć się na tej współrzędnej.
Będzie to przydatne, jeśli tworzyszEPS
plik zBoundingBox: 0 0 55 8
. Oczywiście wszystkie współrzędne rysunku (tutaj moveto) muszą zostać zmodyfikowane za pomocą tego nowego odniesienia.
UWAGA: Jak już powiedziano, moim celem w naprawie punktu odniesienia BoundingBox jest przywrócenie go do dokumentu PS. Zatem alternatywną odpowiedzią na to pytanie jest: jak wstawić plik EPS do dokumentu PS niezależnie od jego BoundingBox.
Na przykład, jak wstawić ten plik EPS w lokalizacji200 200 255 208
dokumentu PS. Próbuję wstawić EPS za pomocą następującego kodu, ale nie zadziała, dopóki nie zostanie uruchomiony BoundingBox0 0
:
200 200 translate
save
/showpage {} bind def
(test.eps)run
restore