2012-06-11 27 views
0

我想在文檔中標記特定的內嵌圖像,但是我只是卡在實際的標記部分。我已經有了如下:如何標記特定圖像?

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 ... 
} 

有人可以使我正確的語法封裝在我的陣列中的每個找到的對象與(在這種情況下,「圖像」)標籤?

在此先感謝!

回答

1

@Wokoman - 要封裝用XML標記的圖像你說:

  • 首先爲每個圖像
  • 創建一個名爲「圖片」的XML標籤創建一個XML元素從該標籤
  • 然後插入每個圖像插入到XML元素

您正在嘗試更改Image對象的屬性,但  Image  不具有屬性  changeTextPreference.markupTag  (請參閱InDesign object model --> Image以供參考)。

  Application  具有這些屬性  changeTextPreference.markupTag  (參見InDesign object model --> changeTextPreference供參考)。


因此,嘗試了這一點( 這是未經測試,並基於P的 InDesignCS5_ScriptingGuide_JS 168):

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]; 
}