Answers:
取决于您要如何提取信息。
选择文本工具(带衬线的T图标),然后单击文本区域以对其进行编辑。它将显示“字符”窗口中正在使用的字体。
这将列出 PSD文件中使用的所有可嵌入字体,前提是您可以嵌入它们。
在“字符”工具中,转到字体选择下拉列表。列表的末尾将是图像中使用的字体,但系统中缺少这些字体。这些通常将显示为灰色。
如果看到需要光栅化字体的任何光栅化图像,则最好仅将该部分导出为清晰的独立图像,并使用诸如“字体”之类的服务来确定字体。
将此脚本另存为Photoshop>预设>脚本文件夹中的新文件。随意命名,例如“ Detect Fonts.jsx”
var p = new ActionReference();
function arrayUnique(a){
var t = []
i = a.length;
while(i--) {
var f = false,
n = t.length;
while (n--) {
if(a[i] === t[n]) {
f = true;
}
}
if(!f) {
t.push(a[i]);
}
}
return t;
}
function findFonts() {
p.putEnumerated( charIDToTypeID('Dcmn'), charIDToTypeID('Ordn'), charIDToTypeID('Trgt') );
var c = executeActionGet(p).getInteger(charIDToTypeID('NmbL'))+1,
fonts = [];
while(c--) {
var r = new ActionReference(),
descLayer,
layerStyles,
countStyles;
r.putIndex( charIDToTypeID( 'Lyr ' ), c );
try {
descLayer = executeActionGet(r);
} catch (e) {
continue;
}
if(!descLayer.hasKey(stringIDToTypeID( 'textKey' ))) continue;
layerStyles = descLayer.getObjectValue(stringIDToTypeID('textKey')).getList(stringIDToTypeID('textStyleRange'));
countStyles = layerStyles.count;
while(countStyles--) {
var n = layerStyles.getObjectValue(countStyles).getObjectValue(stringIDToTypeID('textStyle')).getString(stringIDToTypeID('fontPostScriptName'));
fonts.push(n);
}
}
return arrayUnique(fonts).sort();
}
if (documents.length) {
var d = findFonts();
alert(d.length +' fonts found\n'+d.join('\n'));
} else {
alert('No fonts used in the active document.',);
}
使用PS脚本实际上很容易做到,它可以遍历PSD的各层并提取文本层的数据。
最近,我一直在尝试使用基于JavaScript的脚本来将字体信息直接覆盖在提供给开发人员的comps上。它还没有完成,但是如果仍然有兴趣(我认为这已经很老了),我可以提出一个简单快捷的版本,该版本会弹出窗口中使用的字体。
更新:我整理了正在开发的脚本的粗略但有效的“精简”版本。随时贡献-https://github.com/davidklaw/completer。对于那些不熟悉脚本的人,只需将脚本文件放入PS Presets / Scripts文件夹下,即可在File-> Scripts下使用。
快速简单的方法来查找丢失的字体
Windows->字符将显示一个小字符框,其中包含字体信息。
选择字体名称下拉列表,然后向下滚动直到结束。
您会在字体列表的末尾看到浅灰色缺少的字体列表。
来自:http : //www.bala-krishna.com/how-to-find-fonts-used-in-psd-file/
如果文本已经被光栅化,则简单的方法是使用您要识别的字体裁剪区域,另存为.png并将其上传到WhatTheFont,它应该能够告诉您它是什么,除非它是晦涩或定制的。
Identifont是您可以使用的另一个站点,您可以在其中描述字体的特征。
我会花一点时间来查找您需要的文本(最好是放大),然后使用WhatTheFont进行猜测。(但是,当您打开PSD并选择相应的文本时,是否不显示字体?)
当然,如果它不是网络安全的字体,则需要找到一种适当的方式来替换它或提供备用堆栈。
基于David的原始答案(DetectFonts.jsx),我修改了脚本以解决Drew在注释中报告的问题:查找Photoshop文件中使用的所有字体。
遵循原始说明,但改用此脚本主体-唯一的区别是一些空检查(大概是photoshop版本的区别,或与某些特定对象类型(可能是设计者或操作系统特定)上的数据丢失有关。
我还将向https://github.com/dcondrey/DetectFontsinPSD提交拉取请求
var p = new ActionReference();
function arrayUnique(a) {
var t = []
i = a.length;
while (i--) {
var f = false,
n = t.length;
while (n--) {
if (a[i] === t[n]) {
f = true;
}
}
if (!f) {
t.push(a[i]);
}
}
return t;
}
function findFonts() {
p.putEnumerated(charIDToTypeID('Dcmn'), charIDToTypeID('Ordn'), charIDToTypeID('Trgt'));
var c = executeActionGet(p).getInteger(charIDToTypeID('NmbL')) + 1,
fonts = [];
while (c--) {
var r = new ActionReference(),
descLayer,
layerStyles,
countStyles;
r.putIndex(charIDToTypeID('Lyr '), c);
try {
descLayer = executeActionGet(r);
} catch (e) {
continue;
}
if (!descLayer.hasKey(stringIDToTypeID('textKey'))) continue;
layerStyles = descLayer.getObjectValue(stringIDToTypeID('textKey')).getList(stringIDToTypeID('textStyleRange'));
if(!layerStyles) continue;
countStyles = layerStyles.count;
while (countStyles--) {
var textStyle = layerStyles.getObjectValue(countStyles).getObjectValue(stringIDToTypeID('textStyle'));
if(!textStyle || !textStyle.hasKey(stringIDToTypeID('fontPostScriptName'))) continue;
var n = textStyle.getString(stringIDToTypeID('fontPostScriptName'));
fonts.push(n);
}
}
return arrayUnique(fonts).sort();
}
if (documents.length) {
var d = findFonts();
alert(d.length + ' fonts found\n' + d.join('\n'));
} else {
alert('No fonts used in the active document.');
}
开发人员问我几乎与您需要的想法相同。我想出了编辑简单脚本的方法,可以将开发时需要的图层属性(文本,字体名称,字体大小,字体颜色)导出到单个txt文件中(应在Windows计算机上使用)。
只需将其保存为“ ExportTexts.js”,然后放入Adobe Photoshop>预设>脚本即可。
之后,运行(或重新启动)Photoshop并运行脚本(文件->脚本-> ExportTexts)。还要确保在执行此操作之前取消所有图层的分组。导出的文件应与psd文件位于同一目录中。
if (documents.length > 0)
{
var docRef = activeDocument;
CurrentFolder = activeDocument.path;
var outputFile = new File(CurrentFolder + "/" + activeDocument.name + "fonts.txt" );
outputFile.open("w");
for (var i = docRef.layers.length-1 ; i >=0 ; i--)
{
docRef.activeLa`enter preformatted text here`yer = docRef.layers[i]
if (docRef.activeLayer.kind == LayerKind.TEXT)
{
outputFile.write(
docRef.activeLayer.textItem.contents + "\n" +
docRef.activeLayer.textItem.font +"," +
docRef.activeLayer.textItem.size +"," +
docRef.activeLayer.textItem.color.rgb.hexValue + "\n\n\n");
}
}
outputFile.close();
alert("Finished");
}
else
{
alert("You must have at least one open document to run this script!");
}
docRef = null
有一个免费的Photoshop Extension / Panel可以为您完成这项工作,免费的Photoshop字体检测器(http://www.layerhero.com/photoshop-font-detector/),以及是否要从系统收集/复制字体文件文件夹,请尝试使用Photoshop Art Packer(http://www.layerhero.com/photoshop-art-packer/)
我想了解文档字体以及它们的样式,大小,颜色,格式等,以用于Web开发和CSS用途,因此,我想到了以下内容:
要从PSD文件中获取字体信息,可以使用在线工具(如果不能或不使用Photoshop,或者可以使用Gimp来光栅化PSD字体)。
例如,您可以尝试使用此html5 PSD字体在线提取器 “ Get PSD Fonts”。
这是一个基于Melitingice Github项目psd.js的PSD字体信息提取器,不需要上载文件,可以在浏览器页面上本地工作