【问题标题】:Copy and paste multiple times from illustrator to photoshop从 Illustrator 复制和粘贴多次到 Photoshop
【发布时间】:2018-06-03 09:18:45
【问题描述】:

所以这是我遇到的小问题。我正在尝试将一个对象从 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 将当前剪贴板粘贴进去。

【问题讨论】:

  • 我对此进行了更多测试。我想也许添加 $.sleep(10) 可能会给我需要的暂停,但事实并非如此。我的一个想法是使用 while 命令停止脚本,然后等待 onReturn 命令。
  • 仍在处理这个问题。我使用的系统的小改动。我按顺序写出了我的步骤,并使用 switch 语句来通过它们。所以返回时它现在将进入下一步。不过,我仍然遇到将粘贴视为不可用命令的问题。
  • 仍在尝试。我只复制和粘贴一次,每 50 次运行中大约 1 次尝试在新文档准备好之前进行粘贴,但出现“粘贴不是有效命令”的错误

标签: javascript adobe photoshop adobe-illustrator extendscript


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-09-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多