您是否知道EPS文件是如何使用假設? EPS文件的重點在於它被用作應用程序的「黑匣子」。
當應用程序創建PostScript程序時,它可以在最終輸出中包含EPS,但不知道它的大小以外的任何內容。因此,當生成PostScript時,應用程序知道EPS的大小,並修改CTM以根據需要縮放內容,並將其定位到頁面上。
如果您想使用多個EPS文件,那麼您必須執行相同的操作,您必須修改每個EPS文件之間的CTM,以便將其放置在所需頁面上的大小和位置。如果你不這樣做,那麼它們都會停留在當前位置並在頁面上縮放。就像你說的那樣,他們最終會彼此重疊。
現在EPS文件的全部意義在於,它可以通過編程設置,但你有寫程序做:-)
首先,你需要從EPS解析包圍盒文件。如果EPS正確符合,這將是%% BoundingBox和可選的%% HiResBondingBox註釋。
有了這些信息,您需要確定您正在使用的媒體大小和/或如何縮放EPS文件以適合所需媒體。
然後,您開始一個新的PostScirpt程序,首先請求特定的介質尺寸,然後使用scale
和translate
運算符移動到介質上的正確位置,然後執行第一個EPS文件(通過包含內容,或使用run
運營商)。
爲每個EPS文件重複該過程。
使用showpage
操作者
假設你已經使用的Ghostscript的eps2write設備最後寫入新的內容,所得到的文件將是一個新EPS文件體現了個體EPS文件,縮放並放置作爲內容你希望。
因此,例如,(所有值都是假想的示例數據):
%!
<< /PageSize [612 792] >> setpagedevice
gsave
306 396 moveto
0.5 0.5 scale
(example1.eps) run
grestore
gsave
306 0 moveto
1.5 1.5 scale
(example2.eps) run
grestore
gsave
0 396 moveto
(example3.eps) run
grestore
gsave
0 0 moveto
0.66 0.66 scale
(example4.eps) run
grestore
showpage
謝謝。我可以通過使用每個eps的-c開關一起使用翻譯來得到它的工作。 –