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:
-
30. září 2024
-
4. října 2024
-
14. listopadu 2024
-
11. prosince 2024
PDF - Adobe Acrobat
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):
- PDF formuláře: obecný úvod
- PDF formuláře: Popis formulářových prvků
- PDF formuláře: Návrh a tvorba
- Formuláře v PDF: Prostředky pro tvorbu formulářů v Adobe Acrobatu
- PDF formuláře: JavaScript
- PDF formuláře: Vyplňování, odesílání a zpracovávání formulářových dat
-
14. května 2014
Jak vkládat snímky do galerií a soutěží? Stručný obrazový průvodce
-
23. dubna 2014
Konica Minolta přenesla výhody velkých zařízení do kompaktních modelů
-
12. června 2012
-
9. dubna 2014
-
5. ledna 2017
-
6. září 2004
OKI snižuje ceny barevných laserových tiskáren C3100 a C5200n
-
13. května 2004
-
19. ledna 2004
QuarkXPress Passport 6: předvedení nové verze na konferenci Apple Forum 27.1.2004
-
6. února 2001
-
30. listopadu 2014
Nový fotoaparát α7 II: první plnoformát s pětiosou optickou stabilizací obrazu na světě
-
14. října 2024
-
22. října 2024
-
10. prosince 2024