использование базы данных с ExtendScript (для Adobe Illustrator) - PullRequest
3 голосов
/ 09 апреля 2009

Я хочу реорганизовать программу VB в ExtendScript, чтобы автоматизировать некоторые рисунки в Adobe Illustrator CS4, но у меня есть требование для чтения из базы данных. Можно ли читать из базы данных, используя ExtendScript? Как?

Ответы [ 5 ]

4 голосов
/ 27 апреля 2012

да, ES может читать CSV. просто отформатируйте вашу базу данных, используя разделение запятыми.

вот функция, которая должна сделать свое дело:

function readPref (thePath) {
    if (File(thePath).exists == true) {

    var file = File(thePath);
    file.open("r");
    file.encoding= 'BINARY';
    var theText = file.read();
    file.close();
    return String(theText).split(",")

    }
};

должен вернуть массив с тем, что вам нужно. пусть VB экспортирует базу данных и просто использует ее для чтения. donezo.

2 голосов
/ 18 июля 2009

Модуль сценариев Illustrator не предоставляет никакого механизма для непосредственного чтения внешних данных, но у вас есть несколько способов сделать это ...

  1. Напишите внешнюю программу, соединяющую базу данных для генерации VB-скрипта, и используйте Illustrator для запуска «сгенерированного» скрипта, что я и сделал по старому.
  2. Новый ScriptUI, начиная с cs3, позволяет открывать окно, содержащее flash swf в качестве интерфейса для управления движком Illustrator JS. Вы можете читать XML, вызывать веб-сервисы, Flash Remoting внутри флэш-контента. Я не уверен, удобны ли вам эти наборы инструментов.
2 голосов
/ 16 декабря 2009

У меня есть немного другое решение, которое я успешно использовал: Создайте веб-сервис, который имеет доступ к вашей БД, а затем из ExtendScript используйте http-соединение для использования сервисов (и оттуда вы можете делать практически все, что захотите).

1 голос
/ 02 июля 2009

Насколько я понимаю, вам нужно использовать ExtendScript для 'doScript ()' с вашим VB-кодом. ExtendScript не имеет собственного соединения с базой данных. Но я знаком с людьми, которые имеют VB-код для подключения к базам данных и получения результатов. ExtendScript имеет этот метод doScript для запуска кода VB. Сложность заключается в том, чтобы найти способ вернуть данные в ExtendScript, чтобы сообщить приложениям Adobe, что делать. Насколько мне известно, .doScript не может принять результаты встроенного кода. Я слышал, что люди делают одну из следующих вещей:

  • Пусть код VB напишет текстовый файл, который код ExtendScript сможет прочитать и проанализировать.
  • Сделайте так, чтобы код VB добавил 'ScriptLabel' к вашему документу Adobe Illustrator. Затем используйте ExtendScript, чтобы прочитать ту же самую метку. Это действительно то же самое, что написать текстовый файл, но файла просто нет.

НТН

Джон С. Уинтерс, Поддержка ExtendScript, электронная издательская поддержка

0 голосов
/ 15 апреля 2015

Независимо от того, нужно ли вам реорганизовать VB в ExtendScript 100% (без кода VB, весь ExtendScript), я бы сказал, что самое простое решение - что-то вроде этого:

Иметь оболочку VB / VBScript, которая вызывает ExtendScript, и эта оболочка обрабатывает взаимодействие с базой данных и передает данные назад и вперед в ExtendScript. Это позволяет вам сохранять код базы данных простым, повторно используя то, что у вас есть в VB, и сохранять простой ExtendScript.

Вы можете вызвать ExtendScript из VB / VBScript, используя COM API приложения Adobe, в котором есть все методы рисования, которые вы получаете из ExtendScript, плюс метод doJavascript () для выполнения кода JavaScript (или, более реалистично, ExtendScript) кода. Этот же метод doJavascript () можно использовать для извлечения JSX-файлов ExtendScript, а не для фрагмента кода javscript. Вы можете найти более подробную информацию в соответствующем сообщении SO:

Возможно ли выполнять сценарии JSX извне ExtendScript?

посмотрите на ответы, специфичные для Windows. Если продолжить этот вопрос и решение, он может работать и на других платформах (Mac, Python, Perl и т. Д.), Он не должен быть для VB и Windows, тот же подход может использоваться для внешнего взаимодействия с ExtendScript через COM на Windows или Applescript на Mac, и это будет работать с любым языком, совместимым с COM / Applescript (или интерфейсом).

...