-
Notifications
You must be signed in to change notification settings - Fork 6
Documents
monkian edited this page Oct 16, 2012
·
11 revisions
###documents
Everything happens in documents
it is something like the base container. You can acces the document in diffrent ways. Like so:
/**
* Look for an active document
* without try catch it could produce an error
*
*/
var doc;
try{
doc = app.activeDocument; // works with no doc
var name = doc.name; // this is what throws an error
alert("You have an active document.");
}catch(error){
// error is a variable that contains
// a message that can be read
// alert(error);
alert("You dont have an active document.");
}
A document can be created with the values already set . This can be pretty handy but is hard to debug. You should always first test a property solo and than combine them in an object. So this code:
var doc = app.documents.add();
var val = 150;
var prefs = doc.documentPreferences;
prefs.pageWidth = val;
prefs.pageHeight = val;
Could be minified to the following code. This is pretty handy, isn't it?
app.documents.add({
documentPreferences:{
pageWidth:150,pageHeight:150
}
});
This means you can create a JSON object with the right syntax and than inject it into an app.documents.add()
!Achtung! This works only in InDesign CS5+
/**
* You can create objects with the same structure as
* a documents to define values
* and than in inject them within a loop
* **!Achtung!** This works only in InDesign CS5+
*/
main();
// everyting is in here
function main(){
var doc_data = {
"documentPreferences":{
"pageWidth": 10 ,"pageHeight":10
}
};
/*
now you could do a lot of fancy stuff
and still have your important data
like the settings for the doc on the top of the script
also you could place them into another
file or something like this.
*/
// now loop and create some documents
var i = 1;
var num = 13;
var arr = new Array();
while(i < num){
// do something fancy here
doc_data.documentPreferences.pageWidth+=10;
doc_data.documentPreferences.pageHeight+=10;
// now push it into an array
arr.push(app.documents.add(doc_data));
i++;
}
// add some text. just for fun
add_text (arr);
}
/**
* This function adds text to an doc
* it takes an array of documents as argument
*/
function add_text(arr){
for(var j in arr){
var d = arr[j];
var pw = d.documentPreferences.pageWidth;
var ph = d.documentPreferences.pageHeight;
var gutter = pw/10;
var gb = [gutter,gutter,ph - gutter, pw - gutter];
var pg = d.pages.item(0);
pg.textFrames.add({
geometricBounds:gb,
contents:"I'm doc number " + j
});
}
}
This wiki is maintained by:
fabiantheblind
Collaborators:
- How To Install And Run Scripts
- References And Links
- Tools
- First Session
- Comments
- Extended JavaScript Guide
- Variables And Operations
- Conditionals
- Arrays
- Output And Interaction
- Objects
- Classes
- Loops
- Functions
- Recursive Functions
- The ID Scripting DOM
- ExtendScript
- Inspect Properties
- app
- Documents
- Pages And Margins
- Masterspreads
- Layers
- GeometricBounds and Coordinates
- Text
- Line Feeds And Carrige Returns
- Simple Find And Change Grep
- Simple Find And Change Text
- Text Analysis
- Text Analysis ID FC
- Text Find Locations
- InsertionPoints
- Styles
- Objectstyles
- Rectangles Ovals Polygons
- Matrix
- Outlines Groups Alignment
- Graphic Lines
- Spiro
- Colors And Swatches
- HSL Color Wheel
- Pathfinder
- Fonts
- Transformation Matricies
- Duplicate And Transform
- Includes
- Storing Data In A Target Engine
- Create And Read Files
- Read In JSON From File And Eval
- Delay And View
- ScriptUI Resource Strings