PS_BRAMUS.TextExport 1.3 – Automatically export all Text layers from Photoshop PSD to a Text file (PSD2TXT)

JSXColleague Johan asked whether someone could knock up a script which exports all text layers from a Photoshop document to a text file (viz. a PSD2TXT tool/script), enabling one to slice even faster than he already can. Last week I released the first version of the script (v 1.2), now it’s time for an update.

Update November 2008:
PS_BRAMUS.TextExport has been replaced by PS_BRAMUS.TextConvert which does both import and export of text!

What has changed?

  • UPD: Base rewrite, now gets all layers (sets & regular ones) in one variable.
  • UPD: Gives a nice warning, instead of a javascript error, when no file is open.
  • ADD: Layer Path & Layer Name in export.
  • ADD: Cycle Multiple Files when more than one file is open (user can still choose to only parse the current document though).

Download PS_BRAMUS.TextExport (PSD2TXT)

Download PS_BRAMUS.TextExport 1.3

Installation / How to use

  • Download PS_BRAMUS.TextExport from the link above
  • Extract it to Presets/Scripts folder of your Photoshop installation folder (defaults to C:\Program Files\Adobe\Adobe Photoshop CS3\Presets\Scripts on Windows)
  • Restart Photoshop if it was already running
  • Open the PSD you wish to export text from
  • Now, when having a file opened, go to File > Scripts and select PS_BRAMUS.TextExport.1.3 from the list. textexport-small.jpg
  • Wait until the output file appears 🙂

Configuration

Three settings in PS_BRAMUS.TextExport can be configured, all to be found in the .jsx file itself.

  • Open up PS_Bramus.TextExport-1.3.jsx with your favorite texteditor
  • If you want to choose where to save the file to, set useDialog to true. If set to false (default), the output file will be saved into your documents folder
  • If you don’t want the exported file to be openend after the export has run, set openFile to false. If set to true (default), the output file will automatically be opened by your default text editor.
  • In the export file, each line is separated by a separator string. Change this one to use one you like (defaults to *************************************).

When running PS_BRAMUS.TextExport on multiple files, the useDialog & openFile parameters will be overriden. All files will be saved as nameofyourpsdfile.txt in your documents folder and only a notice that the files were saved will be shown.

Example

I’ve tested PS_BRAMUS.TextExport with a pretty complex PSD, which holds the design of 3RDS. Here are the results:

Input PSD

TextExport Input

Output TXT

TextExport Output

Did this help you out? Like what you see?
Consider donating.

I don’t run ads on my blog nor do I do this for profit. A donation however would always put a smile on my face though. Thanks!

☕️ Buy me a Coffee ($3)

Published by Bramus!

Bramus is a frontend web developer from Belgium, working as a Chrome Developer Relations Engineer at Google. From the moment he discovered view-source at the age of 14 (way back in 1997), he fell in love with the web and has been tinkering with it ever since (more …)

Unless noted otherwise, the contents of this post are licensed under the Creative Commons Attribution 4.0 License and code samples are licensed under the MIT License

Join the Conversation

68 Comments

  1. Yarr
    we probably need to get the word out a bit more, I think a lot of people could use this but don’t realize what a time saver this could be.

  2. I am writing a text exporter for PS, so I surfed web and found yours.

    the thing is….I need to get every character in a text string, and write each character out as ASCII Unicode hex to a text file.

    like this…..
    0x0043, // LATIN CAPITAL LETTER C

    I tried Constants PrintEncoding and SaveEncoding, but no luck

    got any suggestions?

    thanks

  3. Guess i’m slow today, but when is this script helpful? I am trying to picture a scenario when you have so much text in a photoshop file that you could use this script, but i can’t get one made up in my head.

    An example please? 🙂

  4. I’ve been searching for this functionality for quite a while… with no luck.
    A coincidence I stumbled across this page.

    A cool script!

    Do you have plans to create a text importer script?
    one that opens a text document into a Photoshop text layer.

    …The amount of text i’d need to bring in requires a batch process.

    just a thought

    thanks

    Jeff

  5. This scenario is helpful when comparing the text in the PSD to a copy deck (requirements document) in a corporate environment

    I’m not seeing all the text outputted… but i did get an error about no having the correct fonts when the psd loaded… could that be the culprit?

  6. @Jeff: that’s possibile, but will look a bit cluttered as you’re inserting lots of text all in the same font/colour/etc.

    @Stoney: that could indeed be the problem. Will run some tests.

  7. Wow! I didn’t know that there is already a script like this and I am glad that this is offered for free. I have some PSD files with a bunch of text on it. I hope I can extract those texts through this script and if it can, I think it is a OCR better alternative.

  8. This script would be extremely handy for extracting text when translating PSDs. However, I am looking for a scriptable version, i.e. something I can run from the command line. Any ideas? Even better, the script should drop in some ID for each string extracted, and then also be able to do a search and replace for the ID, to slot in the translated text automatically.

  9. @Garret: Scripts are supported starting from Photoshop CS or higher.

    @Martin: Scriptable from command line is not possible (unless you’re running windows (@see) … but then the script will open Photoshop nonetheless). And search and replace would be something you’d do in a text editor 😉

  10. Very useful scipt. Thank you very much!
    I look forward for the feature that will import unicode text (for example Russian text). Now I can only see question marks after import.

  11. Crashed my CS3 4 times in row – ‘uninstalled’ – so promising, so bad

    Great for writing BLANK text files though!

  12. THANK YOU!

    This is going to save me hours. Is there any way I can export just the layer content? Meaning without anything added like, “LayerPath: / LayerName: …. -LayerContent:”

    Also, how can I save these files next to the psd that they came from when batching, rather than my documents folder? I am pulling from multiple pads located in many different folders.

    THANKS AGAIN!

  13. Hi Bramus, thanks for the script, helped out at work today quite a lot. Though I encountered an issue with chinese characters. Fixed it by editing the encoding format of the script. Here’s the hard fix for anyone having the same issue:

    After line 118 add(or just right after “fileOut.linefeed = fileLineFeed;”) :
    fileOut.encoding = “UTF-16”;

    Thanks again Bramus!

  14. Hi!
    Thanks for this!
    I’m wondering if the opposite is possible?
    Like can I have a text file, and create a text layer for each line of text in the file?

  15. I would surely like to check this script out, thanks for this. It would mean a great deal with the PSDs I handle everyday. I will post this on my FB page as well for people and fellow designers to be aware, you can also follow me @pixel_ramen in my twitter account.

    Again, thanks! 🙂

  16. I love this, worked perfectly every time.

    One thing I would like to change (and been trying to sort out on my own) is how to remove all the extra stuff in the output.

    I want ONLY the layer text nothing else in the file. 🙂

    (Meaning no headers, titles, etc, just the text from the text layer)

  17. Using Bramus text export I cannot export thailand language font…
    What is the reason for this?

  18. hi
    sorry for answer, but maybe ….
    I have one illustration with lot of short text (300 micro-sentence)
    with your script, I can extract this layers on one .txt file to send this job to my friend for translation.
    He wright, after “content”, “Translate :”, and the sentence at the line after.
    and after, he send me this .txt file.
    I must to change this text 1 time for 1 mounth, hard, long and no-fun action 🙁

    So …. it’s possible to envisage one “replace” function on script ?
    i’m not bad developper, but …. no java. and no photoshop. and on the future, it’s not reusable competence.

    it’s for one private project : this illustration is for society game club.

    thank for your possible answer 🙂

  19. Hi, is it possible to extract the text from the top layer to the bottom layer.

    Currently the script runs from the bottom layer up.

    We receive files with many text layers and the artwork is always designed from top to bottom which affects the extracted text.

    A great script and any help is much appreciated.

  20. This is cool!!! But is it also possible to import this back to the PSD File and replace all the texts (in case i changed some)? For translating purposes.

  21. Hello, very good job! can it be done backwards? so import text from txt to psd? I found how to do it with variables but the text within a line does not limit me. thank you!

  22. Hi Bramus,
    First, I would like to thank you for this script.
    The script is working fine except for one thing, it is saving the output (txt) file in the Documents folder, whereas I want to save the output file in the folder of the PSD file/files.

    I have also disabled the save as dialogue…
    // Use save as dialog (true/false)? - This will be overriden to false when running TextExport on multiple files!
    var useDialog = false;

    Can you please look into this and tweak the code to save the .txt file/files in the folder of the source PSD file/files, without going through the save as dialogue route.

    Thanks in advance,
    Masood

  23. It seems to me that your script doesn’t work with photoshop 2024, windows 11. I tried several times and I couldn’t any text from PSD files.

Leave a comment

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.