2013-08-22 60 views
0

我有一個Adobe Indesign indd文件,我需要合併數據(MailMerge)。
我使用adobe indesign server 5.5在indesign腳本下運行。Adob​​e Indesign MailMerge性能

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文件。

但我的問題是性能。
使用單行CSV文件生成Pdf文件需要10秒鐘的時間。
因此,如果我的CSV爲10萬行,那麼完成該過程需要10天以上的時間。
這很有趣。但是在InDesign腳本中,我仍然不知道如何提高性能。

任何人都可以給我建議嗎?

+0

既然你發佈了這樣的其他團體,如性能和PDF代,我會提供一個評論。停止使用像InDesign這樣的單一的,不良的應用程序,它並不真正意味着在服務器上運行,並實現一個像這樣的文檔的服務器端渲染解決方案。我建議如果這是一個簡單的郵件合併,那麼你可以在XSL FO渲染解決方案中以100-200頁/秒的速度進行。 10分鐘格式化信件,而不是10天。 –

回答

0

我對CS5版本太平紳士(不是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不是函數' –