Skriptujeme InDesign (26): Barvy podruhé - Grafika.cz - vše o počítačové grafice

Odběr fotomagazínu

Fotografický magazín "iZIN IDIF" každý týden ve Vašem e-mailu.
Co nového ve světě fotografie!

 

Zadejte Vaši e-mailovou adresu:

Kamarád fotí rád?

Přihlas ho k odběru fotomagazínu!

 

Zadejte e-mailovou adresu kamaráda:

Soutěž

Sponzorem soutěže je:

IDIF

 

Kde se koná výstava fotografií Luďka Vojtěchovského?

V dnešní soutěži hrajeme o:

VSE

Skriptujeme InDesign (26): Barvy podruhé

Adobe InDesign sazba

25. září 2006, 00.00 | I tento díl našeho výkladu se zabývá skriptováním barev. Tentokrát se zaměříme na způsoby aplikace barev na objekty a dále na práci s odstíny. Věnovat se pak budeme i použití barev v uživatelském rozhraní InDesignu.

I tento díl našeho výkladu se zabývá skriptováním barev. Tentokrát se zaměříme na způsoby aplikace barev na objekty a dále na práci s odstíny. Věnovat se pak budeme i použití barev v uživatelském rozhraní InDesignu.

Objekty a barvy

Zásadní je samozřejmě ve skriptech obarvení objektů určitou barvou. V případě stránkových objektů (pageItems - rámečky, EPS, PDF či bitmapová grafika, čáry apod.) lze aplikování barvy provést obvykle v případě výplně a tahu, obdobně lze změnit i barvu textu. Pokud chceme odstranit nastavení barvy u daných prvků, můžeme aplikovat vzorníkovou barvu "None" (v českém InDesignu "Žádná"). Příklad přiřazení barev:

//Aplikuje určené barvy tahu a výplně u aktuálně vybraného textového rámečku
var myDoc=app.activeDocument;

//Definujeme barvu tahu a výplně
//Všimněte si, že používáme jiný postup nežli v dřívějších příkladech (s try/catch)
if(myDoc.colors.item("Barva výplně")==null)
    {myDoc.colors.add({space: ColorSpace.cmyk, colorValue: [0,0,100,0], name: "Barva výplně"})}
    else{myDoc.colors.item("Barva výplně").properties={space: ColorSpace.cmyk, colorValue: [0,0,100,0], name: "Barva výplně"}}
if(myDoc.colors.item("Barva tahu")==null)
    {myDoc.colors.add({space: ColorSpace.cmyk, colorValue: [100,0,0,0], name: "Barva tahu"})}
    else{myDoc.colors.item("Barva tahu").properties={space: ColorSpace.cmyk, colorValue: [100,0,0,0], name: "Barva tahu"}}

//Je-li vybrán textový rámeček, nastaví skript jeho tah a výplň na barvu výplně a tahu,
//barvu veškerého textu v rámečku nastaví na tiskařskou čerň
var mySel=app.selection[0];
if(mySel==null){alert("Nic jste nevybrali");exit()}
if(mySel.constructor.name=="TextFrame"){
    mySel.strokeColor=myDoc.colors.item("Barva tahu");
    mySel.fillColor=myDoc.colors.item("Barva výplně");
    mySel.texts[0].fillColor=myDoc.colors.item("Black")
    }
    else{alert("Nevybrali jste textový rámeček")}

V InDesignu CS2 je možné aplikování i na bázi objektových stylů, viz následující příklad:

//Aplikuje určené barvy tahu a výplně u aktuálně vybraného textového rámečku
//pomocí objektového stylu
var myDoc=app.activeDocument;

//Definujeme barvu tahu a výplně
//Všimněte si, že používáme jiný postup nežli v dřívějších příkladech (s try/catch)
if(myDoc.colors.item("Barva výplně")==null)
    {myDoc.colors.add({space: ColorSpace.cmyk, colorValue: [0,0,100,0], name: "Barva výplně"})}
    else{myDoc.colors.item("Barva výplně").properties={space: ColorSpace.cmyk, colorValue: [0,0,100,0], name: "Barva výplně"}}
if(myDoc.colors.item("Barva tahu")==null)
    {myDoc.colors.add({space: ColorSpace.cmyk, colorValue: [100,0,0,0], name: "Barva tahu"})};
    else{myDoc.colors.item("Barva tahu").properties={space: ColorSpace.cmyk, colorValue: [100,0,0,0], name: "Barva tahu"}}


//Definujeme příslušný objektový styl
if(myDoc.objectStyles.item("Styl barvy rámečku")==null)
    {myDoc.objectStyles.add({name: "Styl barvy rámečku",
    fillColor: myDoc.colors.item("Barva výplně"), strokeColor: myDoc.colors.item("Barva tahu")})}
    else{myDoc.objectStyles.item("Styl barvy rámečku").properties={fillColor: myDoc.colors.item("Barva výplně"), strokeColor: myDoc.colors.item("Barva tahu")}}


//Je-li vybrán textový rámeček, aplikuje se na něj objektový styl "Styl barvy rámečku"
var mySel=app.selection[0];
if(mySel==null){alert("Nic jste nevybrali");exit()}
if(mySel.constructor.name=="TextFrame"){
    mySel.applyObjectStyle(myDoc.objectStyles.item("Styl barvy rámečku"))}
    else{alert("Nevybrali jste textový rámeček")}

Síla nasazení skriptů souvisí v daném případě s hromadným zpracováním. Uveďme si třeba následující příklad:

//U všech textových rámečků v dokumentu odstraní jejich výplň
//(tj. nastaví ji na vzorníkovou barvu "None" v anglickém a "Žádná" v českém InDesignu)
var myDoc=app.activeDocument;

for(i=0;i<myDoc.textFrames.length;i++){myDoc.textFrames[i].fillColor=myDoc.swatches.item("None")}

Odstíny

U barvy aplikované na objekt lze nastavit její odstín (tint). Nejsnáze (resp. jednorázově) takto operujeme s hodnotami strokeTint a fillTint, udanými v procentech (0-100). Ukázka:

//Nastaví hodnotu odstínu u výplně vybraného objektu na 60 procent
var mySel=app.selection[0];

if(mySel!=null){mySel.fillTint=60}
    else{alert("Vyberte objekt a spusťte skript znovu")}

K vytvoření políčka vzorníku s odstínem je třeba použít objektu tint. Více naznačuje následující příklad, podrobnější informace lze najít v referenční příručce InDesignu (s. 1 174-1 176).

//Přidá políčko odstínu vytvořené ze základní barvy "Red"
var myDoc=app.activeDocument;

try{myDoc.tints.add(myDoc.colors.item("Red"),{tintValue: 35})}catch(e){alert("Daný odstín již asi existuje")}
//Nové políčko se bude jmenovat "Red 35%")

Následná aplikace odstínu na objekt je možná následujícím způsobem:

//Políčko odstínu "Red 35%" aplikuje jako výplň výběru
var myDoc=app.activeDocument;
var mySel=app.selection[0];

if(mySel!=null){mySel.fillColor=myDoc.tints.item("Red 35%");}
    else{alert("Vyberte objekt a spusťte skript znovu")}

Barvy v rozhraní InDesignu

Barvy je občas třeba použít i v rozhraní InDesignu, konkrétně třeba pro vyznačení vodítek, mřížky, jednotlivých vrstev apod. V daném případě se jedná o RGB barvy, které určujeme buďto přímo coby trojici RGB hodnot nebo s pomocí UI Colors Enumeration (pro odpovídající hodnoty viz s. 1 238-1 239 referenční příručky).

//Nastaví barvu určené vrstvy na "orange"
var myDoc=app.activeDocument;
var myLayer=myDoc.layers[0];
myLayer.layerColor=UIColors.orange;


//Nastavení barvy vodítek v předvolbách na hodnoty "gridGreen", "teal", "magenta", "red" a [0,255,255]
myDoc.documentPreferences.marginGuideColor= UIColors.gridGreen; //vodítka z okrajů
myDoc.documentPreferences.columnGuideColor = UIColors.teal; //vodítka sloupců
myDoc.pasteboardPreferences.bleedGuideColor = UIColors.magenta; //vodítka kolem spadávky
myDoc.pasteboardPreferences.slugGuideColor = UIColors.red; //vodítka kolem proložky
myDoc.pasteboardPreferences.previewBackgroundColor=[0,255,255]; //barva pozadí v režimu náhledu

Obsah seriálu (více o seriálu):

Tématické zařazení:

 » Rubriky  » VSE  

 » Rubriky  » Go verze  

 » Rubriky  » Sazba  

 » Rubriky  » Polygrafie  

 

 

 

 

Přihlášení k mému účtu

Uživatelské jméno:

Heslo: