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

有人可以引导我使用正确的语法来用标签(在本例中为“图像”)封装数组中找到的每个对象吗?

提前致谢 !

4

1 回答 1

1

@Wokoman -- 如您所说,用 XML 标记封装图像:

  • 首先为每个图像创建一个名为“Image”的 XML 标签
  • 从该标记创建一个 XML 元素
  • 然后将每个图像插入 XML 元素

您正在尝试更改 Image 对象的属性,但  Image  没有这些属性  changeTextPreference.markupTag  (请参阅InDesign 对象模型 --> Image以供参考)。

 Application  具有这些属性  changeTextPreference.markupTag (请参阅InDesign 对象模型 --> changeTextPreference以供参考)。


所以,试试这个(这是未经测试的,基于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];
}
于 2012-08-08T04:40:56.570 回答