Datos personalizados dentro de archivos IDML

Estoy buscando una manera de inyectar datos personalizados dentro de archivos IDML a través de secuencias de comandos, pero no estoy seguro de que sea posible.

La especificación de IDML establece que "IDML admite la inclusión de nuevos objetos y propiedades de creación de secuencias de comandos agregados por los complementos de InDesign", pero no se menciona la creación de secuencias de comandos.

Ya intenté agregar una variable personalizada al objeto TextFrame pero no tuve suerte (aparentemente, la estructura del objeto es inmutable).

¿Hay alguna forma de hacer esto sin tener que escribir un complemento?

Debería ser posible agregar datos personalizados a XMP ( https://indisnip.wordpress.com/2010/09/07/storing-custom-data-into-indesign-file-xmp/ ), pero eso requeriría mucho más trabajo porque tendría que hacer referencia a cada objeto de alguna manera y sus valores personalizados. Además, tengo que comprobar las especificaciones XMP porque no estoy seguro de si existen limitaciones de tamaño para los datos personalizados (eso podría ser un problema).

Respuestas (1)

Puede utilizar etiquetas de secuencias de comandos para guardar información en su archivo 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'
No sabía de la existencia de la propiedad "etiqueta". Excavando dentro de las API de JS, descubrí que la propiedad de la etiqueta también está disponible para los elementos TextFrame y su valor se guarda en el archivo IDML. ¡Gracias!