2013-05-10 32 views
3

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

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。我一直在努力寻找Indesign脚本的一些体面的文档。但我能找到的只是CS脚本指南,这并没有多大用处。

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

如果有人可以指向我一个很好的参考对象模型我将不胜感激。

回答

2

经过一些google搜索,我终于找到了答案:

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

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

我还隔着jongware来到这似乎是直接提炼出来的Adobe CS的一个完整的对象引用。

+1

干得好,朋友! – bgmCoder 2013-11-26 17:59:29

0

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

底层的实现基本上是相同的,但我们增加了一个界面,因此它没有必要每次都修改脚本图层名称的变化。

编辑:我们已经被告知上述解决方案不适用于线程文本框架,所以我重新编写了脚本。新的实现方式比较复杂,但现在支持线程化TF。

相关问题