Exit
  • Global community
    • Language:
      • Deutsch
      • English
      • Español
      • Français
      • Português
  • 日本語コミュニティ
  • 한국 커뮤니티
0

Script to create a Frame around Page?

Advisor ,
Aug 19, 2017 Aug 19, 2017

I'm trying to create a script that creates a box/frame that does the following below numbered items. When i try to combine all the below i get all kinds of errors. I tried stripping away parts from other scripts i have and placing them in the script i'm trying to make but i'm having quite a hard time with it. Most of these documents have one page but there are a few that have 2 pages. Not all the documents that i'm adding these too will be the same size.  all the pages in the documents will be the same as the first page.

1     Before the document is opened or created. automatically Create a Frame (Around the Page).

2     Put a overprint stroke (.0625in) around it "no fill".

3     Create a color (Lab or CMYK value)with a specific name in my case (Diecut)"and apply it to the above stroke.

4     and place it in its own layer.

I have some parts i think!

function moveLayer(){

  layers = app.documents[0].layers; 

   if (layers.item('Diecut').isValid) { 

    layers.item('Diecut').move (LocationOptions.AT_END); 

    }

  /*  if (layers.item('Layer 1').isValid) { 

layers.item('Layer 1').move (LocationOptions.AT_BEGINNING); 

    } */

}

I think this will create a layer?

function addLayer(doc, name){ 

  try{ 

   var layer = doc.layers.itemByName(name); 

    if(layer && layer.isValid) { 

     return layer; 

      } else { 

    var myLayer = doc.layers.add(); 

     myLayer.name = name;

      myLayer.layerColor = [100,100,100]

       return myLayer; 

    } 

   } catch(e) { 

  } 

This will move my text frame to the Layer

function move(event){      

  var doc = event.target;    

   if(!(doc && doc.constructor.name == "Document")) { 

    return; 

   } 

   var myLayer = addLayer(doc, "Diecut"); 

Thank you.

TOPICS
Scripting
528
Translate
Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Advisor ,
Aug 21, 2017 Aug 21, 2017
LATEST

to get real technical this is the script i'm trying to add it to.  When i duplicate lines 180-235 the script stops working.  not sure why.  I change from "SaveInfo" to Diecut.

//Event Listeners

app.addEventListener( "beforeExport", doOverset );

app.addEventListener( "beforeSave" , doZeroPoint );

app.addEventListener( "afterOpen" , doZeroPoint );

app.addEventListener( "beforeSave", doULockLayer );

app.addEventListener( "beforeClose", doLockLayer );

app.addEventListener( "beforeSave" , doTextFrameOnPageOne ); 

app.addEventListener( "afterOpen", doJob );

app.addEventListener( "beforeSave", doMoveLayer );

app.addEventListener( "beforeSave", doTrashSwatch );

app.addEventListener( "afterOpen", doTCON );

app.addEventListener( "beforeExport", doPDFinfo );

app.addEventListener( "beforeExport", doLOGinfo );

    #targetengine "AutoStartScript"

function doLOGinfo(){

    var main = function() { 

      var ids ={}; 

      var el = app.eventListeners.itemByName('onAfterExport'),

onAfterExportHandler = function(evt){

      var doc = evt.parent, time; 

      if ( doc.constructor.name=="Document" ) { 

      if ( !ids[doc.id+"_"+evt.timeStamp] ) {

ids[doc.id+"_"+evt.timeStamp] = 1; 

      log ( evt ); 

      } 

      } 

      }; 

      !el.isValid && app.eventListeners.add('afterExport', onAfterExportHandler).name = 'onAfterExport'; 

    } 

     

     

    var log  = function (evt){ 

      var headers = ["Indesign User Name", "Time", "Date", "Output Location and Name", "Document Name", "Document path"]; 

      var exportFile = File ( evt.fullName ); 

      var f = File ( Folder("/Volumes/PPG/z-z MISC STUFF")+"/exports.csv" ); 

      var fOk = f.exists; 

      var d = (new Date()); 

      var m = d.getMonth()+1; 

      m<10 && m = "0"+m; 

     

      var hh = d.getHours(); 

      var pm  = hh>11;

      pm && hh>12 && hh-=12; 

      hh<10 && hh = "0"+hh; 

      var mm = d.getMinutes(); 

      mm< 10 && mm = "0"+mm; 

     

      var doc = evt.parent; 

f.open('a'); 

      !fOk && f.writeln ( headers.join(";") );

f.writeln([app.userName, hh+":"+mm+" "+(pm? "PM":"AM"), m+"/"+d.getDate()+"/"+d.getFullYear(), exportFile.fsName, doc.name, doc.properties.fullName? doc.fullName : "Not saved" ].join(";") ); 

      f.close(); 

    }; 

     

     

    main(); 

   

    }

//>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>Add Metadata to PDF on who exported label<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<\\     

function doPDFinfo (){

    var kws = app.activeDocument.metadataPreferences.author;

   // app.activeDocument.metadataPreferences.keywords = kws.concat ( "Exported BY:   " + app.userName);

app.activeDocument.metadataPreferences.author = app.userName;

    }

//>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>Turns on Track Changes<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<\\     

function doTCON (){

    var myEventListener = app.eventListeners.item("TurnTCon"); 

        

    if (!myEventListener.isValid) {    

myEventListener = app.addEventListener("afterOpen", doJob );    

myEventListener.name = "TurnTCon";    

    }    

        

    function doJob(event) { 

        try{ 

if(event.parent.constructor.name == "Document") { 

                var myDocument = event.parent; 

if(myDocument.stories.length > 0) {

var myStory = myDocument.stories.everyItem().trackChanges = true;  

                } 

            } 

        }catch(e) {  }

    }     

}   

//>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>Fills Overset Text frames Magenta<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<\\     

function doOverset(){

   

    if (parseFloat(app.version) < 6) 

    main(); 

    else 

    app.doScript(main, ScriptLanguage.JAVASCRIPT, undefined, UndoModes.ENTIRE_SCRIPT, "Splice Image Along Path"); 

    function main() { 

        var doc = app.activeDocument; 

        var stories = doc.stories; 

for(s=0;s<stories.length;s++){

            var lastFrame = stories.textContainers[stories.textContainers.length - 1]; 

if(stories.overflows){ 

if(lastFrame.constructor.name == "TextFrame"){ 

lastFrame.fillColor = "Magenta"; 

}if(lastFrame.constructor.name == "TextPath"){ 

lastFrame.fillColor = lastFrame.parent.strokeColor = "Magenta"; 

                } 

}else{ 

if(lastFrame.constructor.name == "TextFrame"){ 

if(lastFrame.fillColor.name == "Magenta"){ 

lastFrame.fillColor = "None";

}if(lastFrame.constructor.name == "TextPath"){ 

if(lastFrame.parent.fillColor.name == "Magenta" && lastFrame.parent.strokeColor.name == "Magenta"){ 

lastFrame.fillColor = lastFrame.parent.strokeColor = "None" 

                }

            } 

             

        } 

    } 

    }

//>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>LOCK / Unlock SAVEINFO LAYER<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<\\ 

   function doLockLayer(){

app.activeDocument.layers.item("SaveInfo").locked = true;

       }

   function doULockLayer(){

app.activeDocument.layers.item("SaveInfo").locked = false;

       }

  

//>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>IMPORT PARAGRAPH AND CHARATER STYLES<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<\\ 

    function doJob(){  

        var theDocument = app.activeDocument;   

        var sourceFile = new File("/PPG/z-z MISC STUFF/INDESIGN SCRIPTS/RG Template.indd"); 

    //import paragraph styles   

        var paraImport = ImportFormat.PARAGRAPH_STYLES_FORMAT;

    //This will import without overwrite existing styles.   

        var clashPolicy = GlobalClashResolutionStrategy.DO_NOT_LOAD_THE_STYLE;   

theDocument.importStyles(paraImport, sourceFile, clashPolicy);   

}

  

//>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>RESET ZERO POINT TO 0 <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<\\ 

   function doZeroPoint(){

app.documents[0].zeroPoint = [0,0];

          }

//>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>DELETE UNUSED COLOR SWATCHES<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<\\

    function doTrashSwatch(){

     for(var i = 0; i < app.documents.length; i++){ 

    var myIndesignDoc = app.documents;  

app.menuActions.itemByName("$ID/Add All Unnamed Colors").invoke(); 

    var myUnusedSwatches = myIndesignDoc.unusedSwatches;   

    for (var s = myUnusedSwatches.length-1; s >= 0; s--)

    {   

        var mySwatch = myIndesignDoc.unusedSwatches;   

        var name = mySwatch.name;   

    // alert (name);   

        if (name != ""){   

mySwatch.remove();  

         }   

    }   

}

}

//>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>MOVE LAYERS TO THEIR DEISRED LOCATIONS<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<\\

    function doMoveLayer(){

        layers = app.documents[0].layers; 

    if (layers.item('SaveInfo').isValid) { 

layers.item('SaveInfo').move (LocationOptions.AT_END); 

    }

  /*  if (layers.item('Layer 1').isValid) { 

layers.item('Layer 1').move (LocationOptions.AT_BEGINNING); 

    } */

}

     

//>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>CREATE NEW LAYER FOR SAVE CHANGES<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<\\ 

    function doLayer(){

    var _d = app.documents[0]; 

    var _allStories = _d.stories; 

    for(var n=_allStories.length-1;n>=0;n--){ 

    var _storyAllTextFrames = _allStories.textContainers; 

        for(var m=_storyAllTextFrames.length-1;m>=0;m--){

            //If the contents of a text frame is an empty string:

            if(_storyAllTextFrames.contents === ""){ 

_storyAllTextFrames.select(); 

//Convert frame to "Unassigned": 

      /*      try{

app.scriptMenuActions.itemByID(11297).invoke(); 

}catch(e){};  */

}; 

            }; 

        }; 

     

    //Trick to deselect the last selection 

    //Add a new textFrame, select and remove it: 

    var _tempTextFrame = _d.textFrames.add(); 

_tempTextFrame.select(); 

    _tempTextFrame.remove(); 

       }

//>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>NEW LAYER SETTINGS<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<\\ 

    function addLayer(doc, name){ 

    try{ 

            var layer = doc.layers.itemByName(name); 

            if(layer && layer.isValid) { 

return layer; 

                } else { 

            var myLayer = doc.layers.add(); 

myLayer.name = name;

             myLayer.layerColor = [100,100,100]

                return myLayer; 

        } 

      } catch(e) { 

     } 

    } 

//>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>CREATE TEXT FRAME FOR SAVE INFO<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<\\

    function addTextFrame(doc, layer, name){ 

        var myBlendingSettings = { blendMode : BlendMode.OVERLAY };       

        var myTransparencySettings = { blendingSettings : myBlendingSettings };    

         

        var tf = doc.textFrames.itemByName(name); 

        if(tf && tf.isValid) {       

tf.remove(); 

        } 

        var origUnit = app.scriptPreferences.measurementUnit;

app.scriptPreferences.measurementUnit = MeasurementUnits.INCHES;

        tf = doc.textFrames.add(layer, LocationOptions.UNKNOWN, {name: name, fillColor :"Yellow", fillTint: 20, transparencySettings : myTransparencySettings,

geometricBounds: ['0in','-5.25in','1.0731in','-.75in'] });        

        app.scriptPreferences.measurementUnit = origUnit;     

              return tf; 

    } 

//>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>ADD TEXT FRAME TO LAYER<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<\\

    function addTable(tf){ 

        var myTable = tf.texts[0].tables.add       

            (       

               {        

                 // Number of Rows and Columns.     

bodyRowCount : 6 ,        

columnCount : 2        

             }       

        );      

     

    return myTable; 

        }

   

//>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>NAME LAYER AND ADD VARIABLES TO TEXT FRAME<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<\\

    function addVariable(doc, name, value){ 

        var v = doc.textVariables.itemByName(name); 

        if(v && v.isValid) 

return; 

     

        v = doc.textVariables.add({name:name, variableType:VariableTypes.CUSTOM_TEXT_TYPE}); 

v.variableOptions.contents = value;     

    } 

//>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>MOVE TEXT FRAME TO LAYER<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<\\

    function doTextFrameOnPageOne(event){      

           

        var doc = event.target;    

        if(!(doc && doc.constructor.name == "Document")) { 

return; 

        } 

           

        var myLayer = addLayer(doc, "SaveInfo"); 

//>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>COLUMN 1 OF TABLE<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<\\

        var columnOneContentsArray = [

            

"Document:" ,       

"User Name:",      

"Computer Name:",     

"Date Modified:",

"Date Output:",     

"Date Created:",     

"Output Date:"       

        ];   

       

//>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>COLUMN 2 OF TABLE<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<\\

        var columnTwoContentsArray = [    

            ];    

                  

        var tf = addTextFrame(doc, myLayer, "SaveInfo");

       

//>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>TABLE PROPERTIES<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<\\

        var myTable = addTable(tf); 

myTable.columns[0].cells.everyItem().texts[0].pointSize = 6;

myTable.columns[0].cells.everyItem().texts[0].appliedFont = app.fonts.item("Minion Pro");

myTable.columns[1].cells.everyItem().texts[0].pointSize = 6;

myTable.columns[1].cells.everyItem().texts[0].appliedFont = app.fonts.item("Minion Pro");

setColumnWidthsAndAlignments(myTable)

    function setColumnWidthsAndAlignments(tableObj) 

       { 

        var myWidths=['1.0731in', '3.413in', '3in', '3in'];

        var myAlignments=[Justification.LEFT_ALIGN,Justification.LEFT_ALIGN]; 

        var numberOfColumns=tableObj.columns.count();

        for (c=0;c<numberOfColumns;c++) 

       { 

myTable.columns.width=myWidths;

myTable.columns.cells.everyItem().texts.everyItem().justification=myAlignments

       } 

      }      

//>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>CREATE NEW CUSTOM VARIABLES<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<\\

        var md = doc.textVariables.itemByName("Output Date");

md.variableOptions.format = "MMMM dd, yyyy hh:mm a";

        var md = doc.textVariables.itemByName("Creation Date");

md.variableOptions.format = "MMMM dd, yyyy hh:mm a";

            tv = doc.textVariables.item("Users Name");   

!tv.isValid && tv = doc.textVariables.add({name:"Users Name", variableType:VariableTypes.CUSTOM_TEXT_TYPE});           

tv.variableOptions.contents = String( getAppUserName() ); 

            tvL = doc.textVariables.item("CLN");

!tvL.isValid && tvL = doc.textVariables.add({name:"CLN", variableType:VariableTypes.CUSTOM_TEXT_TYPE});   

tvL.variableOptions.contents = String( getLogInUserName() );

          

                   

//>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>PLACING TEXT VARIABLE INFORMATION IN THE CELLS & COLUMN<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<\\

        var R1, R2, R3, R4, R5, R6;      

myTable.columns[0].contents = columnOneContentsArray;       

myTable.columns[1].contents = columnTwoContentsArray;       

        var cell0OfColumn2insertionPoint1 = myTable.columns[1].cells[0].insertionPoints[0];      

        var R1 = cell0OfColumn2insertionPoint1.textVariableInstances.add(LocationOptions.AFTER, cell0OfColumn2insertionPoint1);

R1.associatedTextVariable = doc.textVariables.itemByName("File Name");      

        var cell1OfColumn2insertionPoint1 = myTable.columns[1].cells[1].insertionPoints[0];     

        var R2 = cell1OfColumn2insertionPoint1.textVariableInstances.add(LocationOptions.AFTER, cell1OfColumn2insertionPoint1);   

R2.associatedTextVariable = doc.textVariables.itemByName("Users Name")        

        var cell2OfColumn2insertionPoint1 = myTable.columns[1].cells[2].insertionPoints[0];         

        var R3 = cell2OfColumn2insertionPoint1.textVariableInstances.add(LocationOptions.AFTER, cell2OfColumn2insertionPoint1);

R3.associatedTextVariable = doc.textVariables.itemByName("CLN");        

        var cell3OfColumn2insertionPoint1 = myTable.columns[1].cells[3].insertionPoints[0];       

        var R4 = cell3OfColumn2insertionPoint1.textVariableInstances.add(LocationOptions.AFTER, cell3OfColumn2insertionPoint1);

R4.associatedTextVariable = doc.textVariables.itemByName("Modification Date");      

        var cell4OfColumn2insertionPoint1 = myTable.columns[1].cells[4].insertionPoints[0];      

        var R5 = cell4OfColumn2insertionPoint1.textVariableInstances.add(LocationOptions.AFTER, cell4OfColumn2insertionPoint1);

R5.associatedTextVariable = doc.textVariables.itemByName("Output Date");      

        var cell5OfColumn2insertionPoint1 = myTable.columns[1].cells[5].insertionPoints[0];     

        var R6 = cell5OfColumn2insertionPoint1.textVariableInstances.add(LocationOptions.AFTER, cell5OfColumn2insertionPoint1);

R6.associatedTextVariable = doc.textVariables.itemByName("Creation Date");        

        }       

     

//>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>L# Date<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<\\

    

//>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>COMPUTER NAME TEXT VARIABLE<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<\\

    function getLogInUserName(){       

            

         

         var userNameOSX = $.getenv("USER");

         var userNameWindows = $.getenv("USERNAME");       

               

if(userNameWindows == null){return userNameOSX}       

else{return userNameWindows};

               

        }       

//>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>APPLICATION USER NAME TEXT VARIABLE<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<\\

    function getAppUserName(){

          return app.userName;

          }

Translate
Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines