Вы знаете, как файлы EPS являются Предполагаемый для использования? Точка EPS-файла заключается в том, что он предназначен для использования в качестве «черного ящика» приложением.
Когда приложение создает программу PostScript, оно может включать EPS, не зная ничего о нем, кроме его размера, в конечном результате. Поэтому, когда PostScript генерируется, приложение знает размер EPS и изменяет CTM, чтобы масштабировать контент по мере необходимости и находить его на странице.
Если вы хотите использовать несколько файлов EPS, то вы должны сделать то же самое, вы должны изменить CTM между каждым файлом EPS так, чтобы он располагался по размеру и положению на требуемой странице. Если вы этого не сделаете, все они попадают в текущую позицию и масштаб на странице. Как вы говорите, они заканчиваются друг на друга.
Теперь вся точка из EPS-файла является то, что он может быть помещен программно, но вы должны написать программу, чтобы сделать это :-)
Сначала вам нужно разобрать ограничительную рамку из пенополистирола файл. Если EPS правильно соответствует, это будет %% BoundingBox и, возможно, комментарии %% HiResBondingBox.
Вооружившись этой информацией, вам необходимо решить, какой размер носителя вы используете и/или как масштабировать EPS-файлы, чтобы они соответствовали требуемому носителю.
Затем вы начинаете новую программу PostScirpt, которая начинается с запроса определенного размера носителя, затем использует операторы scale
и translate
для перемещения в нужную позицию на носителе и затем выполняет первый EPS-файл (либо путем включения или с помощью оператора run
).
Повторите процесс для каждого файла EPS.
Наконец написать новый контент с помощью showpage
оператора
Предполагая, что вы использовали eps2write устройства в Ghostscript, результирующий файл будет новый 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
Спасибо. Я могу заставить его работать, используя перевод с ключом -c для каждого eps. –