Add items to library via script
Hello! I want to add items from a page as separate objects to the library via script. May be someone know how it could be done. What command should I use in ExtendScript or AppleScript. Thanks!
Hello! I want to add items from a page as separate objects to the library via script. May be someone know how it could be done. What command should I use in ExtendScript or AppleScript. Thanks!
Thank you, again Manan Joshi! I've combine your script with selection script, but I can't make it right to loop through pages. Can your help me again?
var myDoc=app.documents[0]
var myPages = myDoc.pages;
var newLib = app.libraries.add("Test.indl");
for(i=0; i<myDoc.pages.length; i++)
{
app.selection = null;
pItems = app.windows[0].activeSpread.pageItems;
app.select (pItems, SelectionOptions.ADD_TO);
for(var i=0; i < app.selection.length; i++)
{
var obj = app.selection
if(obj.allGraphics.length > 0)
newLib.store(obj,{name:obj.allGraphics[0].itemLink.name});
else
newLib.store(obj,{name:"myObject" + i});
}
}
I am not sure what you are trying to do, as you iterate pages but then add pageitems of the spread. Remember that pageitems of the page would be included in the spread pageitems as well. So either iterate the spread or iterate the pages but not both.
Apart from that you don't actually need to select these objects to add them the library, as you can pass the pageitem object directly to the store method. Below is the demonstration of what i explained, in this code snippet i am iterating the pages, if needed you can iterate the spreads as well.
var myDoc=app.documents[0]
var myPages = myDoc.pages;
var newLib = app.libraries.add("Test.indl");
for(i=0; i<myDoc.pages.length; i++)
{
for(var j=0; j < myDoc.pages.allGraphics.length; j++)
{
var obj = myDoc.pages.allGraphics
newLib.store(obj,{name:obj.itemLink.name});
}
}
To iterate the spreads you could use something like below, this will give you the graphics in the first spread
app.documents[0].spreads[0].allGraphics
-Manan
Already have an account? Login
Enter your E-mail address. We'll send you an e-mail with instructions to reset your password.