查找 Photoshop 文件中使用的所有字体

dav*_*ave 58 fonts adobe-photoshop

我有这个.psd(Photoshop 文件),我正在尝试将其转换为 HTML 和 CSS。

我唯一无法确定的是他们在 .psd

如何找出 Photoshop 文件中使用的字体?

ran*_*dom 65

取决于您想如何提取信息。

每个部分或文本区域

选择文本工具(带衬线的T图标)并单击文本区域进行编辑。它将显示字符窗口中正在使用的字体。

使用的所有字体一目了然

  1. 将图像文档保存或导出为 PDF
  2. 在 Adob​​e Reader 中打开 PDF 版本
  3. 选择文件 ?特性 ?字体

这将列出PSD 文件中使用的所有可嵌入字体,前提是您可以嵌入它们。

缺少字体

在字符工具中,转到字体选择下拉列表。列表末尾将是图像中使用但系统中缺少的字体。这些通常会变灰。

光栅化图像

如果您看到任何需要字体外观的光栅化图像,您最好仅将该部分导出为清晰的独立图像,并使用像什么字体这样的服务来确定字体。


dav*_*rey 25

将此脚本另存为 Photoshop > Presets > Scripts 文件夹中的新文件。随意命名,例如“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.',);
}
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明


Red*_*ick 8

Adobe记录了PSD 文件格式- 您可以阅读它如何存储字体信息。

然后,您可以检查文件的十六进制转储并使用文件格式规范来查找字体。

或者,字体名称应该strings在 Linux/Unix 系统上的实用程序的输出中可见。

  • +1:我想出了同样的解决方案。出于某种原因,GIMP 没有正确导入 PSD,我不知道它使用的是哪种字体。我在十六进制编辑器中分析了 PSD 文件以找到它(搜索:“字体”作为文本)。推荐编辑:“祝福”。 (2认同)

Dav*_*vid 6

这实际上很容易使用 PS 脚本来完成,它可以遍历 PSD 的图层并提取文本图层数据。

我最近一直在试验基于 JavaScript 的脚本,以将字体信息直接覆盖在交付给开发人员的组件上。它还没有完成,但如果还有兴趣(我看到这已经很老了),我可以提供一个快速而肮脏的版本,它只是弹出窗口中使用的字体。

更新:我整理了我正在开发的脚本的一个粗略但有效的“精简版”版本。随意贡献 - https://github.com/davidklaw/completer。对于那些不熟悉脚本的人,只需将脚本文件放在您的 PS Presets/Scripts 文件夹下,它就会在 File -> Scripts 下可用。