2013-08-22 2 views
0

У меня есть один indd-файл Adobe Indesign, который мне нужно объединить данные (MailMerge).
Я использую adobe indesign server 5.5 для запуска ниже сценария indesign.Adobe Indesign MailMerge Performance

var _Path_INDD = "/c/ServerTestFiles/Dummy/Template.indd"; 
var _Path_CSV = "/c/ServerTestFiles/Dummy/Input.csv"; 
var _Path_PDF = "/c/ServerTestFiles/Dummy/Output.pdf"; 

var myDocument = app.open(File(_Path_INDD), OpenOptions.OPEN_COPY);  
var myDataSource = File(_Path_CSV);  
myDocument.dataMergeProperties.selectDataSource(myDataSource); 
myDocument.dataMergeProperties.mergeRecords(); 
app.documents.item(0).exportFile(ExportFormat.pdfType, File(_Path_PDF),  app.pdfExportPresets.item("[Press Quality]")); 

Он запускается и дает мне файл PDF так, как я хотел.

Но моя проблема - производительность.
Для создания файла Pdf требуется 10 секунд, используя одну строку CSV-файла.
Итак, если мой CSV составляет 100 тыс. Строк, для завершения этого процесса потребуется более 10 дней.
Это так смешно. Но я все еще не знаю, как сделать более высокую производительность, когда придет сценарий Indesign.

Может ли кто-нибудь дать мне предложение, пожалуйста?

+0

Поскольку вы разместили это в других группах, таких как производительность и генерация PDF, я предложу комментарий. Прекратите использование монолитного, неработоспособного приложения, такого как InDesign, которое на самом деле не предназначено для запуска на сервере и не реализует решение для серверного предоставления таких документов. Я бы предположил, что если это простое слияние почты, то вы можете сделать это в решении XSL FO рендеринга со скоростью 100-200 страниц в секунду. 10 минут для форматирования букв, а не 10 дней. –

ответ

0

Я тестировал этот скрипт (с немного исправить) на CS5 Jp версии (не ID сервера)/OSX 10,7

здесь вопрос, с 10сек, включают данные слияния? или только экспорт pdf? Вы можете использовать метод asynchronousExportFile()? это экспортирует pdf X4 быстрее для меня.

// ~> DATA MERGING HERE 

var s1 = new Date().getTime(); 
myDocument.exportFile(ExportFormat.pdfType, File(_Path_PDF), false, app.pdfExportPresets.item("[プレス品質]")); 
$.writeln(new Date().getTime() - s1); // -> 399 

var s2 = new Date().getTime(); 
myDocument.asynchronousExportFile(ExportFormat.pdfType, File(_Path_PDF2), false, app.pdfExportPresets.item("[プレス品質]")); 
$.writeln(new Date().getTime() - s2); // -> 108 
+0

Спасибо за ваше предложение, я ценю. –

+0

Но у меня есть одна проблема после того, как я использую функцию 'asynchronousExportFile'. Я получил ошибку, которая говорит' Номер ошибки: 54 Исключить исключение JavaScript: ReferenceError: app.documents.item(). Asynchronous ExportFile не является функцией ' –