Script for text layer content replace w/ user input dialog


i've been messing around building out script allow users replace content in text layer.

unfortunately, content going different, formatted differently, , not placed in sort of xl or csv file.

 

i'd able run script select appropriate named text layers , prompt user input various values.  script i've been able find along lines on ps-scripts site here:

prompt user textual input - script

 

anyone come or across falls within interaction parameters?

 

 

thanks!

something this? ...

 

 

#target photoshop app.bringtofront(); main(); function main(){ if(!documents.length) return; var txtarray = new array(); txtarray = gettxtinfo(); var win = new window( 'dialog', '' );  g = win.graphics; var mybrush = g.newbrush(g.brushtype.solid_color, [0.99, 0.99, 0.99, 1]); g.backgroundcolor = mybrush; win.orientation='stack'; win.p1= win.add("panel", undefined, undefined, {borderstyle:"black"});  win.g1 = win.p1.add('group'); win.g1.orientation = "row"; win.title = win.g1.add('statictext',undefined,'text replacement'); win.title.alignment="fill"; var g = win.title.graphics; g.font = scriptui.newfont("georgia","bolditalic",22); win.g5 =win.p1.add('group'); win.g5.orientation = "row"; win.g5.alignment='left'; win.g5.spacing=10; win.g5.st1 = win.g5.add('statictext',undefined,'layer name'); win.g5.st1.preferredsize=[110,20]; win.g5.dd1 = win.g5.add('dropdownlist'); win.g5.dd1.preferredsize=[300,20]; win.g10 =win.p1.add('group'); win.g10.orientation = "row"; win.g10.alignment='left'; win.g10.st1 = win.g10.add('statictext',undefined,'layer contents'); win.g10.st1.preferredsize=[110,20]; win.g10.et1 = win.g10.add('edittext',undefined,''); win.g10.et1.preferredsize=[300,20]; win.g10.et1.enabled=false; for(var in txtarray){     win.g5.dd1.add('item',txtarray[a][1].tostring());     } win.g5.dd1.selection=0; win.g10.et1.text=txtarray[0][2].tostring(); win.g5.dd1.onchange=function(){ win.g10.et1.text=txtarray[this.selection.index][2].tostring(); } win.g15 =win.p1.add('group'); win.g15.orientation = "row"; win.g15.alignment='fill'; win.g15.st1 = win.g15.add('statictext',undefined,'replace text with:- '); win.g15.st1.preferredsize[150,20]; win.g15.et1 = win.g15.add('edittext',undefined,''); win.g15.et1.preferredsize=[350,20]; win.g20 =win.p1.add('group'); win.g20.orientation = "row"; win.g20.alignchildren='fill'; win.g20.bu1 = win.g20.add('button',undefined,'update text'); win.g20.bu1.preferredsize=[200,35]; win.g20.bu2 = win.g20.add('button',undefined,'cancel'); win.g20.bu2.preferredsize=[200,35]; win.g20.bu1.onclick=function(){ if(win.g15.et1.text == ''){     alert("no replacement text has been entered!");     return;     } win.close(0); selectlayerbyid(number(txtarray[win.g5.dd1.selection.index][0])); activedocument.activelayer.textitem.contents=win.g15.et1.text;     } win.center(); win.show(); } function gettxtinfo(){     var ref = new actionreference();     ref.putenumerated( charidtotypeid('dcmn'), charidtotypeid('ordn'), charidtotypeid('trgt') );     var count = executeactionget(ref).getinteger(charidtotypeid('nmbl')) +1;     var names=[]; try{     activedocument.backgroundlayer; var = 0; }catch(e){ var = 1; };    for(i;i<count;i++){         if(i == 0) continue;         ref = new actionreference();          ref.putindex( charidtotypeid( 'lyr ' ), );         var desc = executeactionget(ref);         var layername = desc.getstring(charidtotypeid( 'nm  ' ));         var id = desc.getinteger(stringidtotypeid( 'layerid' ));         if(layername.match(/^<\/layer group/) ) continue;         var layertype = typeidtostringid(desc.getenumerationvalue( stringidtotypeid( 'layersection' )));         var vis = desc.getboolean(stringidtotypeid( 'visible' ));              if( desc.haskey( stringidtotypeid( 'textkey' ) )) {                 var contents = desc.getobjectvalue(stringidtotypeid('textkey')).getstring( stringidtotypeid('textkey'));             if(!vis) continue; //do not select hidden layers                 names.push([[id],[layername],[contents]]);                 }    }  return names; }; function selectlayerbyid(id, add) {     add = (add == undefined)  ? add = false : add;  var ref = new actionreference();  ref.putidentifier(charidtotypeid('lyr '), id);  var desc = new actiondescriptor();  desc.putreference(charidtotypeid('null'), ref);  if (add) {   desc.putenumerated(stringidtotypeid('selectionmodifier'), stringidtotypeid('selectionmodifiertype'), stringidtotypeid('addtoselection'));  }  desc.putboolean(charidtotypeid('mkvs'), false);  executeaction(charidtotypeid('slct'), desc, dialogmodes.no); }    


More discussions in Photoshop Scripting


adobe

Comments

Popular posts from this blog

How to change text Component easybook reloaded *newbee* - Joomla! Forum - community, help and support

After Effect warning: A problem occurred when processing OpenGL commands

Preconditions Failed. - Joomla! Forum - community, help and support