/*
Copyright © 2024 Takamaru
Script Name: TextSplitter_v1.0.0.jsx
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see .
*/
#target photoshop
var userUnit = preferences.rulerUnits;
preferences.rulerUnits = Units.PIXELS;
var BR = String.fromCharCode(13);
function SplitMultiLine() {
}
SplitMultiLine.prototype.execute = function() {
var docRef = app.activeDocument;
var targetLayer = docRef.activeLayer;
var originalText = targetLayer.textItem.contents;
var textContents = originalText;
// テキストが一行の場合は1文字ずつ改行する
if (textContents.indexOf("\r") === -1) {
var newTextContents = "";
for (var i = 0; i < textContents.length; i++) {
newTextContents += textContents.charAt(i) + "\r";
}
textContents = newTextContents;
targetLayer.textItem.contents = textContents;
}
// 改行文字でテキストを分割
var elems = textContents.split(BR);
for (var i = 0; i < elems.length; i++) {
if (elems[i] == "") {
continue;
}
var newObj = targetLayer.duplicate();
newObj.name = '';
newObj.textItem.contents = elems[i];
}
// テキストが改行された場合のみ元のテキストを置き換える
if (textContents !== originalText) {
targetLayer.textItem.contents = originalText;
}
this.__destructor();
};
SplitMultiLine.prototype.__destructor = function() {
preferences.rulerUnits = userUnit;
};
SplitMultiLine.prototype.__exit = function(msg) {
if (msg) {
alert(msg);
}
this.__destructor();
};
var oSplitMultiLine = new SplitMultiLine();
oSplitMultiLine.execute();
delete oSplitMultiLine;