Photoshop JSX -- 如何将任意文本复制到剪贴板?

5

目前我正在使用提示命令作为解决办法,从我的Photoshop JSX脚本中复制任意文本。

prompt("to copy",(horizontalcenter.toString()) + ", " + verticalcenter.toString());

这样可以给我想要的信息。 "复制" 只给出标题,然后我想从 Photoshop 复制出来的信息已经在提示框中被选择了。所以我只需要按下 control C,进入我需要这些信息的 Notepad++,然后按下 control V。

这种方法可以使用,但速度可能不够快。难道没有一种直接将这些信息从 Photoshop 复制到剪贴板的方法吗?


可能的解决方案--将字符串写入图像上的文本层。然后在Photoshop中使用有限的剪贴板脚本方法。供我以后参考,它们适用于对象ArtLayer / Selection / Document。但是ArtLayer和Selection是唯一具有复制功能的对象。有关更多信息,请参见Adobe CS4 Scripting Guide的第54页:http://www.adobe.com/content/dam/Adobe/en/devnet/photoshop/pdfs/photoshop_cs4_scripting_guide.pdf - Lars Markelson
有人有在 Mac 上可行的解决方案吗? - Aaron
2个回答

6

Photoshop 13.1(Photoshop CS6的最新创意云版本)现在有一个钩子,允许您直接执行此操作。以下是示例函数:

function copyTextToClipboard( txt )
{
    const keyTextData         = app.charIDToTypeID('TxtD');
    const ktextToClipboardStr = app.stringIDToTypeID( "textToClipboard" );

    var textStrDesc = new ActionDescriptor();

    textStrDesc.putString( keyTextData, txt );
    executeAction( ktextToClipboardStr, textStrDesc, DialogModes.NO );
}

请注意,此功能仅适用于13.1及以上版本的Photoshop。

5

在一个Photoshop脚本论坛上找到了答案。

http://ps-scripts.com/bb/viewtopic.php?f=9&t=3097&p=15324&hilit=clipboard&sid=1b1cc023023b9f91ab46e30e48e2ab53#p15324

function copyTextToClipboard(text)
{
   var folderForTempFiles = Folder.temp.fsName;

   // create a new textfile and put the text into it
   var clipTxtFile =new File(folderForTempFiles + "/ClipBoard.txt"); 
   clipTxtFile.open('w'); 
   clipTxtFile.write(text); 
   clipTxtFile.close();

   // use the clip.exe to copy the contents of the textfile to the windows clipboard
   var clipBatFile =new File(folderForTempFiles + "/ClipBoard.bat"); 
   clipBatFile.open('w'); 
   clipBatFile.writeln("cat \"" + folderForTempFiles + "/ClipBoard.txt\"|clip"); 
   clipBatFile.close(); 
   clipBatFile.execute();
}

这是将您想要复制的文本放置在临时文本文件中,然后从该文本文件中复制。我甚至不知道您可以将文本放入文本文件中。显然,Photoshop中的javascript功能比我意识到的要强大得多!


值得注意的是,这个答案仅适用于Windows,但你可以在OS X上使用pbcopy做类似的事情。 - Yona Appletree

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接