2016-07-21 9 views
1

Я пытаюсь выполнить импорт XML автоматически из сценария запуска при загрузке документа. Мне удастся заполнить большую часть контента, но изображения игнорируются. Все работает, включая изображения, когда я делаю руководство «Импорт XML» через пользовательский интерфейс или через ручной скрипт.Проблема с скриптом запуска InDesign, не загружающим изображения из импорта XML

Ниже мое руководство сценарий:

var myDocument = app.activeDocument; 
var xmlFile = File('/c/Full/Path/To/data.xml'); 

myDocument.importXML(xmlFile); 

Но цель сделать это при запуске. Ниже мой запуск сценария:

#targetengine "session" 

app.addEventListener('afterOpen', function(myEvent) { 
    if (myEvent.target.constructor.name !== 'Document') { 
     return; 
    } 

    var myDocument = myEvent.target; 
    var xmlFile = File('/c/Full/Path/To/data.xml'); 

    myDocument.importXML(xmlFile); 
}); 

Ниже приведен XML тег для изображения:

<Image href="file:///C:/Full/Path/To/Image/02.png" /> 

мне интересно, если есть проблема с обратным вызовом 'afterOpen' событий, и это причина, почему это работает вручную, используя тот же метод, но не в сценарии запуска.

ответ

0

Мне удалось обойти проблему, полностью избегая прослушивателя событий.

main(); 

function main() { 

    // create a path for a file object 
    var curFile = File('/c/Path/To/file.indd'); 
    var xmlFile = File('/c/Path/To/data.xml'); 

    // close app if files don't exist 
    if (!curFile.exists || !xmlFile.exists) { 
     app.quit(SaveOptions.NO); 
    } 

    // open the file 
    var curDoc = app.open(curFile); 

    // import the xml 
    curDoc.importXML(xmlFile); 

    // create a new file object 
    var pdfFile = new File(curFile.parent + '/' + curFile.name + '.pdf'); 

    // export to pdf 
    curDoc.exportFile(ExportFormat.PDF_TYPE, pdfFile); 

    // close app 
    app.quit(SaveOptions.NO); 

} 
+1

Зачем нужно закрывать приложение? – Loic

+0

Я не хочу, чтобы InDesign занимал ресурсы, когда это не нужно. У меня есть сценарий PowerShell, который прослушивает изменения в XML-файлах в определенном каталоге и запускает InDesign, когда он обнаруживает изменение. Затем сценарий запуска открывает необходимые документы (документы), выполняет импорт, экспортирует в PDF, а затем закрывает приложение. – SchattenJager

+0

Ок танков для объяснения. – Loic

 Смежные вопросы

  • Нет связанных вопросов^_^