从插画家到photoshop多次复制和粘贴

时间:2017-12-20 18:34:50

标签: javascript adobe photoshop adobe-illustrator extendscript

所以这是我遇到的小问题。我试图从illustrator发送一个对象到photoshop,但我想复制并过去2个版本的一个被抚摸,一个被抚摸。我遇到的主要问题是在完成2个不同版本后,在Photoshop中粘贴。 P是作为轮廓的路径项。所以它会粘贴两个没有笔划的版本,因为它在第二个副本运行后第一次运行。

function CreateLabel(Label)
{
    var P = Label.pageItems[0]
    app.copy()

     // get Print Area Width and Height and convert to inces at 300 DPI
    var LW = "\"" + String(Math.floor((Label.width/72)*300)) + "px\""
    var LH = "\"" + String(Math.floor((Label.height/72)*300)) + "px\""

    // create the new document
    var Cmd = "app.documents.add(" + LW + "," + LH + ", 300,\"Label\", NewDocumentMode.RGB,DocumentFill.TRANSPARENT);";  
    TellPhoto(Cmd)

    app.copy()
    TellPhoto('app.activeDocument.paste();')

    P.stroked = false
    app.copy()
    TellPhoto('app.activeDocument.layers.getByName(\"Layer 1\").remove();'  )

     //bt.body = 'BridgeTalk.bringToFront("illustrator");';
     //bt.send(5)
}; 

// paste the saved bit
function TellPhoto(Message)
{
    var bt = new BridgeTalk();  
    bt.target = "photoshop";  
    bt.body = Message  

    bt.onError = function(e)
    {  
        alert(e.body);  
    };

    bt.send(1);  
}

所以我需要一些几乎暂停的东西,直到photoshop粘贴当前的剪贴板。

1 个答案:

答案 0 :(得分:1)

我有时会用app.copy()app.paste()命令遇到类似的故障。在$.sleep(200)之前,通常需要额外的暂停(app.paste())。我的猜测是,当另一个应用程序(Bridge或同一个Illustrator)尝试粘贴数据时,该应用程序(Illustrator)只是无法跟上所有数据的复制。