2016-02-05 5 views
0

Возможно, это глупый вопрос, но у меня нет опыта в PostScript/EPS, и мне нужно (попытаться) решить проблему, которую я получил (функциональность работала в прошлом ... поэтому мне сказали). Все находится под Windows 7 x64.EPS внутри EPS как ссылка - любая альтернатива команде «run»?

Требование просит связать файл EPS внутри другого файла EPS. То, как это было сделано, было использование команды «run» вместе с «translate» и «scale», чтобы соответствовать child.eps в parent.eps. (Это делается с помощью класса Java)

Рассмотрим следующий (упрощенный) пример:

%!PS-Adobe-3.0 EPSF-3.0 
%!PS-Adobe EPSF-3.0 
%%BoundingBox: 0 0 800 200 

/Courier findfont 70 scalefont setfont 
10 10 moveto 
(Hello World!) show 
%%EOF 

выше работает нормально, но если до %% EOF, добавить

(child.eps)

Я получаю довольно странное поведение (попробовал это на трех ПК с Windows с точно такими же результатами):

  • Adobe Illustrator CS5 (v15) работает нормально (МОГ) ... он всегда работает, если Illustrator является не открытым и я дважды щелкните файл. Но если я сначала открою Illustrator, а затем воспользуюсь его файлом -> Открыть диалоговое окно, чтобы открыть файл EPS, он не работает с «неизвестной ошибкой»
  • Adobe Illustrator CS6 не может открыть файл с «неизвестной ошибкой» (все время)
  • GSView (с опцией Ghostscript 9.07 и -dNOSAFER) открывает его правильно.

Что мне не хватает? Или что я делаю неправильно?

Есть ли какой-либо другой способ связать EPS внутри другого EPS, кроме использования команды «run», чтобы я мог получать согласованные результаты?

Спасибо!

LE: оба Parent.eps и Child.eps находятся в той же папке

ответ

1

Язык PostScript не имеет понятие «связь». Не удивительно, если вы считаете, что PostScript - это язык программирования.

Удивительно, но выполнение «запуска» в файле EPS не делает его недействительным.

Это удивительно для меня, потому что вы предполагается сделать это включают филиал EPS файл внутри родителя. Весь смысл файла EPS заключается в том, что его «черный ящик», чтобы заставить его работать с инкапсулирующей программой PostScript, просто нужно настроить CTM для масштабирования EPS в нужное пространство, а затем выполнить EPS. EPS не должен иметь никакого побочного эффекта.

Во всяком случае, в PostScript нет ничего, что будет делать то, что вы хотите. Я сильно подозреваю, что либо Illustrator отправляется без интерпретатора PostScript вообще, либо его ограниченным образом по соображениям безопасности. Illustrator не является надежным средством для проверки подлинности PostScript!

Зачем вы хотите загрузить его в Illustrator?Рассматривали ли вы использование PDF вместо EPS?

+0

Привет, Кен, спасибо за быстрый ответ. Дело в том, что это не мой выбор, но именно так оно и было. EPS принимается только. И последний пользователь использует Illustrator CS5, поэтому мне нужно предоставить им действительный файл EPS, который будет использоваться внутри Illustrator. Я думал, что моя проблема связана с некоторыми правами доступа к окну. Или даже собственная реализация Adobe о том, как к файлам обращаются, поскольку он (kinda) работает в CS5, но не больше в CS6. Попробуй копаться в этом направлении. Благодаря! – DaniL

+0

Вероятно, ваше единственное возможное решение - включить дочерний EPS-файл в родительский, полностью. Это «вероятно» удовлетворит проблемы безопасности Illustrator. – KenS

+0

да, к сожалению. Вам придется искать библиотеку Java, которая может это сделать. Спасибо еще раз за помощь! LE: Не знаю, что произойдет, но если я попытаюсь нажать Enter, чтобы перейти на вторую строчку, он просто отправит ответ: D Извините за продолжение редактирования моих ответов. – DaniL