Skriptujeme InDesign (32): Reakce na události - 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:

Saal Digital

 

Jaký největší formát fotoknihy v řadě Professional Line ve formátu na šířku lze ve standardní nabídce Saal Digital Fotoservice objednat? Nápověda: Logo sponzora soutěže

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



Software

Skriptujeme InDesign (32): Reakce na události

Adobe InDesign sazba

22. ledna 2007, 00.00 | Potřebujete automaticky spouštět skripty se startem InDesignu, otevřením, uložením či
tiskem dokumentu nebo třeba posunem určitého rámečku? Samotný InDesign zde příliš mnoho
možností neposkytuje, ale plugin RogueSheep InEventScript a vývojářská technologie
Rorohiko Active Page Item daný handicap poměrně úspěšně odbourávají. Více v našem
článku.

Jednou z velkých potenciálních výhod skriptů je možnost jejich automatizovaného provádění na základě určitých událostí, které se dějí v dané aplikaci. Společnost Adobe demonstrovala daný přístup ve Photoshopu CS2, jehož Script Events Manager dovoluje uživateli přiřadit určeným událostem automatizované provedení skriptu či akce. Daný způsob zpracování pak má samozřejmě svůj význam i pro uživatele InDesignu. Z možných aplikací lze takto zmínit například protokolování času stráveného zpracováním určitého dokumentu (zajistí dvojice skriptů – jeden se aktivuje při otevření, druhý pak při uzavření daného dokumentu), zaznamenání uživatele, který provedl v dokumentu úpravy (např. zapsání jména tohoto uživatele do určitého metadatového pole – skript se zde evokuje při uzavírání dokumentu), či kontrola dokumentu například na přetečený text nebo barvy v RGB před výstupem (skript se spouští třeba při každém uložení dokumentu, jeho exportu do PDF nebo tisku). Možné jsou pak i odezvy na manipulaci s jednotlivými objekty: například automatické přebarvení určených rámečků, pokud změníme barvu u jednoho z nich, změna či synchronizace vložených informací (například aktuální počet znaků a slov, souborová cesta dokumentu, datum a čas, výpočty v tabulkách) aj.

Dané lákavě vyhlížející možnosti, jež mohou vést až k plně automatizovanému nebo z uživatelského hlediska k výrazněji bezchybnějšímu a efektivnějšímu workflow, ovšem nejsou nabízeny přímo v rámci samotného InDesignu – prostředek typu Script Events Manageru (zatím) chybí a určit lze pouze skripty, jež se spouští při startu InDesignu (viz "Adobe InDesign CS2 Scripting Guide", s. 74). Řešením pak není ani kontrola s pomocí externích aplikací (např. workflow systémy, jako je Gradual Software SWITCH) či skriptovacích enginů, včetně manageru Bridge, dodávaného s CS2, i když daným způsobem lze budovat určitě jinak hodně zajímavé systémy. Prostředky společnosti RogueSheep a Rorohiko nicméně dovolují – za poměrně výhodných cenových podmínek – naznačený handicap značně snížit. Blíže se proto nástroji daných výrobců zabýváme v tomto článku.

RogueSheep InEventScript

Řešení InEventScript je pluginem InDesignu a InCopy ve verzích CS či CS2 pro Maca/Windows, který po instalaci dovoluje spouštět skripty (JavaScript, Visual Basic, AppleScript) spojené s různými činnostmi uživatele v prostředí InDesignu. Na panelu pluginu takto uživatel volí z rozvinovacích seznamů akce, kterým přiřadí konkrétní skripty. Přiřazení se takto může vázat k jednotlivým příkazům InDesignu, tak jak jsou k dispozici v odpovídajících nabídkách (seznam Main), ovládacích paletách (seznam Popups – možné je i zpracování akcí z pluginů třetích stran) či při různých úkonech (seznam Actions – týká se např. umístění či editace objektů, zpracování textu apod.), přičemž lze zvolit, zda se skript má provádět před, či po provedení daného příkazu. Dále je možno (seznam Custom) spojit skript se spuštěním či ukončením InDesignu a otevřením nebo uzavřením dokumentu. Ve skriptech takto přiřazených lze použít i metodu eventscriptSupressAction(), s jejíž pomocí lze odvolat akci, která skript v InEventScript spustila (tj. odvolá se třeba tisk, pokud přiřazený skript nalezl při preflightu problémové prvky).

skriptev1f.jpg

Rozhraní InEventScript

Přiřazení skriptů lze kdykoli změnit či zrušit, k dispozici je i funkce, jež dovoluje přiřazený skript okamžitě spustit (vhodné pro testovací účely apod.). Zajímavá je možnost vytvářet přiřazení nejen přes popsaný panel pluginu, ale též přímou editací XML konfiguračního souboru. Plugin lze navíc provozovat bez rozhraní, tj. uživatel nemůže stávající nastavení ovlivnit. Takováto možnost se jeví jako hodně zajímavá zejména při nasazení InEventScriptu na větších pracovištích: pracovní stanice s InDesignem či InCopy (různorodé možnosti pro vydavatelství, například i v kombinaci s redakčními systémy) mají takto instalován plugin bez rozhraní, přiřazení a tvorbu skriptů spravuje administrátor. Takto lze tedy centralizovat např. kontrolu práce nad dokumenty (preflight a dodržování pravidel pro layout či obsah, sledování času stráveného nad dokumenty, vyhodnocení odpovědnosti uživatelů za problémové zásahy atp.).

InEventScript je k dispozici za poměrně příznivých 120 USD, i když je třeba myslet na to, že pro centralizované nasazení na více stanicích daného provozu bude vyžadovat odpovídající počet licencí. A samozřejmě je pak nutné vytvořit odpovídající skripty, i když několik ukázkových výrobce na svých stránkách poskytuje.

Rorohiko Active Page Item

S jiným přístupem k reakcím na události v prostředí InDesignu přichází společnost Rorohiko. Její Active Page Item Developer je totiž více než koncovým uživatelům určen vývojářům. Jedná se o sadu prostředků, rozšiřující základní schopnosti ExtendScriptu (tedy podoby JavaScriptu, určené ke skriptování InDesignu) o různou funkcionalitu. Tou hlavní je "událostní model", ve kterém jednotlivé stránkové objekty InDesignu (PageItem) mohou být vzájemně propojeny s pomocí tzv. sledování. V praxi to znamená možnost určit akce, které se provedou ve chvíli, kdy uživatel bude manipulovat s určitým objektem. Jedná se tudíž o něco podobného jako v případě InEventScript, ovšem s podstatně obecnějšími, tj. širšími možnostmi. Navíc je pak k dispozici třeba i možnost vytvářet kontextové nabídky spojené s určenými stránkovými objekty.

Daň placená za daný přístup je ovšem (minimálně) dvojí: tvořit odpovídající logiku zde vyžaduje podstatně více programovat, navíc je pak třeba k vývoji a provozu skriptů s rozšířenými možnostmi do prostředí InDesignu instalovat odpovídající Active Page Item Developer Toolkit (149 USD) a případně i odpovídající Active Page Item Kernel (cena podle počtu licencí, např. 25 USD při koupi jedné licence, 8.10 USD za licenci při nákupu 1 000 licencí).

skriptev2f.jpg

Active Page Item Developer v akci

Každopádně je ale třeba říci, že technologie Active Page Item nabízí i jiné výhody oproti standardnímu skriptovacímu enginu InDesignu: patří k nim zejména možnost převést skript do podoby pluginu či zašifrované části dokumentu InDesignu. Díky tomu lze tedy ochránit kód skriptu před zcizením (něco takového bude nicméně zřejmě možné i přímo v Adobe Creative Suite 3, soudě dle betaverze ExtendScript Toolkitu 2, dodávané s preview Photoshopu CS3 – ta totiž umožňuje uložení skriptu do binární formy), a navíc lze tím pádem programovat logiku, jež je permanentně přítomna v prostředí InDesignu. Možné je rovněž použití kódu psaného v C++, což dovoluje přidat možnosti jdoucí za skriptovací model.

Možnosti své technologie demonstruje Rorohiko na sadě ukázkových pluginů, které však spíše pokrývají požadavky koncové uživatelské komunity, než aby nějak důsledně demonstrovaly technologii "událostního modelu". K ukázkovým pluginů takto patří třeba ImpositionCompanion (rozšíření stávajících možností vyřazovacího pluginu InBooklet SE), Color2Gray (převod barevné grafiky na odstíny šedi bez modifikace původního obrázku) či History Log (sledování uživatelů, kteří pracovali s daným dokumentem). Ke svému chodu tyto skripty vyžadují odpovídající, zdarma poskytovanou Active Page Item Runtime.

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: