Can someone please help me out with trying to put multiple layers of 
personalized text to work in this javascript. I was able to get one layer 
to work, but not two.

Thank you very much.

here is the script:

/*



        ADOBE PHOTOSHOP(R) SCRIPT TO CREATE PERSONALIZED IMAGES



        BACKGROUND:

        This script can generate personalized images (.JPG) from a native 
Photoshop file (.PSD) 

        and a plain-text, tab-delimited database.



        http://www.google.com/search?q=photoshop+script+tutorial

        http://www.google.com/search?q=PhotoShop+DOM    (for the Document 
Object Model)



*/



/*



        NOTE: THIS SCRIPT IS MEANT FOR PHOTOSHOP VERSION 7





*/



/*

        STEPS:

 

        1. Put your photoshop file (.psd), database (.txt) and this script 
(.js) in one folder, for example your desktop.



        2. Create a folder 'images' (without quotes) in this folder. For 
example, you now have a folder images on your 

           desktop

 

        3. Open Photoshop and your .psd file.



        4. Make sure it has at least one textlayer. Open the layer's 
properties (right mouse click on the layer) and give it

           a name. For example, give your textlayer the name 'PSM' 
(Withouth quotes).



        5. Create a plain-text, tab delimited database with the following 
structure:

 

           ID   NAME

           1    Anna

           2    Bob

           3    Caroline

 

           Be sure not to remove the first row with the field headers (id 
& Name). It's important that your database

           does not contain more than two columns (only Id and Name). 
Field names are not case-sensitive.

 

        6. Change the user-defined variables in this script (SEE BELOW 
POINT 8), and save the script. 

           Database refers to the name of your database. 

           Pathname is the pathname of the images folder.

           Textlayername is the name of the Photoshop text layer.



        7. In Photoshop, goto Menu File -> Automate -> Script. Now, a 
dialog screen appears. Click on the Browse Button, and

           select this script. Click on OK.



        8. The pictures will now be generated

 



        USER_DEFINED VARIABLES



        Please add your database name and pictures path:

*/

        var database = "Database.txt";

        var pathname = "images";

        var textlayername = "PSM";

        var JPGQuality = 12; 



        // IMPORTANT: USE THE BACKSLASH ESCAPE CHARACTER FOR

        // ESCAPING BACKSLASHES IN THE PATHNAME OR DATABASE VARIABLE

        //

        // If you want to have the images generated in the folder 
'c:\temp\last_month',

        // than the correct syntax is:

        //

        // var pathname = "C:\\temp\\last_month\\images";





if(documents.length==0){

   alert("Error: The native photoshop file (*.psd) must be opened.")

}else{



// Set preferences

   var defaultRulerUnits = preferences.rulerUnits;

   preferences.rulerUnits = Units.PIXELS;



// Set job variables 

   var docWidth=activeDocument.width;

   var docHeight=activeDocument.height;

   var docResolution=activeDocument.resolution;

   var docMode = activeDocument.mode;

   var counter = 0;



// You can choose your preferred DOcumentFill by toggling on/off the right 
comment marks 

// var docFill = DocumentFill.TRANSPARENT;

// var docFill = DocumentFill.BACKGROUNDCOLOR; 

   var docFill = DocumentFill.WHITE; 



// Add a new PSD document, based on current document, and call this 
document 'Compilation'

   var psmTemplate = activeDocument;

   var newDoc = documents.add(docWidth, docHeight, docResolution, 
"Compilation",docMode, docFill);



// Return the focus to initial PSD document

   activeDocument = psmTemplate;



// Open database

   var dbText = new File(database);

   dbText.open ('r');



// Loop through database

   while (!dbText.eof) {

 

                // Read line

                var line=dbText.readln();

                var arrLine=new Array();



                // Split line, use tab as delimiter

                arrLine = line.split("\t");



                // Assign variables to field values 

                var ln_number=arrLine[0];

                var ln_name=arrLine[1];



                // Skip first line

                if (counter>0) {

 

                        // Optionally: you may want to enable a 
quick-and-dirty CopyFitting

                        //

                        // if (ln_name.length >= 15) {

                        // psmTemplate.layers[textlayername].textItem.size 
= 48 

                        // }

 

                        // Text Merging, you can replace Dear by your own 
text.

 psmTemplate.layers[textlayername].textItem.contents = "Dear " + ln_name;

 

                    // Flatten template

                    psmTemplate.flatten();



                    // Add background noise; you can comment this option 
off if you like

 
psmTemplate.layers['Background'].applyAddNoise(1.00,NoiseDistribution.UNIFORM,0);



                    // Copy the changed file to compilation file

                    psmTemplate.selection.selectAll();

                    psmTemplate.selection.copy();

                    activeDocument = newDoc;

                    newDoc.paste();

                    newDoc.layers[0].name = ln_name;



                    // Save compilation file to JPG



                    // You can also save to: EPS, TIFF, PDF, GIF, PNG, and 
more.

                    // See the Document Object Model on how to accomplish 
this.

                    // http://www.google.com/search?q=PhotoShop+DOM



                    var imgName=pathname+"\\img"+ln_number+".jpg"

                    saveFile = new File(imgName);

                    saveOptions = new JPEGSaveOptions();

                    saveOptions.embedColorProfile = true;

                    saveOptions.formatOptions = 
FormatOptions.STANDARDBASELINE;

                    saveOptions.matte = MatteType.NONE;

                    saveOptions.quality = 12; //ranges from 0 to 12

                    newDoc.saveAs(saveFile, saveOptions, 
true,Extension.LOWERCASE);



                    // Free resources by deleting previous image layer 
from memory

                    newDoc.layers[0].remove();



                }

 

                // increase counter

                counter++;



                // swap focus to initial document 

                activeDocument = psmTemplate;

 

 

                // Reset initial document to initial state

                psmTemplate.activeHistoryState = 
psmTemplate.historyStates[0];

        }

}



// Restore initial settings

preferences.rulerUnits = defaultRulerUnits;

--
Users of FusionPro Desktop have unlimited free email support. Contact Printable 
Support at [EMAIL PROTECTED] 
--
View FusionPro Knowledge Base, FusionPro Samples at
www.printable.com/vdp/desktop.htm

--
You are currently subscribed to fusionpro as: [EMAIL PROTECTED]
To unsubscribe send a blank email to [EMAIL PROTECTED]
--




--
Note:  All e-mail sent to or from this address will be received or otherwise 
recorded by the e-mail recipients of this forum. It is subject to archival, 
monitoring or review by, and/or disclosure to someone other than the recipient. 
Our privacy policy is posted on www.printplanet.com
--

Reply via email to