如何导出特定 PSD 文件的字体信息以用于编写 CSS

平面设计 adobe-photoshop css 插入
2022-02-12 22:17:15

我正在做前端开发,所以这个问题来自这个角度。当我收到一个.psd我手动浏览设计中的每种字体时,单击它,然后使用字符面板获取字体、颜色、大小、字距等。有时,我得到一个使用几种不同字体的设计(4+ ) 具有相同字体的许多变体(大小、颜色、重量等)。这是一项相当乏味的工作......无论如何,Photoshop 是否可以导出所有使用的字体及其变体的列表?例如,像这样的列表:

Arial 粗体 16px 黑色
Arial 常规 14px 黑色
Arial 常规 14px 蓝色
Oswald 32px rgb(13,74,56)
...

对此有什么建议吗?此外,如果有某种插件可以将这些信息放在元素上,那就太棒了!

谢谢。

4个回答

当然,您可以使用 ExtendScript Toolkit 来调查和操作 Photoshop 文档。有关更多信息,请查看文档或搜索各种 PS 脚本论坛。

根据本文中的脚本我编写了以下脚本。对于PSD文件中的每个文本层,它会将字体、字体大小和填充颜色打印到 javascript 控制台:

function run(){
    var layerSets = app.activeDocument.layerSets;
    dumpLayerSets(layerSets);

    $.writeln("Top-level layers:");
    dumpLayers(app.activeDocument.layers);

}

function dumpLayerSets(layerSets){
    $.writeln("--- Processing...");
    var len = layerSets.length;
    for(var i=0;i<len;i++){
         var layerSet = layerSets[i];
         //$.writeln(layerSet.name);
         dumpLayers(layerSet.artLayers);
    }
}

function dumpLayers(layers){
    var len = layers.length;
    for(var i=0;i<len;i++){
         var layer = layers[i];
         if(layer.kind==undefined){
                continue;
         }
        if(layer.kind == LayerKind.TEXT){
         $.writeln('font: '+ layer.textItem.font +' font-size: ' + layer.textItem.size + ' color: #' + layer.textItem.color.rgb.hexValue);
        }
    }
}
run();

要进行测试,请在 Photoshop 中打开带有文本图层的文档。打开 ExtendScript Toolkit 并将其链接到您的 Photoshop 实例。将上面的代码粘贴到工作区并点击运行按钮。

ExtendScript 工具包截图

基于此文件: 文本分层 PSD 文件

我收到以下输出:

--- Processing...
Top-level layers:
font: MyriadPro-It font-size: 144 pt color: #0000FF
font: MyriadPro-Bold font-size: 144 pt color: #00FF00
font: MyriadPro-Regular font-size: 144 pt color: #FF0000
Result: undefined

photoshop 插件SpecKing可以选择在您的 photoshop 文件中显示/生成所有印刷规范 - 这有帮助吗?我自己没有尝试过,但它看起来很有用。

请记住,CSS 字体匹配基于字体系列名称,而不是全名(例如“Myriad Pro Bold”)或 PostScript 名称(例如“MyriadPro-Bold”)。OSX 上的 Chrome/Safari 将匹配 PostScript 名称,但这是非标准行为,它在 Firefox 中不起作用,在任何基于 Windows 的浏览器中都不起作用。要在 CSS 中使用,您需要将 PostScript 名称映射到家庭/重量/样式组合,因此不要使用 MyriadPro-BoldIt:

font-family: Myriad Pro;
font-weight: bold;
font-style:  italic;

等等

有一些插件/服务允许您从 PSD 中提取此(和其他信息):