Copy link to clipboard
Copied
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.
Copy link to clipboard
Copied
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;
}
Find more inspiration, events, and resources on the new Adobe Community
Explore Now