PDF formuláře: JavaScript - 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:



Go verze

PDF formuláře: JavaScript

PDF Softilion

5. června 2002, 00.00 | V tomto článku se dozvíte, jaké možnosti přináší v PDF formulářích využití jazyka
JavaScript. Výklad jsme doplnili užitečnými odkazy a příklady.

Jednou z bezesporu nejdůležitějších schopností současného PDF a jeho aplikací je využití vlastního klonu jazyka JavaScript. Díky němu lze snadno vytvářet kratší i delší programové procedury, dodávající PDF dokumentům na mnohdy netušené interaktivitě a automatizující řadu jinak obtížně realizovatelných činností. Uvedené tvrzení platí dvojnásobně zejména v souvislosti s formulářovými prvky, jejichž fungování se bez JavaScriptu prakticky neobejde. V rámci našeho seriálu o formulářích v PDF jsme proto JavaScript rozhodně nemohli opomenout. Na druhou stranu je jasné, že každý, byť sebestručnější přehled by zde vydal na zvláštní seriál. V našem článku jsme se proto zaměřili především na obecný výklad, doplněný několika ilustrativními příklady a odkazy na podrobnější informační zdroje.

JavaScript a PDF

JavaScript je výkonný, objektově orientovaný jazyk, vyvinutý společností Netscape Communications za účelem rozšíření interaktivity webovských stránek. Původně byl určen zejména pro pilotní produkt společnosti, browser Netscape Navigator, záhy se nicméně široce rozšířil i mimo rámec tohoto produktu. Výhodné vlastnosti a obliba i znalost tohoto jazyka v rámci internetové vývojářské komunity byly hlavními důvody, pro které jej Adobe vybrala jako programovací jazyk určený k "zinteraktivnění" PDF dokumentů zejména v prostředí Adobe Acrobatu a Acrobat Readeru. Je přitom třeba vědět, že Acrobat JavaScript (tak se oficiálně označuje verze JavaScriptu vytvořená Adobe k uvedenému účelu) se podstatně liší od JavaScriptu používaného na Internetu. Společné je pro obě podoby tzv. jádro jazyka (core language) tvořené základními příkazy, rozdíl pak je ve specifických rozšířeních určených pro to či ono prostředí. Takto se můžeme v podstatě setkat se třemi podobami JavaScriptu: Tzv. Client-side (browser based) JavaScript přidává objekty a procedury pro manipulaci s okny prohlížeče a jejich obsahem, server-side JavaScript je rozšířen o souborové a databázové objekty pro databázové dotazy a další typické serverové akce, Acrobat JavaScript pak rozšiřuje jazyk o objekty a metody umožňující snadné zpřístupnění a zpracování obsahu PDF souborů.

V rámci PDF lze JavaScripty používat na třech úrovních: na úrovni dokumentu, pole a zásuvného modulu. Skripty na úrovni dokumentu jsou vloženy do daného dokumentu a přiřazují se akcím s daným dokumentem (otevření, zavření, ukládání či tisk), jeho stránkami (otevření, uzavření), bookmarky a odkazy (aktivace). Na úrovni pole jsou spojeny (a uloženy) s jedním či více formulářovými poli - aktivace těchto skriptů je řízená zejména akcemi myši, ale rovněž dalšími uživatelskými nastaveními (formátování, výpočty apod.). Na úrovni zásuvného modulu jsou pak uloženy mimo PDF dokument ve zvláštním souboru a ovlivňují (při specializovaném pojmenování a umístění - tzv. Folder Level JavaScripts) nejrůznějším způsobem chování Acrobatu či Readeru. Ukládat a spouštět je lze rovněž v rámci batch sekvencí, zajišťujících v prostředí Acrobatu 5 dávkové zpracování.

A jaké jsou vlastně možnosti, které přináší JavaScript do PDF dokumentů? K základním vlastnostem patří možnost automatického spouštění jednoho nebo více příkazů Acrobatu či Readeru bez nutnosti jejich volby z nabídky. S pomocí příslušných JavaScriptů lze rovněž prakticky zcela změnit vzhled prostředí nabídek zmíněných aplikací, a to ať už jejich rozšířením či naopak omezením. Dalším typickým využitím JavaScriptu je formátování zvolených prvků nebo upozorňování na různé systémové události. Od Acrobatu 5 jsou rovněž podporovány přístup k databázím prostřednictvím tzv. Acrobat Database Connectivity (ADBC) a již zmíněné dávkové zpracování.

Nejvíce aplikací nicméně nalézáme v případě formulářů. Typické využití je zde při formátování a změně umístění polí, kontrole vkládání formulářových dat, provádění výpočtů či automatické vyplňování na základě již vložených dat, odesílání a import formulářových dat a mnoho, mnoho dalšího.

Příklady využití JavaScriptu ve formulářích

Podívejme se nyní formou několika krátkých praktických příkladů na možné využití JavaScriptu v rámci PDF. Způsob přiřazení skriptů příslušným polím je zde pochopitelně závislý na nástroji, který k tvorbě formulářů použijeme. V případě neinteraktivních nástrojů je třeba využít odpovídajících pdfmarks, jinak jsou k dispozici příslušné funkce a příkazy Adobe Acrobatu. Vedle dialogů spojených s formulářovými poli bychom v tomto programu neměli opomenout zejména skupinu příkazů skrývajících se v nabídce Nástroje-JavaScript. Zajímavý pro tvorbu formulářů je zde zejména příkaz Konzola, aktivující konzolu umožňující interaktivní odladění zejména kratších skriptů. Příkaz Upravit všechny JavaScripty pak umí z dokumentu vytáhnout a v XML formátu zobrazit všechny zde uložené skripty.

Datum
event.value = util.printd("dd.mm.yyyy", new Date())
Skript přiřazený textovému poli zobrazí v tomto poli aktuální datum.


var d = new Date();
d.setDate(d.getDate() + 14); // O čtrnáct dní později
event.value = util.printd("dd.mm.yyyy", d);

Zobrazí datum o čtrnáct dní později.

Výpočty v polích
var f = this.getField("HodnotaA");
var g = this.getField("HodnotaB");
event.value = f.value - g.value;

Vypočte rozdíl polí HodnotaA a HodnotaB. Uvedený skript je vhodné přiřadit dalšímu textovému poli, které automaticky zobrazí výsledek výpočtu. Namísto odčítání lze samozřejmě použít i jiné základní operace nebo i velmi komplikovaný výpočet.

Přechody v dokumentu
this.pageNum++;
this.pageNum--;
this.pageNum=0;
this.pageNum=this.numPages-1;

Výše uvedené příkazy zajistí přechod o stránku dopředu či dozadu a na začátek či konec dokumentu. Přiřadit je lze například tlačítkům.

Kontrola vstupu
if (event.change != "") {
var valid = new String("ABC0123456789");
if (valid.indexOf(event.change) == -1){
app.beep(0);
event.rc = false;
}
}

Do daného textového pole umožní vkládat pouze písmena A, B, C a čísla od 1 do 9.

Import a export formulářových dat
Příklady jedné z nejdůležitějších aplikací JavaScriptu v PDF formulářích zde neuvádíme - setkáte se s nimi v další části našeho seriálu, kde se tímto tématem zabýváme podrobněji.

Přehled odkazů

Podívejme se nyní na několik zajímavých zdrojů, týkajících se JavaScriptu i jeho využití v PDF formulářích, které dnes lze najít na Internetu. Na desítky dalších se lze dostat ze zde uvedených stránek nebo prostřednictvím prohledávacích služeb typu Google. Důležitým off-line zdrojem informací jsou pro uživatele Acrobatu nejrůznější součásti dodávky tohoto produktu týkající se uvedeného tématu (ukázkové příklady, nápověda programu, specifikace Acrobat JavaScriptu aj.)

Netscape Developer Resources: JavaScript
JavaScript přímo u výrobce.

JavaScript a PDF na Planetpdf
Rozsáhlý zdroj vztahujících se k uvedenému tématu. Především je zde ke stažení dostupná řada příkladů (většinou převzatých z dokumentace Acrobatu), mimo ni zde nalezneme řadu odkazů na další externí zdroje spojené s JavaScriptem.

Forms, JavaScript, and You - by Kas Thomas
Kratší, ale užitečný výklad o JavaScriptu v PDF formulářích.

Acrotex
Informace nepostradatelné zejména pro ty, kdo hodlají pracovat s formuláři a JavaScriptem v TeXu.

Die PostScript- & PDF-Bibel
Nebýt toho, že se jedná o materiál v němčině, mohli bychom obsah této stránky označit za pravděpodobněji nejlepší on-line tutorial, týkající se nasazení JavaScriptu v PDF. Odkazy a příklady lze každopádně využít bez znalosti němčiny.

Závěr

Využití JavaScriptu je svým způsobem nezbytností, které se dřív nebo později nevyhne žádný tvůrce PDF formulářů. I příjemné interaktivní prostředí Acrobatu přitom neodstraňuje nutnost zvládnutí alespoň základních programátorských dovedností. Vhodným postupem proto bude studium existujících JavaScriptů (a jejich následná úprava pro vlastní účely), spojené s podrobnějším pročtením základní i Acrobat verze specifikace jazyka. Věříme také, že vám dále významnou měrou napomohou i informace podané v tomto článku.

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

Tématické zařazení:

 » Rubriky  » Go verze  

 » Rubriky  » PDF - Adobe Acrobat  

 

 

 

 

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

Uživatelské jméno:

Heslo: