Automatizujte Adobe Acrobat (a Reader) 8 pomocí JavaScriptu (2): Konzola - 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

 

Odkud pochází fotografka Anne Erhard?

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



Software

Automatizujte Adobe Acrobat (a Reader) 8 pomocí JavaScriptu (2): Konzola

26. června 2007, 00.00 | V tomto díle našeho seznámení s možnostmi řízení Adobe Acrobatu či Readeru pomocí JavaScriptu se naučíme pracovat s konzolou, zásadním nástrojem, určeným k tvorbě a vývoji skriptů v prostředí Acrobatu Professional 8. V následujícím výkladu budeme přitom předpokládat, že čtenář ovládá základy práce s obecným JavaScriptem.

V tomto díle našeho seznámení s možnostmi řízení Adobe Acrobatu či Readeru pomocí JavaScriptu se naučíme pracovat s konzolou, zásadním nástrojem určeným k tvorbě a vývoji skriptů v prostředí Acrobatu Professional 8. V následujícím výkladu budeme přitom předpokládat, že čtenář ovládá základy práce s obecným JavaScriptem.

Co je konzola?

Jak již název naznačuje, jedná se v případě konzoly o programátorský prostředek, dovolující spustit určitý kód, přičemž odpovídající odezva (která samozřejmě závisí na instrukcích obsažených ve skriptu) proběhne jak v okně konzoly, tak třeba i v prostředí Acrobatu a případně i na jiných místech (např. v souborovém systému, má-li skript za úkol provést zde nějakou operaci). Pomocí konzoly lze vyzkoušet práci s jednotlivými objekty kontrolovatelnými pomocí JavaScriptu – z daného pohledu se jedná o základní výukový nástroj. Hlavním posláním konzoly je nicméně spíše vytváření a ladění skriptů, které pak lze ve finální podobě spouštět i z jiného umístění, například je přidat do nabídky či dávkové sekvence Acrobatu či přiřadit formulářovému poli. Pomocí konzoly je rovněž možno (známe-li odpovídající příkazy) ihned v prostředí Acrobatu realizovat úlohy, které by se v uživatelském prostředí prováděly jen zdlouhavě či obtížně. Hovoříme zde třeba o kontrole chování uživatelského rozhraní, hromadném zpracování či analýzách dokumentů nebo stavu Acrobatu.

Konzola je součástí tzv. debuggeru, nástroje sloužícího k ladění skriptů – tj. hledání jejich problémových míst, optimalizaci apod. Debugger je pokročilejší programátorský nástroj a jeho použití se vyplatí až při práci se složitějšími skripty. Pro ladění jednoduchých skriptů postačí plně v případě konzoly použití instrukce console.println() vypisující stav požadovaných proměnných či jiné údaje (viz další výklad).

Aktivace konzoly v předvolbách

K tomu, aby bylo možno s JavaScriptem a konzolou v prostředí Acrobatu korektně pracovat, je třeba zapnout odpovídající předvolby. Ty se nacházejí na panelu Předvoleb (viz příkaz Úpravy-Předvolby-Všeobecné, nebo klávesovou zkratku Ctrl+K) JavaScript, kde je zapotřebí zaškrtnout volby Povolit JavaScript Acrobatu a Zapnout interaktivní konzolu. Na daném panelu lze konfigurovat i chování zabudovaného editoru JavaScriptu a také případně přiřadit externí editor skriptů. Pro použití některých funkcí debuggeru je pak ještě vhodné zaškrtnout a dále nakonfigurovat volbu Zapnout debugger JavaScriptu po restartu Acrobatu, tuto nicméně v danou chvíli potřebovat nebudeme.

aa8script2-2f.jpg

Nastavení konzoly

Spuštění konzoly

Konzolu, resp. debugger, jehož je konzola součástí, spustíme v Acrobatu buďto odpovídajícím příkazem (Další volby-Zpracování dokumentu-Debugger JavaScriptu), nebo klávesovou zkratkou (Ctrl+J), možné je také spuštění pomocí skriptu (například přiřazeného formulářovému poli; instrukce console.show()), tato možnost ale není v případě vytváření skriptů příliš používaná. Pokud je vše nastaveno správně, zobrazí se okno debuggeru. Nyní nastavíme volbu Zobrazit na Konzola (volby Skript a Skript a konzola se vážou k situaci, kdy v horním okně Skripty máme k dispozici skripty přiřazené dokumentu a některý z nich chceme upravovat), tím se ve spodní části okna debuggeru zobrazí okno konzoly. V tom se po prvotním spuštění zobrazuje několik hlášení o modulech Acrobatu načtených pro další práci, kliknutím na tlačítko koše ve spodní části okna konzoly tento text odstraníme, není obvykle k ničemu zapotřebí. (Daným způsobem lze samozřejmě okno vyčistit i v dalších případech.)

aa8script2-1f.jpg

Počáteční stav konzoly

Ukázky použití

Okno konzoly se chová jako okno jednoduchého textového editoru, ve kterém můžeme složitější kód i zarovnávat pomocí tabulátorů a do kterého lze kód přenést z externího editoru – nebo třeba též z okna webového prohlížeče, ve kterém čtete tento tutoriál – přes schránku. Poté, co do okna konzoly vepíšeme určitý kód, můžeme jej provést nejsnáze tím způsobem, že jej označíme a poté stiskneme klávesovou kombinaci Ctrl+Enter nebo klávesu Ctrl na numerické klávesnici. Pokud chceme nechat interpretovat pouze jeden řádek, stačí nám stisknout danou klávesu či klávesovou kombinaci poté, co jsme kurzor umístili do požadovaného řádku. Ve všech případech se na konzole vypíše jako výsledek hodnota celého vyhodnoceného JavaScript kódu, což může být někdy matoucí, neboť i když se často provede v rámci skriptu třeba řada operací, může mít celkové vyhodnocení hodnotu undefined.

Příkladem za všechno může být například následující – dlužno říci že čistě ilustrativní – skript:

var x=10;
var y=5;
var z=x+y;

Jeho posláním je přiřadit konkrétní číselné hodnoty proměnným x a y a následně proměnné z přiřadit hodnotu součtu x a y. Po provedení (tj. označení a stisknutí klávesové kombinace Ctrl+Enter) se nám coby výsledek objeví zmíněná esoterní hodnota undefined, daná tím, že výsledkem série přiřazení není konkrétní objekt.

aa8script2-3f.jpg

Pokud bychom místo toho chtěli, aby se nám vypsala hodnota proměnné z, můžeme ve skriptu použít pro jednoduché ladící účely zcela zásadní příkaz console.println().

Skript

var x=10;
var y=5;
var z=x+y;
console.println(z);

takto vypíše v okně konzoly hodnotu proměnné z a poté opět undefined coby výsledek vracený celým skriptem.

aa8script2-4f.jpg

Metodu console.println() pak lze použít (při nasazení prostředků obecného JavaScriptu pro práci s textem) k zápisu různých hodnot proměnných apod., tímto má tedy uživatel k dispozici jednoduchý ladící nástroj. Viz například následující modifikaci našeho skriptu:

var x=10;
var y=5;
var z=x+y;
console.println("Hodnota proměnné x je "+x+
"\nhodnota proměnné y je "+y+
"\nhodnota proměnné z je "+z);

aa8script2-5f.jpg

Více nežli hrátky s obecným JavaScriptem ovšem uživatele zajímá ladění skriptů řídících činnost Acrobatu. Potřebné příkazy se naučíme v příštích dílech tohoto seriálu, na tomto místě si ukažme jen jednodušší ilustrační příklady.

Nový dokument v prostředí Acrobatu vytvoříme například takto:

app.newDoc();

Nový PDF dokument obsahující obligátní text "Hello World" vytvoříme pomocí skriptu třeba takto:

var rep = new Report();
rep.size = 1.2;
rep.color = color.blue;
rep.writeText("Hello World!");
rep.open("My Report");

K uzavření aktuálního dokumentu (kterým například může být námi vytvořený) pak lze použít následující příkaz:

this.closeDoc();

s tím, že Acrobat se nás dotáže, zda dokument chceme uložit.

Uzavření všech dokumentů aktuálně obsažených v Acrobatu bez toho, že bychom je ukládali (takže ve skriptech pozor na použití nastavení bNoSave: true), dosáhneme z konzoly takto:

var d = app.activeDocs;
for( var i in d )
{d[i].closeDoc({bNoSave: true});}

Z konzoly si lze zajistit rovněž výpis různých informací, které se týkají nastavení Acrobatu, systému apod. Tak si lze například vypsat seznam všech tiskáren instalovaných v systému:

var l = app.printerNames.length
for ( var i = 0; i < l; i++)
console.println("(" + (i+1) + ") " + app.printerNames[i]);

Takto můžeme generovat PDF dokument obsahující příslušný výpis:

var l = app.printerNames.length
var vypis=""
for ( var i = 0; i < l; i++)
{vypis=vypis+"(" + (i+1) + ") " + app.printerNames[i]+"\n";}
var rep = new Report();
rep.size = 1.2;
rep.color = color.blue;
rep.writeText(vypis);
rep.open("Instalované tiskárny");

aa8script2-6f.jpg

Závěrem aneb k použití vytvořených JavaScriptů

Skripty vytvářené v rámci konzoly mají pochopitelně jen přechodný charakter. Nicméně v případě, že je chceme používat permanentně, nabízí se nám řada možnosti. Konkrétně je lze například nechat spustit v rámci dávkových sekvencí, spojit s otevřením dokumentu či jeho určité stránky, přiřadit je nabídce Acrobatu nebo určitému formulářovému prvku apod. Blíže si o tom povíme v příštím díle tohoto seriálu.

Poznámka: V tomto i v následujících dílech tohoto seriálu předpokládáme u čtenáře zvládnutí základů obecného JavaScriptu. K tomu lze použít i odpovídající díly našeho seriálu o skriptování InDesignu (viz zejména zde a zde), nicméně je třeba říci, že použití JavaScriptu pro Acrobat či Reader má svá specifika (která snad osvětlí náš další výklad). Pro podrobnější studium doporučujeme referenční příručku obecného JavaScriptu.

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

Tématické zařazení:

 » Rubriky  » VSE  

 » Rubriky  » Go verze  

 » Rubriky  » Webdesign  

 » Rubriky  » Polygrafie  

 » Rubriky  » PDF - Adobe Acrobat  

 » Rubriky  » Software  

 

 

 

Poptávka bazar

 

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

Uživatelské jméno:

Heslo: