收到一位客户的 PSD 稿件,是关于招聘的内容,一条条的职位要求、职责啥的。当我点开图层组时顿时被这位工作认真的态度和超乎不正常人的耐心所折服。只见图层面板首尾不能相见的文本图层,每一职位要求、职责、标题、词组、不黑的字都是一个个独立的图层。
我要怎样才能把这些文字复制到 Dreamweaver 呢?当我发现如果使用复制粘贴的方法很快会想要呕吐后摸出了 Extends cript Toolkit,东拼西凑搞出这个脚本文件“ps-save-layer-text-to-file.jsx”(附有下载),其内容如下:
[code]
#target photoshop
/*
* filename: ps-save-layer-text-to-file.jsx
* s cript by Jie Tsui (macparno(a)gmail.com)
* http://blog.imwebs.com/article.asp?id=611
* 2013-11-11
*/
function main(){
if(!documents.length) return;
var doc=activeDocument;
var f=File.saveDialog ("保存为文本文件", "文本文件:*.txt");
if(f){
f.open("a");
f.write(scanLayerSets(doc));
f.close();
alert("所有图层上的文本已保存到文件:"+f.fullName);
}
}
function scanLayerSets(el){
var mystr="";
for(var a=0; a
var ly=el.layerSets[a].typename;
if(ly=="LayerSet"){
mystr+=scanLayerSets(el.layerSets[a]);
}
}
for(var j=0;j
var lk=el.artLayers[j].kind;
if(lk=="LayerKind.TEXT"){
mystr+=el.artLayers[j].textItem.contents + "\n";
}
}
//alert(mystr)
return mystr;
}
main();
[/code]
打开那个 PSD 文件,执行菜单命令“文件”>“脚本”>“浏览”,选择这个 jsx 文件……
......
.....
....?
...!
居然好几分钟后 Photoshop 才又可以操作了,难道图层太多,居然性能这么差,好在这时桌面上有了我要的文本文本,内容即是这个 PSD 文件中所有文本图层的文字。
以上在 Photoshop CS6 中实现,你有更好的办法吗?