我创建了一个非常基本的脚本,允许用户将所有文档(甚至图层集中)中的特定字体替换为另一种字体。
一个实践示例:我想将所有 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/