2012-05-30 4 views
5

Ich versuche, eine Datei in Illustrator mit Javascript zu speichern, aber ich bekomme immer einen Fehler. HierSpeichern Sie Datei in Illustrator mit Javascript

ist, was funktioniert, aber es ist nicht das, was ich will:

// 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); 
    } 
} 

Die var „dest“ speichert die Datei in die Wurzel meines Mac-Benutzerkonto. Ich will einfach die Datei relativ zum Quelldokument in einem Unterordner speichern, so dass ich versuchte dies:

var dest = "exports/testme.pdf"; 

Dies bringt einen Dialog mit „.pdf“ hervorgehoben oben, richtig Eingang in den ‚Exporten‘ -Ordner erwartet, dass Ich habe bereits erstellt. Ich kann etwas eingeben und es wird gespeichert, aber es ignoriert den Dateinamen "testme.pdf", der im Code angegeben wurde. Ich kann "Käse" über das markierte ".pdf" schreiben, das weiß, dass ich will, und es wird "cheese.pdf" im Ordner "Exporte" speichern.

Ich habe versucht, diese auch ohne Glück:

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

etc., etc.

Was bin ich?

Antwort

5

Um saveAs ohne ein Dialog Aufspringen zu verwenden, müssen Sie die globale Eigenschaft verwenden userInteractionLevel:

var originalInteractionLevel = userInteractionLevel; 
userInteractionLevel = UserInteractionLevel.DONTDISPLAYALERTS; 

... 

userInteractionLevel = originalInteractionLevel; 
0

Da Sie in Ihrem Dokument relativ speichern möchten, so zuerst den Pfad für das aktuelle Dokument finden Sie wie folgt vor

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

Sie können auch prüfen, ob die Exporte Ordner vorhanden ist oder nicht, wenn Sie nicht mit Skript erstellen können als

folgt