2012-05-30 16 views
5

Estoy tratando de guardar un archivo en Illustrator usando Javascript pero sigo obteniendo un error.Guardar archivo en Illustrator con Javascript

Esto es lo que funciona, pero no es lo que quiero:

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

La var "destino" guarda el archivo en la raíz de mi cuenta de usuario de Mac. Simplemente quiero guardar el archivo en relación con el documento de origen en una subcarpeta, por lo que he intentado esto:

var dest = "exports/testme.pdf"; 

Esto nos lleva a un diálogo con ".pdf" carpeta resaltada, a la espera correctamente la entrada dentro de las 'exportaciones' que Yo ya creé Puedo escribir algo y se guardará, pero ignora el nombre de archivo "testme.pdf" que se especificó en el código. Puedo escribir "cheese" sobre el ".pdf" resaltado que sabe que quiero, y guardará "cheese.pdf" en la carpeta "exports".

También probé éstos sin suerte:

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

etc., etc.

¿Qué me falta?

Respuesta

5

Para utilizar saveAs sin un cuadro de diálogo que se levante, es necesario utilizar la propiedad global userInteractionLevel:

var originalInteractionLevel = userInteractionLevel; 
userInteractionLevel = UserInteractionLevel.DONTDISPLAYALERTS; 

... 

userInteractionLevel = originalInteractionLevel; 
0

Desde desea guardar relación con el documento, por lo que en primer lugar encontrar el camino para el documento actual de la siguiente

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

también puede comprobar si existe o no la carpeta exportaciones si no se puede crear con el script de la siguiente

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