2011-05-26 2 views
1

set-up actuel:Adobe InDesign CS5 serveur JavaScript: Get rectangle par tag XML

Adobe InDesign Server CS5 scénarisé par ExtendScript via PHP SOAP

Le problème:

Je place actuellement un fichier image dans un rectangle en utilisant le code suivant:

frame  = doc.rectangles[0]; 
imgList = frame.place(new File(img)); 

Cela fonctionne très bien; le fichier img est placé dans le rectangle comme prévu. Cependant, cela ne fait référence qu'au premier rectangle du document: si j'ai deux rectangles dans le document, l'image est placée dans le dernier rectangle créé.

Ce que je voudrais idéalement pouvoir se référer au rectangle par sa balise XML - quelque chose comme:

frame  = doc.getRectangleByTag('Pic'); // <Pic> being the name of the XML tag 
imgList = frame.place(new File(img)); 

Quelqu'un at-il des conseils quant à la façon d'y parvenir? Je réalise que c'est une question rudimentaire, mais je ne trouve pas de joie après plusieurs heures de recherche.

Un grand merci

Répondre

1

Il n'y a pas une méthode 'getRectangleByTag' que je connaisse. Cependant, si vous connaissez la propriété « id » ou « name » du rectangle que vous recherchez, vous pouvez parcourir les rectangles dans le document et trouvant comme ceci:

var rectangles = doc.rectangles; 
var rectID; //the ID you're looking for 
var myRectangle; 

for(var i = 0; i < rectangles.length; i++){ 
    if(rectangles[i].id == rectID){ 
     myRectangle = rectangles[i]; 
    } 
} 

myRectangle.place(new File(img)); 

Hope this helps!

+0

Merci Lloyd. Résout mon problème. À votre santé! – kaese

Questions connexes