I can set up the metadata of an output PDF via File → File info, but when using Type → Text variables → Define (as hinted here), something like Metadata → Title yields a "no intersecting link" - apparently this option is used for image captions and not for metadata of the InDesign document itself.

So, how to keep some text in the InDesign document and one of its metadata fields in sync?

  • You want to keep what in sync? Text file content and .indd metadata?
    – Joonas
    Apr 4, 2016 at 10:18
  • @Joonas .indd metadata and some text field contents inside the very same file Apr 4, 2016 at 10:20
  • Right. You could do that with javascript to a point, but the problem is triggering the sync. Maybe with an extension or external methods it would be possible to make an automatic sync, but with javascript you are limited to a manual button click sync. Then again, if you had a script for saving the file, that would pretty much eliminate the issue. So you could trigger a script to save the file and update the metadata at the same time...
    – Joonas
    Apr 4, 2016 at 10:30
  • 1
    @Joonas Phew, that sounds pretty complicated for something I'd consider essential... Did Adobe really not implement this? Apr 5, 2016 at 5:58
  • 1
    You will find that many things you consider to be important are missing from application X, its not that it couldnt be useful for somebody. Its just not part of the design, period. Thats why software have a scripting and api layers so you can help yourself. I could list 10,000 things adobe does wrong
    – joojaa
    Apr 6, 2016 at 6:31

1 Answer 1


InDesign doesn't have the ability to do what you are asking out of the box unfortunately (I too consider this to be essential).

Below is a quick and dirty way to sync up a text variable named Document Title with the "Document Title" in the File Info metadata. (hint: define and use the text variable in a template)

var doc = app.activeDocument;
if (doc.textVariables.item('Document Title').isValid){
    doc.textVariables.item('Document Title').variableOptions.contents = doc.metadataPreferences.documentTitle;
else {
    // there's no variable named 'Document Title'

There are other metadataPreferences you can use as well. A more determined person than be could probably write a script to check all the metadata and fine a corresponding text variable.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.