从智能对象和图层替换Photoshop中的关键字
Replace keyword in Photoshop from Smart Objects and Layers
我有一个包含多个PSD文件的PSD Web模板,我需要替换所有文件中的一个关键字。如果我使用内置的Find&替换它一次只替换一个PSD文件,而且它不会替换智能对象中的文本。
有没有这样的脚本可以帮助替换PSD(也可以在文件夹中的多个PSD中)中各处的关键字(包括智能对象)?
我在这里找到的最接近的是在多个Photoshop文件中查找并替换文本?
var dir = new Folder('/c/temp')
var files = dir.getFiles("*.psd");
for (var i = 0; i < files.length; i++) {
var doc = app.open(files[i]);
for (var j= 0; j < doc.artLayers.length; j++) {
var lyr = doc.artLayers[j];
if (lyr.kind == LayerKind.TEXT) {
var lyr = doc.artLayers[j];
lyr.textItem.contents = lyr.textItem.contents.replace("search","replace");
}
}
doc.close(SaveOptions.SAVECHANGES)
}
但由于某种原因,脚本打开PSD文件,然后关闭它而不做任何更改。我试着一次播放一行脚本,它转到第10行(if (lyr.kind == LayerKind.TEXT) {
),然后循环回第7行(for (var j= 0; j < doc.artLayers.length; j++) {
)。
至少在Photoshop I脚本化的最后一个版本中,智能对象不是DOM的一部分-您必须使用scriptlistener代码来访问这些对象的内容。
因此,下面的代码片段应该开始编辑智能对象:
var id401 = stringIDToTypeID( "placedLayerEditContents" );
var desc24 = new ActionDescriptor();
executeAction( id401, desc24, DialogModes.NO );
从那里你需要循环通过新的活动文档中的所有层,这些层应该包含你的智能对象的内容,根据需要进行修改并保存&关闭它会将活动文档返回到原始文档。根据智能对象的嵌套方式,您可能需要多次执行此操作。
相关文章:
- 使用“;这个“;JavaScript原型方法中的关键字
- delete关键字在全局变量上的不同行为
- JavaScript 中的嵌套函数和 “this” 关键字
- 如何在不使用 new 关键字的情况下从函数创建对象
- Angularjs使用“;这个“;promise内的关键字回调
- 重写需要javascript中带有import关键字的语法
- Regex,用于从字符串中筛选关键字
- Javascript 对象和 this 关键字
- 如何在不知道关键字的情况下访问javascript对象值
- 可以在Javascript中添加新的关键字吗
- javascript中的这个关键字
- Javascript关键字搜索子类Div值
- 在对象中用Javascript编写此关键字
- 在构建字典时,作为关键字的变量会自动变为字符串
- 正则表达式,从一组关键字中获取奇数
- 当在文本框中搜索关键字时,我会得到以前的结果作为输出
- 在UltraEdit中搜索关键字
- 查找关键字并创建新对象
- 试图在Photoshop JSX脚本中将画布大小导出为文件名
- 从智能对象和图层替换Photoshop中的关键字