Graphic Design Stack Exchange is a question and answer site for Graphic Design professionals, students, and enthusiasts. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I have a word in a text layer in photoshop. I want each character to be on a separate layer, how can I do that?

share|improve this question
up vote 5 down vote accepted
  1. Select the Type tool.
  2. Type your letter.
  3. Duplicate the layer.
  4. Select the new layer.
  5. Highlight the copied letter and type the second letter.
  6. Repeat as needed.

Unless you're breaking up "antidisestablishmentarianism," this is the faster way to go.

share|improve this answer

This can be done with scripting capabilities.

EDIT: I've update my answer below having tried and tested.

  • Open any text editor
  • Copy and paste the following code into it
  • Make sure whatever the name of the text layer is matches with what's defined in line 20
  • Save as splitText.jsx
  • Open with Photoshop. Also make sure the document you want to apply this to is the currently active document.

Contents of splitText.jsx

// enable double clicking from the Macintosh Finder or the Windows Explorer
#target photoshop

// in case we double clicked the file

// debug level: 0-2 (0:disable, 1:break on error, 2:break at beginning)
// $.level = 0;
// debugger; // launch debugger on next line

var strtRulerUnits = app.preferences.rulerUnits;
var strtTypeUnits = app.preferences.typeUnits;

app.preferences.rulerUnits = Units.PIXELS;
app.preferences.typeUnits = TypeUnits.POINTS;

var thisDocument = app.activeDocument;

var theOriginalTextLayer = thisDocument.artLayers.getByName("NAME-OF-LAYER");
var theTextToSplit = theOriginalTextLayer.textItem.contents;

// var theTextToSplit = "Hello";

// suppress all dialogs
app.displayDialogs = DialogModes.NO;

//  the color of the text as a numerical rgb value
var textColor = new SolidColor; = 0; = 0; = 0;

var fontSize = 120;         // font size in points
var textBaseline = 480;     // the vertical distance in pixels between the top-left corner of the document and the bottom-left corner of the text-box

for(a=0; a<theTextToSplit.length; a++){ 
// this loop will go through each character

    var newTextLayer = thisDocument.artLayers.add();        // create new photoshop layer
        newTextLayer.kind = LayerKind.TEXT;             // set the layer kind to be text
    // = textInLayer.charAt(a);

    var theTextBox = newTextLayer.textItem;             // edit the text
        theTextBox.font = "Arial";                      // set font
        theTextBox.contents = theTextToSplit.charAt(a); // Put each character in the text
        theTextBox.size = fontSize;                           // set font size
    var textPosition = a*(fontSize*0.7);

        theTextBox.position = Array(textPosition, textBaseline);                // apply the bottom-left corner position for each character
        theTextBox.color = textColor;


/* Reset */

app.preferences.rulerUnits = strtRulerUnits;
app.preferences.typeUnits = strtTypeUnits;
docRef = null;
textColor = null;
newTextLayer = null;

Then move the text layers about ass you please

share|improve this answer
ps. Lauren Ipsum's answer is better/easier :D – Adam Elsodaney Feb 1 '11 at 23:04
I was looking for how to do this. Kudos for putting this script together. I will test it when I am near a computer and get back to you. +1! – Moshe Feb 2 '11 at 0:00
@Adam: thank you. I'm giving you +1 just for going through all that effort of scripting. :) – Lauren Ipsum Feb 2 '11 at 16:24
I did not know photoshop could be scripted using javascript – horatio Feb 10 '11 at 20:38
@Moshe @Lauren Ipsum thanks, I'm going to see if I can develop this further, then post a tutorial online – Adam Elsodaney Feb 11 '11 at 1:22

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.