将复制图层设置为另一个文档

时间:2013-05-10 07:01:37

标签: scripting adobe-indesign jsx

我正在尝试编写一个脚本,将一个图层从一个文档复制到另一个文档。

var srcDocName = 0;
var destDocName = 1;
var layerNameOriginal = "Original";
var layerNameCopyTo = "Destination";

var destDoc = app.documents.item(destDocName);
var layerSrc = app.documents.item(srcDocName).layers.item(layerNameOriginal);

try {  
        layerSrc.duplicate(destDoc, ElementPlacement.INSIDE);
    }
    catch(e) {  
        alert(e)    
    }
显然,这可以在Photoshop中使用,但不能在凹痕中使用。我一直在努力为Indesign脚本找到一些不错的文档。但我能找到的只是CS脚本指南,它没什么用处。

http://wwwimages.adobe.com/www.adobe.com/content/dam/Adobe/en/products/indesign/pdfs/InDesignCS5_ScriptingGuide_JS.pdf

如果有人能指出我对对象模型的一个很好的参考,我将不胜感激。

3 个答案:

答案 0 :(得分:2)

经过一番谷歌搜索后,我终于找到了答案:

 var sourceLayer = app.documents[0].layers.itemByName("Layer1");
 var destLayer = app.documents[1].layers[0];

 sourceLayer.pageItems.everyItem().duplicate(destLayer);

我也遇到jongware,这似乎是直接从Adobe CS中提取的完整对象引用。

答案 1 :(得分:0)

您可以使用此脚本:https://redokun.com/blog/indesign-copy-entire-layer-one-file-another

底层实现基本相同,但我们添加了一个UI,因此每次图层名称更改时都不需要编辑脚本。

编辑:我们被告知上述解决方案不适用于线程文本框架,因此我重新编写了脚本。新的实现方式更复杂,但它现在支持线程TF。

答案 2 :(得分:0)

要扩展Loopo提供的解决方案,并使您能够将所有层从一个文档复制到另一个文档...

fadeIn()