/*
library_place_assets.jsx
//DESCRIPTION:Platziert Objekte einer Bibliothek im aktiven Dokument.
VERSION: 0.1
AUTHOR: Martin Fischer
EMAIL: InDesign[at]MartinFischer.de
DATE: 22.6.15
© Martin Fischer 2015
*/
// Bibliotheksobjekte_platzieren.jsx
app.doScript (main, ScriptLanguage.JAVASCRIPT, undefined, UndoModes.ENTIRE_SCRIPT, "library_place_assets.jsx");
function main()
{
if (app.documents.length == 0)
app.documents.add();
var doc = app.documents.firstItem(),
i, lib = null, assets = [], n_layer = null, n = 'Bibliotheksobjektname',
ps = (doc.paragraphStyles.itemByName(n).isValid)
? doc.paragraphStyles.itemByName(n)
: doc.paragraphStyles.add({
name: n,
pointSize: '12 pt',
justification:Justification.LEFT_ALIGN,
leftIndent: 0,
rightIndent: 0,
firstLineIndent: 0,
lastLineIndent: 0
});
if (app.libraries.length == 0)
error_exit('Keine Bibliothek geöffnet!')
else if (app.libraries.length == 1)
lib = app.libraries.firstItem();
else
lib = get_library(app.libraries.everyItem().name);
assets = lib.assets.everyItem().getElements();
assets.sort(assort);
n_layer = (doc.layers.itemByName(n).isValid) ? doc.layers.itemByName(n) : doc.layers.add({name: n});
for (i = 0; i < assets.length; i++)
{
var spread = (doc.spreads.length == 1 && doc.spreads.firstItem().pageItems.length == 0) ? doc.spreads.firstItem() : doc.spreads.add();
app.layoutWindows.firstItem().activeSpread = spread;
var tf = spread.textFrames.add({rotationAngle: 90, /*geometricBounds: [0, '-10 mm', doc.documentPreferences.pageHeight, 0],*/ itemLayer: n_layer, contents: assets[i].name, name: n, nonprinting : true});
tf.geometricBounds = [0, '-10 mm', doc.documentPreferences.pageHeight, -0.1];
tf.insertionPoints.firstItem().appliedParagraphStyle = ps;
assets[i].placeAsset(doc);
}
//=================================================================
// Funktionen
//=================================================================
//-----------------------------------------------------------------
// Bibliotheksobjekte sortieren
//-----------------------------------------------------------------
function assort(a,b)
{
return a.name > b.name;
}
//-----------------------------------------------------------------
// Bibliothek ermitteln
//-----------------------------------------------------------------
function get_library(lib_names)
{
var win = new Window ("dialog", "Auswahl der Bibliothek");
var gr = win.add ("group");
gr.drop_down = gr.add ( 'dropdownlist', undefined, lib_names);
gr.drop_down.selection = 0;
var btn_gr = win.add ("group");
btn_gr.alignment = "right";
btn_gr.add ("button", undefined, "OK");
btn_gr.add ("button", undefined, "Cancel");
if (win.show () == 1)
return( app.libraries.itemByName( lib_names[gr.drop_down.selection.index]) );
else
exit ();
}
//-----------------------------------------------------------------
// Ausstieg mit Fehlermeldung
//-----------------------------------------------------------------
function error_exit(message)
{
if (arguments.length > 0)
alert(message);
exit();
}
}