我正在尝试设置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引用中找不到它。
答案 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;
}