0

我的目标是创建 101 个单独的文本图层,包含 0-100(即 1、2、3...100)我知道我可以批量更改属性但不能编写或更改包含的文本。

4

1 回答 1

0

你想要的可以很容易地用一个脚本来完成(比以正确的顺序重命名 100 层并为其记录一个动作更容易)这个脚本将创建 100 层文本,每层将被命名为 1,2,3..etc并且文本将是相同的。我这就是你所追求的,你的描述很短。

// call the source document
var srcDoc = app.activeDocument;
var numOfLayers = 100;
//var numOfLayers = srcDoc.layers.length; 
var numPadding = "0";
var layerNum = 1; // change this to 0 to start layers at 0
var w = Math.floor(srcDoc.width.value/2);
var h = Math.floor(srcDoc.height.value/2);


// main loop starts here
for (var i = numOfLayers -1; i >= 0  ; i--)
{

    if (layerNum < 10) numPadding = "0";
    else numPadding ="";
    createText("Arial-BoldMT", 20.0, 0,0,0, layerNum, w, h);
    var currentLayer = srcDoc.activeLayer;
    currentLayer.name = numPadding + layerNum;
    layerNum +=1;
}

// function CREATE TEXT(typeface, size, R, G, B, content, Xpos, Ypos)
// --------------------------------------------------------
function createText(fface, size, colR, colG, colB, content, tX, tY)
{

  var artLayerRef = srcDoc.artLayers.add()
  artLayerRef.kind = LayerKind.TEXT
  textColor = new SolidColor();
  textColor.rgb.red = colR;
  textColor.rgb.green = colG;
  textColor.rgb.blue = colB;
  textItemRef = artLayerRef.textItem
  textItemRef.font = fface;
  textItemRef.contents = content;
  textItemRef.color = textColor;
  textItemRef.size = size
  textItemRef.position = new Array(tX, tY) //pixels from the left, pixels from the top

  activeDocument.activeLayer.textItem.justification.CENTER
}

将其保存为 numberLayers1-100.jsx,然后通过文件 -> 脚本菜单从 Photoshop 重新运行它。

于 2014-03-17T10:19:20.467 回答