Создать PDF из InDesign во время выполнения - PullRequest
0 голосов
/ 27 мая 2010

Для проекта мне нужно автоматизировать создание визиток. Теперь у них есть файл InDesign для каждого шаблона визитной карточки. Они вставляют информацию обо всех людях в файл indesign и затем генерируют ее в формате pdf.

Теперь ввод информации о клиентах в веб-приложение не составляет проблем, но как мне сгенерировать pdf и как я изменю файл indesign во время выполнения?

Я думаю, что изменение файла indesign будет невозможно программно?

Могу ли я сгенерировать pdf из indesign с одним шаблоном карты в нем. Во время выполнения я бы скопировал карту в формате PDF x количество раз. Тогда мне нужно будет ввести информацию людей (имя, адрес, ...)?

Что здесь возможно?

Окончательный PDF-файл используется машиной, которая автоматически создает визитные карточки, обрезает их, ...

1 Ответ

4 голосов
/ 28 мая 2010

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

var document = app.open(File("path to your InDesign file"), false);
var textFrame = document.pageItems.item("your script label");
var story = textFrame.parentStory;
story.contents = "your new content"

Чтобы создать PDF, вы должны сделать что-то вроде этого:

var pdfFile = new File("path to your pdf");
document.exportFile(ExportFormat.PDF_TYPE, pdfFile);

Это было всего лишь несколько примеров того, что вы можете сделать, надеюсь, это было несколько полезно. Если вы не знаете, как устанавливать и запускать сценарии в InDesign, в этом блоге объясняется этот процесс. Вы можете найти хороший онлайн справочник сценариев здесь . Насколько я понимаю, вы хотели бы запускать свои сценарии как пакетный процесс. Если это так, я рекомендую вам взглянуть на InDesign Server. Это в основном настольная версия InDesign, но без графического интерфейса и с простым интерфейсом веб-службы. Он также работает как служба Windows (или аналог на других платформах).

ПРИМЕЧАНИЕ. Начиная с CS5, вы больше не можете идентифицировать текстовый фрейм по метке скрипта, как показано выше. Здесь обсуждается кое-что . Лучшая альтернатива - использовать itemByName (name) вместо item, а name - это имя в палитре слоев. Это можно изменить в графическом интерфейсе, выполнив очень медленный двойной щелчок на элементе в палитре слоев. Или этот обходной путь устанавливает имя каждого текстового фрейма равным его метке сценария. Затем все, что вам нужно сделать, чтобы изменить содержимое текстового фрейма, это:

document.textFrames.itemByName("shmullus").contents = "The Doctor";
...