I want to break text area with line breaks in it into seperate text lines using return as delineator. for example
"Line 1
Line 2
Line 3"
I would like as
"Line 1"
"Line 2"
"Line 3"
I could probably write something but curious if someone already wrote it. I found a few similar ones like
http://forums.adobe.com/thread/321610
but they seem to be broken for CC here is the script in case you're curious
/////////////////////////////////////////////////////////////////
//Divide TextFrame v.2.2 -- CS and up
//>=--------------------------------------
// Divides a multiline text field into separate textFrame objects.
// Basically, each line in the selected text object
// becomes it's own textFrame. Vertical Spacing of each new line is based on leading.
//
// This is the opposite of my "Join TextFrames" scripts which
// takes multiple lines and stitchs them back together into the same object.
// New in 2.1 now right and center justification is kept.
// New in 2.2 better error checking, and now will run on more than one text frame at a time.
//>=--------------------------------------
// JS code (c) copyright: John Wundes ( john@wundes.com ) www.wundes.com
//copyright full text here: http://www.wundes.com/js4ai/copyright.txt
//////////////////////////////////////////////////////////////////
var doc = activeDocument;
var genError= "DivideTextFrame must be run on a point-text text-frame. ";
var ret_re = new RegExp("/[\x03]|[\f]|[\r\n]|[\r]|[\n]|[,]/");
if(doc){
var docsel = doc.selection; var sel = []; //remember initial selection set for(var itemCt=0, len = docsel.length ;itemCt<len;itemCt++){ if(docsel[itemCt].typename == "TextFrame"){ sel.push(docsel[itemCt]); } } if(sel.length){ //alert(sel.length+" items found."); for(var itemCt=0, len = sel.length ;itemCt<len;itemCt++){ divide(sel[itemCt]); } }else{ alert(genError +"Please select a Text-Frame object. (Try ungrouping.)"); }
}else{ alert(genError + "No document found.");
};
function divide(item){
//get object position var selWidth = item.width;
if(item.contents.indexOf("\n") != -1){ //alert("This IS already a single line object!");
}else{ //getObject justification var justification = item.story.textRange.justification; //make array var lineArr = fieldToArray(item); tfTop = item.top; tfLeft = item.left; item.contents = lineArr[0]; //for each array item, create a new text line var tr = item.story.textRange; var vSpacing = tr.leading; var newTF; for(j=1 ; j<lineArr.length ; j++){ newTF = item.duplicate(doc, ElementPlacement.PLACEATBEGINNING); newTF.contents = lineArr[j]; newTF.top = tfTop - (vSpacing*j); if(justification == Justification.CENTER) { newTF.left = (tfLeft + (selWidth/2)) - (newTF.width/2); } else if(justification == Justification.RIGHT) { newTF.left = (tfLeft + selWidth) - newTF.width; } else { newTF.left = tfLeft; } newTF.selected = false; }
}
function fieldToArray(myField) { retChars = new Array("\x03","\f","\r","\n"); var tmpTxt = myField.contents.toString(); for (all in retChars ) { tmpArr = tmpTxt.split(retChars[all]); } return tmpTxt.split(ret_re); } }