PhotoShop自动识别并安装字体的脚本

PhotoShop主要是美术在使用,在遇到其它同事也需要使用psd做一些操作时,就很容易遇到字体缺失的问题。

 

看到有同事还要手工去查找,然后复制、安装字体库,就希望写个脚本帮他们简化下工作。代码也比较简单,读取图层 –> 识别所使用的字库 –> 查询字库是否存在(不存在就去指定字体库找字体,找到后打开它)

 

!(function() {
    var layers = app.activeDocument.artLayers;
     var textLayer = layers[layers.length - 1];
     if (textLayer.kind == LayerKind.TEXT) {
         var textLayerItem = textLayer.textItem;
         var textLayerFont = textLayerItem.font;
 
        /*
         for (var i = 0, len = app.fonts.length; i < len; i++) {
             alert(app.fonts[i].name);
             break;
         }
         */
 
        var fontName = textLayerFont.split('-')[0];
         var fontFileStr = fontName + ".TTF";
 
        var fontCacheDir = "C:/Windows/Fonts";
         var sourceFontFilePath = "//字体存放的共享目录地址/" + fontFileStr;
         var targetFilePath = fontCacheDir + "/" + fontFileStr; 
 
        // var fontCacheFiles = new Folder(sourceFontFilePath).getFiles();
         // alert(fontCacheFiles.length);
 
        // 在系统盘里查找指定字体是否存在
        if (File(targetFilePath).exists) {
             alert('字体文件[' + fontName + ']已存在,无需导入');
         } else {
             var fontFileObj = new File(sourceFontFilePath);
             if (fontFileObj.exists) {
                 var openResult = fontFileObj.execute();
                 if (openResult == false) {
                     alert('字体文件安装失败!' + sourceFontFilePath);
                 } else {
                     // 刷新字体 (暂时未找到安装成功返回的监听事件)
                     app.refreshFonts();
                 }               
             } else {
                 alert('未找到指定的字体文件:' + sourceFontFilePath);
             }           
         }
     } else {
         alrt('最顶部的图层非文本图层');
     }
 })();

  

参考链接:

https://blog.cutterman.cn/2021/09/18/photoshop-plugin-types/

https://blog.cutterman.cn/assets/files/photoshop-cc-javascript-ref.pdf

https://blog.cutterman.cn/assets/files/JavaScript-Tools-Guide-CC.pdf

posted @   meteoric_cry  阅读(940)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 字符编码:从基础到乱码解决
历史上的今天:
2021-07-06 chrome打开本地链接
2017-07-06 bugly中批量隐藏版本
2011-07-06 构建第一个Flex的Mobile APP
2011-07-06 JavaScript监控当前cpu使用状况
2011-07-06 域与并行下载的问题
点击右上角即可分享
微信分享提示