2017-08-22 207 views
0

我正在使用這個腳本(下面)從幾個不同的文件批量導出pdf:s,我每週都會執行一個任務。文件名總是相同的,我使用8-10個不同的indd文件來創建12-15個不同的pdf:s。尋找一種更快捷的方式批量導出pdf:s in InDesign

腳本設置這樣的:

//Sets variables for print and web presets 
var myPDFExportPreset = app.pdfExportPresets.item("my-present-for-print-pdf"); 
var myPDFExportPreset2 = app.pdfExportPresets.item("my-preset-for-web-pdf"); 

//sample of one pdf exported first with print, then web pdf preset as two different files 

var firstFileIntoPdfs = function(){ 

var openDocument= app.open(File("MYFILEPATH/firstfile.indd")); 

    openDocument.exportFile(
     ExportFormat.pdfType, 
     File("MYFILEPATH/print-pdfs/firstfile-print.pdf"), 
     false, 
     myPDFExportPreset 
    ); 

    openDocument.exportFile(
     ExportFormat.pdfType, 
     File("MYFILEPATH/web-pdfs/firstfile-web.pdf"), 
     false, 
     myPDFExportPreset2 
    ); 
}; 

我定義就像一個全部出口上面命名的功能,有的只使用其中一個預設,有兩種類似上面。我打電話給所有這些功能在文件

firstFileIntoPdfs(); 
secondFileIntoPdfs(); 
thirdFileIntoPdfs(); 
fourthFileIntoPdfs(); 

等結束...¨

劇本然而相當緩慢,10個文件到每1個或2個PDF文件,的功能等以上,可能需要10分鐘。我不認爲這是一個CPU問題,我注意到,似乎腳本正在等待「firstFileIntoPdfs()」中的文件被創建,這是一個需要幾分鐘的過程,然後才能執行下一個函數。然後再等待...

選擇文件 - >手動導出可以設置新的文件導出,而以前的文件仍在處理PDF文件,這對我來說似乎比這個腳本的工作方式更快。然而,手動點擊當然是容易出錯且乏味的。

有沒有更好的方式來編寫這個批處理導出腳本比我上面做了什麼,這將使所有的功能執行,而前一個功能的PDF仍然在系統中處理?我想保留它們作爲單獨的函數,以便能夠在只需要某些特定的pdf時註釋掉一些:s。 (除非全部出口的過程幾乎與出口1只pdf一樣快)。

我希望我的問題有道理!

+0

閱讀標籤說明! 'BATCH-FILE' **不會**意味着處理/導出多個文件! – SteveFest

+0

哎呀,謝謝你刪除它。 – Julius

回答

2

有一個非同步的方法提供,asynchrousExportFile取代導出文件:

var openDocument= app.open(File("MYFILEPATH/firstfile.indd")); 
openDocument.asynchronousExportFile(
    ExportFormat.pdfType, 
    File("MYFILEPATH/print-pdfs/firstfile-print.pdf"), 
    false, 
    myPDFExportPreset 
); 

它使用一個後臺任務

+0

哦,我不知道!這正是我所期待的,謝謝! – Julius