本帖最后由 kftianji 于 2019-2-14 05:43 编辑
这次是ps里的字体,文字图层
参考:Adobe CEP 扩展开发教程 「 6 」 Photoshop 中文脚本参考 – 浅藏的宝藏
PhotoShop脚本指南 (这个文章在腾讯 云社区中)
酷课堂 Photoshop脚本
参考请用度娘自行搜索
--------------------
文件1.遍历系统字体:弹出对话框里显示的字体名称一部分和ps里字体名称不一样,特别是中文输入法。
[JavaScript] 纯文本查看 复制代码
var txtfonts=app.fonts//指向windows字体库
var msge
for(var i=0; i<txtfonts.length; i++)//循环次数小于字体总数
{
msge+= (i+1)+" - "+txtfonts[i].name+"\r\n"
}
alert(msge)
图层关键字:
LayerSet(组)
ArtLayer(图层)
Layer(包括组和图层)
======================================
文件1执行后对话框显示的字体或ps字体库显示的字体,直接用【app.activeDocument.layers.textItem.font="某某某字体"】设置字体 大部分在脚本里都无法调用到,
特别是中文字体,比如方正字体之类的,英文字体还好点,很多直接能用。既然用app.fonts.name得到windows字体库的各个名称在ps内核中无法被识别,那么,改用读取图层内的字体这种方式,来看看各个字体在ps内核里定义的变量名叫什么吧!
以下文件需要现在D盘建立一个vv2.txt文件,然后在ps里建文字图层输入文字修改字体,多来几个文字图层,每个文字图层设置成不同的字体,然后运行文件2. 文件2.读取所有文字图层的字体保存到文件: [Asm] 纯文本查看 复制代码 var fileOut=new File("D:\\vv2.txt")//把写入的文本全路径指定给变量
var docLayer=app.activeDocument.layers//文档图层
var layerlen=docLayer.length//图层总数
var layerkind=LayerKind.TEXT//docLayer.kind图层的值
var fontchange//临时变量
var message
var msgI=0//计数器
fileOut.open("w","TEXT","????")//打开文档
for(var i=0;i<layerlen;i++){
if(docLayer[i].kind==layerkind)//图层属性是否为text文本图层
testone(docLayer[i])//遇到文本图层进函数testone()
}
function testone(comeIn){
var text=comeIn.textItem
fontchange=text.font//当前图层字体存入变量fontchange
massage+=(msgI+1)+" - "+fontchange+"\n\r"
msgI++//在文本中计数
}
fileOut.write(massage)//写文本
fileOut.close()//关闭文本文件
字体的各个名称:
ps中显示 | 在文件1弹出对话框显示为 | 字体本身文件名 | windows字体库显示为 | ps脚本可调用 | “方正胖娃简体” | "FZPangWa-M18S" | ”FZPWJW.TTF“ | “方正胖娃简体 常规” | ”FZPWJW--GB1-0“ |
fileOut.open("w","TEXT","????")参1:可写。参2:文件类型。参3:文件作者(可无)
文件3.对文字图层做一些操作:
[JavaScript] 纯文本查看 复制代码 var docLayer=app.activeDocument.layers//文档图层
var layerlen=docLayer.length//图层总数
var layerkind=LayerKind.TEXT//docLayer.kind图层的值
var fontchange="FZPWJW--GB1-0"//字体:方正大黑简体
var txtsize=20//文字大小
var txtcolor=new SolidColor()//ps新建'动作'
txtcolor.rgb["hexValue"]="e32424"//‘动作’:颜色设置
for(var i=0;i<layerlen;i++){
if(docLayer[i].kind==layerkind)//图层属性是否为text文本图层
testone(docLayer[i])
}
unction testone(comeIn){
var text=comeIn.textItem
text.size=txtsize//字大小
text.font=fontchange//字体
text.color=txtcolor//字颜色
//txtstroke()//文字描边...下次再谈
}
此脚本调节了字的大小、字体和字的颜色
=========================================
文字调节相关命令(一部分,不带处理英文的):
TextItem
contents 文本内容
color 文本颜色
position 文本框位置,以数组形式表示:[X1, Y1,X2,Y2]
size 字体大小
alternateLigatures 自由连字
antiAliasMethod 消除锯齿方式
AntiAlias.CRISP 犀利
AntiAlias.NONE 无
AntiAlias.SHARP 锐利
AntiAlias.SMOOTH 模糊
AntiAlias.STRONG 浑厚
Winodws使用 ActionDescriptor
autoKerning 字距调整
AutoKernType.MANUAL 手动指定
AutoKernType.METRICS 度量标准
AutoKernType.OPTICAL 视觉
useAutoLeading 使用自动行距
autoLeadingAmount 自动行距数量 [0.01 ~~ 5000.00]
baselineShift 基线偏移
desiredGlyphScaling 字符缩放期望[50~~200],用于 2 侧对齐时
desiredLetterScaling 字距缩放期望[100~~500],用于 2 侧对齐时
direction 文本取向
Direction.HORIZONTAL 水平
Direction.VERTICAL 垂直
fauxBold 仿粗体
fauxItalic 仿斜体
firstLineIndent 首行缩进,单位是 pt
font 指定字体
horizontalScale 水平缩放 [0~~1000]
hyphenation 换行时使用连字符
hyphenateAfterFirst 换行符后可以有多少字[1~~15]
hyphenateBeforeLast 换行符前可以有多少字[1~~15]
justification段落对齐方式:
Justification.LEFT 左对齐
Justification.CENTER 居中
Justification.RIGHT 右对齐
Justification.LEFTJUSTIFIED 两侧对齐,最后一行左对齐
Justification.CENTERJUSTIFIED 两侧对齐,最后一行居中
Justification.RIGHTJUSTIFIED 两侧对齐,最后一行右对齐
Justification.FULLYJUSTIFIED 两侧对齐,全部对齐
kind 文本类型
TextType.PARAGRAPHTEXT 段落文字,文本框
TextType.POINTTEXT 点文本,没有文本框
leading 行距
leftIndent 左缩进[-1296~~1296 pt]
rightIndent 右缩进[-1296~~1296 pt]
ligatures 使用连字
spaceAfter 断后添加空格[-1296~~1296 pt]
spaceBefore 断前添加空格[-1296~~1296 pt]
maximumGlyphScaling 最大字符缩放[50~~200]
minimumGlyphScaling 最小字符缩放[50~~200]
noBreak 不自动换行
oldStyle 使用老样式
underline 下划线
UnderlineType.UNDERLINELEFT 左下划线
UnderlineType.UNDERLINERIGHT 右下划线
UnderlineType.UNDERLINEOFF 无下划线
strikeThru 删除线
StrikeThruType.STRIKEBOX 偏上
StrikeThruType.STRIKEHEIGHT 中间
StrikeThruType.STRIKEOFF 无删除线
tracking 字距调整值[-1000~~10000]
useAutoLeading 自动行距
verticalScale 垂直缩放[0~~1000]
convertToShape() 转换为形状
createPath() 创建工作路径
-------------------------------- 再添加一点点: [JavaScript] 纯文本查看 复制代码 [/align]var Ref = app.activeDocument
Ref.activeLayer =Ref.layers[0]//当前文档,选择某图层
另外一个
[JavaScript] 纯文本查看 复制代码 $.evalFile("F:/字体/jsx/wordval.jsx")//链接wordval.jsx文档
var Ref = app.documents
app.activeDocument= Ref[3]//ps内多文档时,切换到指定文档
|