javascript - 区分同一文本层内的多种字体

标签 javascript photoshop photoshop-script

我创建了一个非常基本的脚本,允许用户将所有文档(甚至图层集中)中的特定字体替换为另一种字体。

一个实践示例:我想将所有 Arial-Bold 替换为 Arial-Italic,但某些 TextLayers 在同一 Layer 内有 Arial-Bold 和 Arial-Regular,如何使脚本只更改 Arial-Bold TextLayer 的一部分而不是整个图层?

我当前使用的代码:

var inFont = prompt("write inFont","Write inFont");
var outFont = prompt("write outFont","Write outFont");

app.preferences.typeUnits = TypeUnits.PIXELS;
var doc = app.activeDocument;

function changeFonts(target){
    var layers = target.layers;
    for(var i=0;i<layers.length;i++){
        if(layers[i].typename == "LayerSet"){
            changeFonts(layers[i]);
        } else {
            if((layers[i].kind == LayerKind.TEXT) && (layers[i].textItem.font == inFont)) {
                layers[i].textItem.font = outFont;
            };
        };
    };
};

changeFonts(doc);

最佳答案

我假设您必须浏览文本并查看每个单独的字符。这是一篇讨论格式化特定字符范围的文章。 Formatting text ranges 。 您可以使用类似的方法一次一个字符地循环文本,检查格式并根据需要进行更改。我想不出任何其他方法来解决这个问题。

关于javascript - 区分同一文本层内的多种字体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33300110/

相关文章:

javascript - 为什么显式调用时 NodeJS 函数参数的行为不同?

iphone - 将 PSD 解析为 Xcode/IB 的工作流程

Photoshop 中阴影/高光滤镜背后的算法

javascript - 为什么 jQuery 选择器会返回 null?

javascript - Sublime Text 自动完成覆盖片段

javascript - Photoshop 脚本根据像素尺寸调整图像大小(脚本现在无法工作)

ios - 在 Photoshop 中自动保存 iPhone 图像

javascript - getFiles() 不是文件夹

javascript - 在Vue模板中使用索引访问数组数据

html - Photoshop 和 CSS3 背景阴影