Indesign scripting: i predefiniti di stampa

Usare via scripting i predefiniti di stampa

In Indesign i predefiniti di stampa sono accessibili via script attraverso la collezione PrinterPresets.

Vediamo qualche esempio esplicativo direttamente dalla console di ESTK (Extendscript Toolkit), l’ambiente di sviluppo che viene installato di default da Indesign.

Naturalmente le proprietà accessibili sono molte di più, se ne può avere una idea ad esempio qui.

Scriviamo il seguente codice:

//quanti predefiniti di stampa ho definito in IND
numero_presets=app.printerPresets.length;
//vedo il risultato nella console di ESTK
$.write(“Preset installati n.”,numero_presets);
//stampo in console i nomi dei predefiniti
$.write(“I nomi dei miei predefiniti sono:\n”);
for (j=0;j

I risultati che appariranno nella console saranno del tipo:

dove, ad esempio si vede che il mio predefinito di stampa “[Predefinito]” utilizza la stampante “Samsung ML-3050 Series”, mentre quello denominato “Predefinito di stampa 1” utilizza la stampante “1886611052” (che è il codice interno che IND assegna alla stampante speciale “File Postscript”).

Una interfaccia grafica minimale

Se invece della console vogliamo provare queste proprietà da una minima interfaccia grafica, eccola. Naturalmente in questo caso lo script va salvato nella cartella Scripts Panel di Indesign ed eseguito all’interno di Indesign stesso.

var myPresets = app.printerPresets.everyItem().name;
var w = new Window (“dialog”);
w.text=”I predefiniti di stampa”;
w.orientation = ‘row’;
var myDropDown = w.add (“statictext”, undefined, “Predefiniti di Stampa”);
var myDropDown = w.add (“dropdownlist”, undefined, myPresets);
myDropDown.selection = 0;
var myButtonGroup = w.add (“group”);
myButtonGroup.add (“button”, undefined, “OK”);
w.center();
w.show();
preset=app.printerPresets.[myDropDown.selection.index];
preset_name=preset.name;
messaggio1=”Hai selezionato il preset: “+preset.name+”\n”;
messaggio2=”Il preset selezionato utilizza la stampante: “+preset.printer+”\n”;
messaggio3=”La dimensione della carta impostata è: “+preset.paperSize+”\n”;
alert(messaggio1+messaggio2+messaggio3);

Il risultato sarà quello delle immagini.

Download del codice illustrato nell’articolo.