photoshop cs3脚本 - 字体名称

时间:2013-12-13 20:04:18

标签: photoshop-script photoshop-cs3

我正在尝试设置textItem的字体,使用接受字符串的textItem.font,但我不知道要在代码中引用的确切字体名称, 我正在努力实现这样的目标

var newLayer = docRef_1.artLayers.add();
newLayer.kind=LayerKind.TEXT;
var textItemRef = newLayer.textItem;
textItemRef.contents = someCharacter;
textItemRef.size = 120;
textItemRef.font="Verdana-Bold";

但代码中引用的字体名称与photoshop UI中显示的字体名称不同 例如Arial是ArialMT,arial bold是Arial-BoldMT。我在哪里可以获得所有字体名称? 我在javascript引用中找不到它。

3 个答案:

答案 0 :(得分:2)

Photoshop可用的字体列在app.fonts中。要将所有字体列入Extendscript Tools控制台,请执行:

for (i=0; i< app.fonts.length; i++) {
    $.writeln(app.fonts[i].name);
}

您可以使用app.fonts.getByName('String')方法调用名称中与app.fonts匹配的String数组中的第一个字体。

答案 1 :(得分:0)

这是一个针对尚未找到解决方案的人的脚本: http://regex.info/Show-Font-Name.jsx

答案 2 :(得分:0)

显示的字体名称和内部字体名称之间存在差异。在您的脚本中,您必须使用内部名称。此功能可以帮助您:

var internalFontName = getInternalFontName("Trebuchet MS Bold");    

function getInternalFontName(pFontName) {
    for (var i = 0; i < app.fonts.length; i++) {
       if (pFontName == app.fonts[i].postScriptName) {
           return pFontName; // already is an internal font name.
       }
       if (pFontName == app.fonts[i].name) {
           return app.fonts[i].postScriptName; // found an internal name.
       }
   }   
   return null;
}