2012-07-19 1 views
0



J'utilise la méthode   myFile.execute()   pour ouvrir un document InDesign programme (dans ce cas, il est un document vierge avec des styles qui lui sont appliqués).
Script InDesign CS5: l'ouverture d'un document ne répond pas et ne génère pas d'erreur?


Le document est parfois ouvert, et à d'autres moments, il est pas ... Il semble que le script n'a pas assez de temps pour ouvrir le fichier avant qu'il ne soit fait.


Ce me est apparu parce que lors de tests avec   alert(template.name)   il ne afficher le nom de fichier que je cherche, et le script ne pas une erreur est générée lors de l'application   File(template).execute()   (la variable   template   est déjà un   File   objet, mais simplement   template.execute()   ne fonctionne pas non plus).


Voici le code correspondant:

function openStylesTemplate() 
{ 
    var templateFolder = getScriptFolder(); // with the function below 
    var fileArray = templateFolder.getFiles("*.indd"); // an array of all InDesign documents in this script's same folder 

    try 
    { 
     var template = fileArray[0]; // the ONLY InDesign document in the folder 
     File(template).execute(); // open the InDesign template document 
    } 
    catch(e) 
    { 
     alert("Error: " + e.message + "\n\n" + 
       "Make sure the InDesign styles document is in the same folder as this script,\n" + 
        "and that it is the ONLY InDesign document in this folder, and try again.\n\n" + 
       "This script is in this folder: " + templateFolder + "."); 

     exit(); 
    } 
} // end of function openStylesTemplate 


Ainsi, le script pourrait ne pas avoir assez de temps pour charger le document? Si oui, devrais-je créer une minuterie avant que cette fonction ne soit appelée? Ou existe-t-il un meilleur moyen d'ouvrir un document InDesign par programme?

Répondre

1

Ouverture d'un document indesign n'est pas File.execute() qui ouvre simplement un fichier du point de vue os sans aucune référence au fichier lui-même. Vous ouvrez les fichiers en appelant app.open (file);.

+0

Ah ok, donc il n'y a pas d'erreurs, je suis juste en utilisant la mauvaise méthode! Merci d'avoir clarifié la différence entre ces méthodes. –