Skriptujeme InDesign (20): Obrázky poprvé - 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:



Software

Skriptujeme InDesign (20): Obrázky poprvé

Adobe InDesign sazba

31. července 2006, 00.00 | V této části našeho výkladu se dostáváme k dalšímu velmi komplexnímu tématu, kterým je
skriptování práce s grafikou. Dnes se budeme věnovat převážně způsobům umisťování daného
typu obsahu do dokumentů InDesignu. Naší pozornosti přitom neuniknou ani zajímavé
skripty pro hromadné vkládání obrázků a stránek z PDF dokumentů.

V této části našeho výkladu se dostáváme k dalšímu velmi komplexnímu tématu, kterým je skriptování práce s grafikou. Dnes se budeme věnovat převážně způsobům umisťování daného typu obsahu do dokumentů InDesignu. Naší pozornosti přitom neuniknou ani zajímavé skripty pro hromadné vkládání obrázků a stránek z PDF dokumentů.

Jak na umístění obrázku?

Import grafiky do dokumentu lze při skriptování zajistit v podstatě dvěma způsoby: umístěním obrázku na určitou zadanou pozici v dokumentu s automatickým vytvořením jeho rámečku nebo načtením obrázku do obsahu rámečku již existujícího. V prvním případě lze použít například metodu place pro objekt stránka, obdobně by bylo možno umisťovat přes objekt dvojstránka (spread). Obecný tvar daného příkazu je následující:

place(soubor,umístění,vrstva,import,autoflow,vlastnosti)

kde soubor (jediný povinný parametr) značí soubor, jež má být importován, umístění je pozice na stránce udaná v podobě souřadnic [x,y] (výchozí hodnota je [0,0], čili levý horní roh stránky), vrstva je vrstva v dokumentu, na kterou se obrázek umisťuje, import je logická hodnota, kterou rozhodneme, zda chceme při importu zobrazit importní dialog. Autoflow se týká textu, vlastnosti definuje pole počátečních vlastností umístěného obrázku.

Umisťovat daným způsobem lze všechny podporované formáty bitmapové grafiky (JPEG, TIFF, PNG aj.) a dále EPS, AI a PDF. Pro dané formáty existuje možnost kontrolovat různé specifické parametry (které se jinak nastavují vždy v příslušném importním dialogu interaktivně), na jejich volby se podíváme za chvíli. Umístěním vzniká objekt Image pro bitmapovou grafiku, EPS pro EPS soubory a PDF pro PDF. K vložené grafice všech těchto typů lze přistupovat různými způsoby, typicky přes metody dokumentu allGraphics či links - viz výklad v příštím díle. Teď ukázkový příklad jak umístit grafiku daným způsobem na stránku:

//Umístí obrázek vaza.jpg na první stránku dokumentu, do vrstvy Obrázky a to bez importního dialogu
var myDocument=app.activeDocument;
myDocument.layers.add({name: "Obrázky"});
myImage=myDocument.pages[0].place(File("/c/clanky/skriptid/vaza.jpg"),["10mm","10mm"],"Obrázky",false);

Mimo pevného určení názvu souboru lze zvolit řadu dalších variant podle potřeb - viz další příklady a náš dřívější výklad o práci se soubory. Specifický je způsob umisťování PDF dokumentů, viz příklad o kousek dále.

Rámeček pro umístění obrázku může být libovolného typu, tj. mimo grafického (kdy je možno přepsat původní obsah) lze použít i textový, případně lze obrázek vložit do složeného tvaru, např. textu převedeného na křivky nebo jím lze zaměnit existující inline grafiku. Metoda place má pro daný typ rámečků o něco jednodušší syntaxi:

place(soubor,import,vlastnosti)

kde význam jednotlivých parametrů je stejný jak je uvedeno výše. Malý příklad:

//Nechá uživatele vybrat EPS soubor.
//Poté na druhou stranu v dokumentu umístí obdélníkový rámeček a vloží do daný EPS
var myEPS=File.openDialog("Vyberte EPS dokument k načtení","Dokumenty EPS: *.EPS");
if(myEPS!=null){myFrame=myDocument.pages[1].rectangles.add({geometricBounds: ["8cm","0cm","18cm","21cm"]});myFrame.place(myEPS)}

K nastavení importních preferencí

Pro bitmapovou grafiku lze v případě importu (pokud nechceme použít interaktivní importní dialog) provést odpovídající nastavení parametrů pomocí app.imageIOpreferences. Nabídka možností je zde poměrně chudá (viz s. 819-820 referenční příručky), zahrnuje pouze povolení automatického vkládání, určení jména alfa kanálu a aplikaci ořezové cesty Photoshopu. Dané vlastnosti se ukládají s obrázkem a lze je v něm dále měnit.

app.imageIOpreferences={allowAutoEmbeding: false, alphaChannelName: "První kanál", applyPhotoshopClippingPath: true};

Pro EPS grafiku zde je nastavení app.EPSImportPreference (s. 710 referenční příručky), které dovoluje zapnout vytvoření rámečků z ořezových cest v obrázku, stanovit způsob generování náhledu (Proxy) a použít OPI záměn.

app.epsImportPreferences.properties={epsFrames: false,
//Další možná hodnota epsProxy je always
epsProxy: CreateProxy.asNeeded,
opiComments: true};

Pro nastavení importu PDF zde jsou app.PDFPlacePreference (viz s. 1 015 referenční příručky). V nich lze nastavit heslo pro otevírání dokumentu (samozřejmě jen je-li potřeba), číslo stránky která se má vložit, způsob ořezu obsahu a průhlednost pozadí. Daná nastavení se pak použijí ke vložení PDF grafiky do dokumentu následovně:

//V tomto příkladu určíme, že chceme importovat obsah první stránky
//určený ohraničovacím rámečkem (Bouding Box).
//Pozadí nebude průhledné, použijeme otevírací heslo "123"
app.pdfPlacePreferences.properties= {openDocumentPassword: "123",
pageNumber:1,
//Další hodnoty pro pdfCrop jsou cropArt (obraz), cropPDF (crop - oříznutí), cropTrim (řezací značky), cropBleed (spadávka), cropMedia (media)
pdfCrop: PDFCrop.cropContent, transparentBackground: false};

//Vybraný PDF obsah umístíme na první stranu do horního levého rohu dokumentu
var myPDF=File.openDialog("Vyberte PDF dokument k načtení","Dokumenty PDF: *.pdf");
if(myPDF!=null){myDocument.pages[0].place(myPDF)};

Přizpůsobení velikosti grafiky

Bezprostředně po vložení obrázku do dokumentu je žádoucí provedení různých transformací. Nejvíce vhod takto přijde metoda fit, která dovoluje přizpůsobit vzájemně velikost rozměrů obrázku a rámečku. Jejími možnými hodnotami jsou contentToFrame (obsah se roztáhne do rámečku), frameToContent (rámeček se přizpůsobí obsahu), centerContent (obsah obrázku se vycentruje v rámečku) a proportionally (obrázek se přizpůsobí rozměrům rámečku proporcionálně).

//Zarovná obsah umístěného obrázku do rámečku proporciálně a poté nastaví rozměr rámečku na rozměr zarovnaného obrázku
myFrame=myDocument.pages[0].rectangles.add({geometricBounds: ["0","0cm","10cm","10cm"]});
myImage=myFrame.place(File("/c/clanky/skriptid/tiger.eps"));
myImage.fit(FitOptions.proportionally);
myImage.fit(FitOptions.frameToContent);

Různá kouzla se dají provádět při zarovnávání obrázku vůči rámečku odpovídající manipulací s pozicí grafiky uvnitř rámečku pomocí metody move. Více viz například zajímavý skript D. Saunderse. Mimo daných nastavení pak bývá již při načtení vhodné kontrolovat například rychlost zobrazení, aplikovat efekty typu vrženého stínu, měnit velikost apod. - výklad o těchto i dalších prvcích (mj. práci s odkazy na obrázky) si necháme do příštího dílu.

ImageCatalog a PlaceMultipage PDF: dva vysoce užitečné skripty

Principy naznačené výše lze využít různorodými způsoby. Jedním z nejobvyklejších je hromadné umisťování grafiky do dokumentu, při kterém může skriptování ušetřit neskutečné množství práce. Pro ty, kdo nějakou takovouto vlastnost vyžadují, je zde dvojice vysoce užitečných skriptů, dodávaných přímo s InDesignem.

ImageCatalog vytvoří grafický katalog z obrázkových souborů umístěných v zadané složce. Editaci odpovídajícího pole v úvodu skriptu přitom uživatel určí, jaké typy souborů se mají načítat. Po spuštění skriptu nejprve skript prohledá zadanou složku, poté nabídne dialog s informací o počtu souborů vyhovujících zadaným kritériím. V dialogu je možno nastavit několik další parametrů katalogu, poté se provede samotné sestavení do nového dokumentu (stránky se přidávají podle potřeb), obrázky jsou rozmístěny na stránkách v tabulkách, u kterých lze nastavit počet řádků a sloupců, horizontální a vertikální odstup a způsob zarovnání obrázků v jejich rámečcích. Ke každému obrázku je pak možno připojit textový popisek, informující o názvu jeho souboru, popisky jsou umístěny do zvláštní vrstvy (pro snadné skrytí) a formátovány speciálním stylem (pro snadné změny nastavení). Skript je zajímavý i z technického hlediska, neboť ošetřuje specifika práce se souborovými typy na platformách Windows i Macintosh (a je tedy bez problémů na daných platformách použitelný). Zajímavé jsou v něm i kalkulace rozvržení tabulky a samozřejmě i použití mnohých vlastností a metod, které jsme popsali výše.

Skript PlaceMultipagePDF již není tak komplexní, ale je rovněž užitečný. Do zadaného či nového dokumentu vloží všechny stránky určeného PDF dokumentu. Ořez stránky je nastaven volbou cropMedia (tedy na velikost stránky původního dokumentu), importované rámečky jsou umístěny do levého horního rohu stránky. Minimálně zmíněné dva parametry lze ve skriptu snadno měnit, k dispozici jsou pochopitelně mnohé další úpravy zadaného skriptu podle potřeb. (Drobná, ale užitečná modifikace pro ty, kdo ví, že jejich PDF dokumenty mají vždy příponu PDF: Na desátém řádku skriptu nahraďte tento kód

var myPDFFile = File.openDialog("Choose a PDF File");

následujícím

var myPDFFile = File.openDialog("Choose a PDF File","PDF: *.pdf");)

.)

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

Tématické zařazení:

 » Rubriky  » VSE  

 » Rubriky  » Go verze  

 » Rubriky  » Sazba  

 » Rubriky  » Polygrafie  

 » Rubriky  » Software  

 

 

 

 

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

Uživatelské jméno:

Heslo: