3 заметки с тегом

автоматизация

Названия страниц в Индизайне

В Индизайне в панели страниц нет названий, только номера. А очень хочется, чтобы у страниц были нормальные названия, а потом они приписывались к названиям файлов, когда делаешь экспорт.

Уверен, что в будущих версиях это исправят, но и сейчас можно сделать скрипт. Смотрите прототип:

Эти названия хранятся в документе: у каждой страницы есть свойство label, которого нет в интерфейсе — его можно использовать. Остаётся сделать интерфейс с редактированием и сохранением в пнг.

В теории, в папке проекта можно сделать превьюшки страниц — получится собственная панель.

2015   автоматизация   индизайн   скрипт
Новые заметки в электронную почту →

Колонки в Фотошопе 2

Ну и простой скрипт для колонок. Ссылка на файл.

Выбираете текстовый слой типа Параграф и запускаете скрипт:

Скрипт:
var doc = app.activeDocument;
var layer = doc.activeLayer;

var dlg = new Window(«dialog{text:’Text column script’,alignChildren:’left’,\
collabel:StaticText{text:’Columns’}\
colnum:EditText{size:[50, 22],text:’1’},\
\
colgitlabel:StaticText{text:’Column gitter’}\
colgitsize:EditText{size:[50, 22],text:’20’},\
\
button1:Button{bounds:[236,101,336,121] , text:’Ok’ },\
};»);

dlg.button1.onClick = function () {
setColumn(dlg.colnum.text, dlg.colgitsize.text);
dlg.hide()

};

dlg.show()

// =======================================================
function setColumn(n, g){

var idsetd = charIDToTypeID( «setd» );
var desc70443 = new ActionDescriptor();
var idnull = charIDToTypeID( «null» );
var ref23268 = new ActionReference();
var idTxLr = charIDToTypeID( «TxLr» );
var idOrdn = charIDToTypeID( «Ordn» );
var idTrgt = charIDToTypeID( «Trgt» );
ref23268.putEnumerated( idTxLr, idOrdn, idTrgt );
desc70443.putReference( idnull, ref23268 );
var idT = charIDToTypeID( «T » );
var desc70444 = new ActionDescriptor();

var idtextShape = stringIDToTypeID( «textShape» );
var list5429 = new ActionList();
var desc70446 = new ActionDescriptor();
var idTEXT = charIDToTypeID( «TEXT» );
var idTEXT = charIDToTypeID( «TEXT» );
var idbox = stringIDToTypeID( «box» );
desc70446.putEnumerated( idTEXT, idTEXT, idbox );

var idrowCount = stringIDToTypeID( «rowCount» );
desc70446.putInteger( idrowCount, 1 );
var idcolumnCount = stringIDToTypeID( «columnCount» );
desc70446.putInteger( idcolumnCount, n );
var idrowMajorOrder = stringIDToTypeID( «rowMajorOrder» );
desc70446.putBoolean( idrowMajorOrder, false );
var idrowGutter = stringIDToTypeID( «rowGutter» );
var idPnt = charIDToTypeID( «#Pnt» );
desc70446.putUnitDouble( idrowGutter, idPnt, 0.000000 );
var idcolumnGutter = stringIDToTypeID( «columnGutter» );
var idPnt = charIDToTypeID( «#Pnt» );
desc70446.putUnitDouble( idcolumnGutter, idPnt, g );
var idSpcn = charIDToTypeID( «Spcn» );
var idPnt = charIDToTypeID( «#Pnt» );
desc70446.putUnitDouble( idSpcn, idPnt, 0.000000 );

var idbounds = stringIDToTypeID( «bounds» );
var desc70448 = new ActionDescriptor();
var idTop = charIDToTypeID( «Top » );
desc70448.putDouble( idTop, 0.000000 );
var idLeft = charIDToTypeID( «Left» );
desc70448.putDouble( idLeft, 0.000000 );
var idBtom = charIDToTypeID( «Btom» );
desc70448.putDouble( idBtom, layer.textItem.height ); //463.500000
var idRght = charIDToTypeID( «Rght» );
desc70448.putDouble( idRght, layer.textItem.width ); //466.266876
var idRctn = charIDToTypeID( «Rctn» );
desc70446.putObject( idbounds, idRctn, desc70448 );

var idtextShape = stringIDToTypeID( «textShape» );
list5429.putObject( idtextShape, desc70446 );
desc70444.putList( idtextShape, list5429 );

var idTxLr = charIDToTypeID( «TxLr» );
desc70443.putObject( idT, idTxLr, desc70444 );
executeAction( idsetd, desc70443, DialogModes.NO );
}

2013   автоматизация   скрипт   фотошоп
Новые заметки в электронную почту →

Расстановка неразрывных пробелов в Фотошопе

Очень хочется хоть немного хорошему научить деревянный Фотошоп. Например, заставить его делать переносы:

Остаётся большая проблема — слетают другие свойства текста, если они выборочно, скажем подчёркивание или курсив в середине, то всё — всюду как в начале.

Добавил. Кусок черновика, который в видео:

doc = app.activeDocument;

layer = doc.activeLayer;

var str=layer.textItem.contents;

var expr = new RegExp('\\ и | не | то | к | с | —| на | до | в | по | у | из | от ', 'ig');

var myArray;
       var idsetd = charIDToTypeID( "setd" ); 
        
        var desc46 = new ActionDescriptor();
     var idnull = charIDToTypeID( "null" );
        var ref11 = new ActionReference();
        var idTxLr = charIDToTypeID( "TxLr" );
        var idOrdn = charIDToTypeID( "Ordn" );
        var idTrgt = charIDToTypeID( "Trgt" );
        ref11.putEnumerated( idTxLr, idOrdn, idTrgt );
 
    
               desc46.putReference( idnull, ref11 );
      var idT = charIDToTypeID( "T   " ); //
        var desc47 = new ActionDescriptor();
        var idTxt = charIDToTypeID( "Txt " );
        desc47.putString( idTxt, str );
        
                var idTxtt = charIDToTypeID( "Txtt" );
            var list8 = new ActionList();
        
      
        

while ((myArray = expr.exec(str)) != null)

{
  var msg = "Нашел " + myArray[0] + ".  ";

  msg += "Сделать замену с"+(expr.lastIndex-myArray[0].length)+" начнется с " + expr.lastIndex;

  //alert(msg);
 

            var desc56 = new ActionDescriptor();
                var idFrom = charIDToTypeID( "From" );
                desc56.putInteger( idFrom, (expr.lastIndex-myArray[0].length)+1 );
                var idT = charIDToTypeID( "T   " );
                desc56.putInteger( idT, expr.lastIndex+1 );
                var idTxtS = charIDToTypeID( "TxtS" );
                    var desc57 = new ActionDescriptor();
                    
                    var idSz = charIDToTypeID( "Sz  " );
                    var idPnt = charIDToTypeID( "#Per" );
                    desc57.putUnitDouble( idSz, idPnt, layer.textItem.size );
                    
                    var idnoBreak = stringIDToTypeID( "noBreak" ); //-----------------------------
                    desc57.putBoolean( idnoBreak, true );
                    
                    
                var idTxtS = charIDToTypeID( "TxtS" );
                desc56.putObject( idTxtS, idTxtS, desc57 );
            
  var idTxtt = charIDToTypeID( "Txtt" );
            list8.putObject( idTxtt, desc56 );
            
        desc47.putList( idTxtt, list8 ); 
}



        var idTxLr = charIDToTypeID( "TxLr" );
    desc46.putObject( idT, idTxLr, desc47 );
        
        executeAction( idsetd, desc46, DialogModes.NO );

Как использовать не ломая стили? Есть идея, но только лишь.

2013   автоматизация   переносы   скрипт   типограф   фотошоп
Новые заметки в электронную почту →