Photoshop脚本:批量提取文本参数并填充到图层
Photoshop脚本:批量提取文本参数并填充到图层
您是否需要从大量文本中提取信息,并自动填充到Photoshop设计稿的不同图层中?这个脚本可以帮助您!
脚本功能:
- 从多行文本中提取指定格式的参数A和参数B
- 将提取的参数分别填充到名为'文字1'和'文字2'的图层
- 自动保存为PSD和PNG文件,并按序号命名
使用方法:
- 将以下代码复制到新的Photoshop脚本文件中
- 在Photoshop中打开您的设计文档
- 确保文档中有两个文本图层,分别命名为'文字1'和'文字2'
- 将需要提取信息的文本粘贴到脚本的
textToExtract变量中 - 修改
savePath变量为您的目标保存路径 - 运行脚本!
var doc = app.activeDocument;
var layers = doc.layers;
// 将需要提取信息的文本粘贴到这里
var textToExtract = `1.丝迁十载同行路,心系援疆共前途(纺织学院)
2.上海纺织产业向时尚产业转型的发展路径调研实践团(纺织学院)
3.“种金山如画风景,创石化共享空间”——东华大学赴金山区石化街道城市空间融创设计实践团(服装与艺术设计学院)`;
var lines = textToExtract.split('\n');
for(var i = 0; i < lines.length; i++) {
var line = lines[i].replace(/^\d+\./, ''); // 删除序号
var regex = /^([^\(]+)\(([^\)]+)\)/; // 用正则表达式提取参数A和参数B
var matches = line.match(regex);
if(matches && matches.length === 3) {
var paramA = matches[1].trim();
var paramB = matches[2].trim();
// 更新文本图层
var textLayer1 = getLayerByName('文字1');
var textLayer2 = getLayerByName('文字2');
if(textLayer1) {
textLayer1.textItem.contents = paramA;
}
if(textLayer2) {
textLayer2.textItem.contents = paramB;
}
// 另存为PSD和PNG
var savePath = 'G:/所有项目/奖状/new'; // 修改为您 desired save path
var psdOptions = new PhotoshopSaveOptions();
psdOptions.embedColorProfile = true;
psdOptions.alphaChannels = true;
psdOptions.layers = true;
doc.saveAs(new File(savePath + '/image_' + i + '.psd'), psdOptions);
var pngOptions = new PNGSaveOptions();
doc.saveAs(new File(savePath + '/image_' + i + '.png'), pngOptions);
}
}
// 根据图层名称获取图层
function getLayerByName(layerName) {
for(var j = 0; j < layers.length; j++) {
var layer = layers[j];
if(layer.name === layerName && layer.kind === LayerKind.TEXT) {
return layer;
}
}
return null;
}
注意:
- 脚本中的正则表达式可以根据您的文本格式进行修改
- 确保目标保存路径存在
希望这个脚本可以帮助您提高工作效率!
原文地址: http://www.cveoy.top/t/topic/dcQU 著作权归作者所有。请勿转载和采集!