Можно ли вызвать веб-сервис с Indesign javascript? - PullRequest
13 голосов
/ 27 сентября 2011

Я - собственный разработчик для печатной компании.

Мы используем Adobe Indesign CS3 и CS5 для создания документов для печати. ​​

Я создал скрипт в Adobe Extendscript, который создаетдокумент Indesign и обрабатывает некоторые основные преобразования, когда клиент не может сделать это самостоятельно.

Я использовал Javascript для написания этого скрипта.

Можно ли вызвать веб-сервис с помощью такого скрипта?

Если да, то как?

Если нет, то как лучше всего вызвать веб-сервис с рабочего стола?

Спасибо.

Ответы [ 5 ]

6 голосов
/ 14 октября 2011

Extendables уже упоминалось:

Extendables

Это не jQuery, а библиотека для сценариев InDesign.

Наиболее полное обсуждение можно найти в блоге Ророхико , с хорошим прямым примером.

5 голосов
/ 28 сентября 2011

Нет и Да.

Нет, нет способа (afaik) заставить InDesign вызывать веб-сервис из скрипта.Это очень возможно и часто делается из плагинов InDesign (вы можете выполнить произвольный код на C ++, чтобы вы могли делать что угодно).Тем не менее, это совершенно другой зверь для изучения.

Да, это можно сделать из ExtendScript, используя библиотеку.Поэтому в основном ваш сценарий будет вызывать веб-службу для получения данных (возможно, используя параметры, полученные из InDesign или документа), а затем отправлять возвращенные значения в другие функции сценария InDesign для выполнения операций.

Базовый пример может бытьнайдено здесь , которое использует 'Extendables'.

РЕДАКТИРОВАТЬ: Поскольку кажется, что есть некоторая путаница: документы не являются теми, которые выполняют сценарий и очень редко даже содержат их.Сценарии сохраняются в специальном формате Javascript InDesign (.jsx) и интерпретируются обработчиком сценариев InDesign.

1 голос
/ 27 апреля 2015

Вы также можете вызвать AppleScript или VB в зависимости от операционной системы и использовать некоторую утилиту командной строки, например cUrl, для вызова вашего веб-сервиса.Также вы можете попробовать getUrl, бесплатный скрипт от Rorohiko, который облегчает общение в сети внутри ExtendScript.

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

Помимо расширяемых, есть 2 альтернативные опции:

Adobe Bridge / Bridgetalk

Не могу сказать о конкретных версиях пакета Adobe, но если вы можетеиспользовать или использовать Adobe Bridge / Bridgetalk, вы можете использовать межсетевое взаимодействие Adobe и класс HttpConnection, доступные для Bridge (согласно документу SDK), и иметь вызов InDesign Bridge, чтобы выполнить HTTP-запрос и передать результаты обратно InDesign.

У меня нет конкретного примера для InDesign, но вот некоторые, предназначенные для Illustrator.Я бы предположил, что он легко переносится в InDesign.

https://gist.github.com/daluu/2d9dec72d0863f9ff5a7

https://gist.github.com/mericson/6509997

Внешние вызовы веб-службы и взаимодействие с ExtendScript

Механизм API сценариев Adobe не является строго ExtendScript / Javascript.Вы также можете использовать API сценариев из COM / VBScript (для Windows) или Applescript (для Mac), которые выполняются извне для InDesign, но взаимодействуют с InDesign через API.

Для Windows под COM я имею в виду любоеязык, который поддерживает COM, так что это не просто VBScript по умолчанию (может быть Python, Perl, PHP, Java, .NET, даже Microsoft JScript - их версия Javascript для командной строки / desktop / и т. д.).

Используя API сценариев в другом движке, вы вызываете вызов веб-службы извне из другого языка (VBScript, Applescript и т. Д.), А затем передаете результаты в ExtendScript через вызов API сценария (в COM / Applescript) приложения ..doScript («Фрагмент кода ExtendScript здесь») (или doJavascript), где для фрагмента ExtendScript может быть короткий фрагмент, использующий ExtendScript для включения в файл JSX, а затем вызов функции / метода ExtendScript и передачи ему результатов веб-службыв качестве аргументов.

Пример этого метода (не распространяется на веб-сервис cвся часть) описана здесь в некоторых решениях:

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

0 голосов
/ 27 сентября 2011

... вероятно, если вы используете InDesign для создания PDF из документа.В PDF вы, вероятно, можете.Но из сырого документа InDesign, вероятно, нет.Я также проголосовал бы за то, что вы не сможете запускать js из документа до его открытия.Я бы посоветовал обсудить это с экспертами InDesign.Мне любопытно, однако, что вы придумаете, так как я помню, что ID позволяет вам включать интерактивность в документ.Пожалуйста, отправьте ответ, если вы найдете ответ где-нибудь еще.

...