Photoshop Scripting换行符

时间:2017-05-22 12:12:26

标签: javascript photoshop photoshop-script

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

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

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;

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

1 个答案:

答案 0 :(得分:1)

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

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


public class MMM {
    static void mergeCells(XSSFSheet sheet, String cells) {
        String regex = "([A-Z]+)(\\d+):([A-Z]+)(\\d+)";
        Pattern pattern = Pattern.compile(regex);
        Matcher matcher = pattern.matcher(cells);

        if(matcher.matches()) {
            int col1 = CellReference.convertColStringToIndex(matcher.group(1));
            int col2 = CellReference.convertColStringToIndex(matcher.group(3));

            int row1 = Integer.parseInt(matcher.group(2)) - 1;
            int row2 = Integer.parseInt(matcher.group(4)) - 1;

            sheet.addMergedRegion(new CellRangeAddress(row1, row2, col1, col2));
        }
    }

    public static void main(String[] args) throws IOException {
        OutputStream outputStream = new FileOutputStream("wwww2.xlsx");

        XSSFWorkbook workbook = new XSSFWorkbook();
        XSSFSheet sheet = workbook.createSheet();

        mergeCells(sheet, "AAD10:ADD23");

        workbook.write(outputStream);
        outputStream.close();
    }
}

PS似乎“ \ s +”在ExtendScript中不起作用,因此我使用的是“ / [\ r \ n]”:demo