2012-05-30 12 views
5

Sto cercando di salvare un file in Illustrator usando Javascript ma continuo a ricevere un errore.Salva file in Illustrator con Javascript

Ecco ciò che funziona, ma non è quello che voglio:

// save as 
var dest = "~/testme.pdf"; 

saveFileToPDF(dest); 

function saveFileToPDF (dest) { 
    var doc = app.activeDocument; 
    if (app.documents.length > 0) { 
     var saveName = new File (dest); 
     saveOpts = new PDFSaveOptions(); 
     saveOpts.compatibility = PDFCompatibility.ACROBAT5; 
     saveOpts.generateThumbnails = true; 
     saveOpts.preserveEditability = true; 
     alert(saveName); 
     doc.saveAs(saveName, saveOpts); 
    } 
} 

Il var "dest" salva il file nella radice del mio account utente Mac. Voglio semplicemente salvare il file relativo al documento di origine in una sottocartella, quindi ho provato questo:

var dest = "exports/testme.pdf"; 

Questo apre un dialogo con ".pdf" cartella evidenziata, in attesa correttamente l'input all'interno delle 'esportazioni' che Ho già creato. Posso digitare qualcosa e salverà, ma ignora il nome del file "testme.pdf" che è stato specificato nel codice. Posso digitare "cheese" sopra il ".pdf" evidenziato che sa che voglio, e salverà "cheese.pdf" nella cartella "exports".

Ho provato anche questi senza fortuna:

var dest = "exports/testme"; 
var dest = "/exports/testme.pdf"; 
var dest = "testme.pdf"; 

ecc, ecc

Che cosa mi manca?

risposta

5

Per utilizzare saveAs senza una finestra spuntando, è necessario utilizzare la proprietà globale userInteractionLevel:

var originalInteractionLevel = userInteractionLevel; 
userInteractionLevel = UserInteractionLevel.DONTDISPLAYALERTS; 

... 

userInteractionLevel = originalInteractionLevel; 
0

Dal momento che si desidera salvare relativa al documento, quindi prima trovare il percorso per il documento corrente nel seguente modo

var path = app.activeDocument.path; 
var dest = path + "/exports/testme.pdf"; 

si può anche verificare se esiste la cartella esportazioni o no, se non è possibile creare con script come segue

var path = app.activeDocument.path; 
    var exportFolder = Folder(path + "/exports"); 
    if(!exportFolder.exists){ 
     exportFolder.create(); 
    } 
    var dest = exportFolder + "/testme.pdf"; 
Problemi correlati