Photoshop 脚本换行符

Posted

技术标签:

【中文标题】Photoshop 脚本换行符【英文标题】:Photoshop Scripting line break 【发布时间】:2017-10-22 02:15:30 【问题描述】:

我正在为 Photoshop 编写一个脚本,用户可以通过在脚本面板中输入来更改一些文本。

问题在于,当用户点击“回车”创建新行时,输出会显示“缺少字符”字形而不是换行符。

topRow.add ("statictext", undefined, "Text layer contents:");
var myText = topRow.add ("edittext", undefined, undefined, name: 'myText', multiline: true);
    myText.characters = 20;
    myText.preferredSize = [150,60];
    myText.active = true;

任何想法如何解决这个问题?

【问题讨论】:

我很难过。我知道它在 CS3 中发生了变化。更糟糕的是,如果你添加了 OK 和 Cancel 按钮,它会自动选择 OK 按钮而不是添加回车。 【参考方案1】:

距您提出此问题已有 2.5 年,但我通过搜索相同的问题遇到了您的问题。以下是我解决它的方法,希望它可以帮助其他人寻找答案:

如果你用默认的回车符(“\r”)替换所有可能出现的换行符,它在 PSCC20 中的工作就像一个魅力。这是一个有效的演示脚本:


w = new Window('dialog text:"Title"');

var inputText1 = w.add("edittext", [0,0,250,60], "Text 1", multiline: true, wantReturn: true); //multiline, uses return for line breaks instead of CTRL-return

var button = w.add('button text:"Change"');
button.onClick = function ()
            dummy = app.activeDocument.artLayers.getByName("Text");
            if(dummy.kind == LayerKind.TEXT)
            theText = inputText1.text.replace( /[\r\n]+/gm, "\r" ); 
            dummy.textItem.contents = theText;  
            w.close();
            
    

w.center();
w.show();

PS 看来“\s+”在ExtendScript中不起作用,所以我用的是“/[\r\n]”:What is the meaning of (/^\s+|\s+$/gm) in javascript?

【讨论】:

以上是关于Photoshop 脚本换行符的主要内容,如果未能解决你的问题,请参考以下文章

Photoshop 脚本指南

Photoshop脚本开发环境

photoshop能用哪些脚本语言?

Photoshop 脚本,重新打开上一个文档

Photoshop脚本学习之路-链接集合

如何在活动文档中加载图像? (Photoshop脚本)