2012-06-11 6 views
0

Je voudrais marquer des images en ligne spécifiques dans mon document, mais je suis coincé sur la partie de marquage. Ce que je l'ai déjà est la suivante:Comment marquer des images spécifiques?

var myDoc = app.activeDocument; 
var myItems = myDoc.allPageItems; 
var foundInlineImages = Array(); 

// loop through the page and find all inline objects (images). 
// Name has to be Rectangle to exclude grouped objects. 

for(var i = 0, len = myItems.length; i < len; i++) 
{ 
    if((myItems[i].constructor.name=="Rectangle") && (myItems[i].parent instanceof Character)) 
    { 
     foundInlineImages.push(myItems[i]); 
    } 
} 


// encapsulate all array entries with [Image] tag 

for(var i = 0; i < foundInlineImages.length; i++) 
{ 
    // I need here something like foundInlineImages[i].changeTextPreferences.markupTag="Image"; 
    // unfortunatly this doesn't work ... 
} 

Quelqu'un peut-il me conduire à la bonne syntaxe pour encapsuler chaque objet trouvé dans mon tableau avec une étiquette (dans ce cas, « image »)?

Merci d'avance!

Répondre

1

@Wokoman - Pour résumer une image avec une balise XML que vous dites:

  • d'abord créer une balise XML nommé "Image" pour chaque image
  • créer un élément XML de cette balise
  • puis insérez chaque image dans l'élément XML

Vous essayez de modifier une propriété d'un objet Image, mais   Image   n'a pas les propriétés   changeTextPreference.markupTag   (voir InDesign object model --> Image pour référence).

  Application   a ces propriétés   changeTextPreference.markupTag   (voir InDesign object model --> changeTextPreference pour référence).


Alors, essayez ceci (ce est non testé, et sur la base p 168 de InDesignCS5_ScriptingGuide_JS.):

var xmlImageTag = ""; 
var xmlImageElement = ""; 

for(var i = 0, len = foundInlineImages.length; i < len; i++) 
{ 
    // each Image tag created here 
    xmlImageTag = myDoc.xmlTags.add("Image"); 

    // each Image element created here, from the Image tag 
    xmlImageElement = myDoc.xmlElements.item(i).xmlElements.add(xmlImageTag); 

    // inserting each image into each new Image element 
    xmlImageElement.contents = foundInlineImages[i]; 
} 
Questions connexes