Создать PDF из InDesign во время выполнения

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

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

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

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

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

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

1 ответ

Решение

Вы можете автоматизировать практически все, что угодно, используя встроенную поддержку сценариев в 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";
Другие вопросы по тегам