Я ищу способ вставки пользовательских данных в файлы IDML с помощью сценариев, но я не уверен, что это возможно.
В спецификации IDML указано: «IDML поддерживает включение новых объектов сценариев и свойств, добавленных подключаемыми модулями InDesign», но о сценариях ничего не говорится.
Я уже пытался добавить пользовательскую переменную в объект TextFrame, но безуспешно (очевидно, структура объекта неизменна).
Есть ли способ сделать это без написания плагина?
Должна быть возможность добавлять пользовательские данные в XMP ( https://indisnip.wordpress.com/2010/09/07/storing-custom-data-into-indesign-file-xmp/ ), но это потребует гораздо больше работы. потому что мне пришлось бы каким-то образом ссылаться на каждый объект и их пользовательские значения. Кроме того, мне нужно проверить спецификации XMP, потому что я не уверен, есть ли ограничения по размеру для пользовательских данных (это может быть проблемой).
Вы можете использовать метки сценариев для сохранения информации в файле idml.
// create a new doc
var doc1 = app.documents.add();
// add a label
// everything can have a scripting label
// textFrames, ovals, pages, swatches ...
doc1.label = 'foo';
// save the file
doc1.save(new File('~/Desktop/doc1.indd'));
// export the idml file
doc1.exportFile(ExportFormat.INDESIGN_MARKUP, new File('~/Desktop/doc1.idml'), false);
// close the first document
doc1.close();
// open the idml file
var doc2 = app.open(File('~/Desktop/doc1.idml'));
// read the label
$.writeln(doc2.label); // returns 'foo'
Пол.Аго