Vytváříme pdfmarks: základy syntaxe, nastavení vlastností dokumentu - 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:



PDF - Adobe Acrobat

Vytváříme pdfmarks: základy syntaxe, nastavení vlastností dokumentu

Adobe Acrobat Praxe

23. ledna 2002, 00.00 | Tímto článkem začínáme tutoriál praktického využití pdfmarks při tvorbě PDF dokumentů. Dnes se zaměříme především na obecný úvod včetně přiblížení specifik práce s češtinou.

Článek o možnostech a použití pdfmarks, tedy instrukcí rozšiřujících postscriptový kód o specifické příkazy PDF, vzbudil u čtenářů Grafiky poměrně velký zájem. Z uvedeného důvodu jsme se formou několikadílného tutorialu pokusili přiblížit využití alespoň těch nejzajímavějších možností, které pdfmarks nabízejí. Dnes začneme s obecným popisem syntaxe pdfmarks, doplněným ukázkami nastavení některých vlastností PDF dokumentu.

K metodě práce

Dále uvedené příklady jsme odzkoušeli v "PDF-workflow" tvořeném Microsoft Wordem 97, postscriptovým tiskovým ovladačem společnosti Adobe a Ghostscriptem, doplněným aplikací GSview. (Návod ke zprovoznění distillace uvedeným způsobem naleznete zde, postup ke vkládání pdfmarks ve Wordu pak zde.) Dále uvedené příklady lze nicméně aplikovat i při jiných způsobech tvorby PDF, jako je například kombinace TeX-dvips-Ghostscript.

Základními informačními zdroji nám byly materiály pdfmarks Primer Thomase Merze a specifikace pdfmarks doplněná o specifikaci PDF (1.3, 1.4).

Základy syntaxe

Zápis jednotlivých typů pdfmarks je skutečně velmi různorodý. Obecná syntaxe je nicméně velmi jednoduchá:
[
...argumenty...
/TYP pdfmark
kde argumenty mají obvykle podobu dvojice klíč-hodnota, /TYP je jméno, určující druh pdfmark.

Důležitým údajem používaným často v pdfmarks je text. Ten lze zadávat ve dvou kódováních: v PDFDocEncoding a Unicode. Syntaxe pro první způsob je (textový_řetězec), pro druhý pak <FEFFtextový_řetězec_v_hexadecimální_podobě>. První uvedené kódování neumožňuje zápis některých českých znaků, v druhém případě lze nicméně použít pouze hexadecimálního zápisu, který je normálnímu smrtelníkovi poněkud nesrozumitelný. Ani jedna z metod tedy není pro české texty zrovna ideální, nicméně i ta druhá je zvláště u unifikovaných či kratších textů použitelná. (Řešením by mohlo být makro Wordu zajišťující převod mezi hexadecimální a textovou reprezentací. Na Internetu se nám zatím ovšem takovýto prostředek nalézt nepodařilo. Přehled tabulek Unicode je každopádně dostupný zde.)

Vedle textu zaslouží pozornost i údaje o čase a datu (typu datum poslední úpravy apod.). Ty se zadávají ve tvaru (D:YYYYMMDDHHmmSSOHH'mm'), kde D: je volitelný (nicméně v podstatě povinný) prefix, YYYY znamená rok, MM měsíc, DD den, HH hodina, mm minuta a SS sekunda. Zbytek informací pak určuje časový posun (O je + či -, HH' absolutní hodnota časového posuvu v hodinách, mm' absolutní hodnota časového posuvu v minutách) a není-li třeba jej specifikovat, lze jej vynechat.

Zabezpečení tiskového výstupu

Náš přehled musíme začít malým upozorněním. Chce-li uživatel použít vygenerovaný postscriptový soubor i k normálnímu tisku, měl by do výstupu vložit "ochranné" instrukce zamezující nekorektní interpretaci pdfmarks na tiskárně. Doporučena je následující sekvence:
/pdfmark where {pop} {userdict /pdfmark /cleartomark load put} ifelse
Má-li se navíc předejít i inkompatibilitám ve starších interpretech PostScriptu (problémy s interpretací operátoru << a >>), měl by být tento kód rozšířen takto:
/pdfmark where {pop} {userdict /pdfmark /cleartomark load put} ifelse
/languagelevel where {pop languagelevel}{1} ifelse
2 lt {
userdict (<<) cvn ([) cvn load put
userdict (>>) cvn (]) cvn load put
} if

Kód by měl být vložen buď před každou vkládanou pdfmark (poněkud nešikovné) nebo do úvodu postscriptového souboru. Prakticky to tedy znamená například vložit co nejvíce na začátek nativního dokumentu (tedy dokumentu, z kterého bude realizován výstup) tiskové pole (Word) či jiný "nosič" (makro \special TeXu apod.) obsahující uvedený kód.

Nastavení metadat dokumentů (DOCINFO)

Jedním z důležitých parametrů každého PDF dokumentu jsou informace uloženy v jeho informačním slovníku (Info Dictionary). Ty obsahují nejrůznější metadata určující například tvůrce dokumentu, jeho titul, klíčová slova ad. K nastavení uvedených parametrů slouží pdfmark typu /DOCINFO. Její syntaxe je následující:
[/Author textový_řetězec
/CreationDate časový_údaj
/Creator textový_řetězec
/Producer textový_řetězec
/Title textový_řetězec
/Subject textový_řetězec
/Keywords textový_řetězec
/ModDate časový_údaj
/DOCINFO pdfmark

Význam většiny údajů je jistě zřejmý z jejich pojmenování, žádný z nich nemusí být použit povinně - je tedy možno "vyplnit" jen určité údaje. Mimo uvedených polí lze i definovat libovolné vlastní - ty sice nebudou zobrazeny v Acrobatu, ale lze je využít při indexování dokumentů. Instrukce /DOCINFO by mělo být vloženo hned na začátek nativního dokumentu.

Příklad:
[/Title (Pokus) /Subject (Tvorba PDF)
/Author <FEFF00520069006300680061007200640020004B00720065006A010D00ED>
/Keywords (pdfmarks tutorial) /Creator (Hand-made)
/CreationDate (D:200102271258) /ModDate (D:200102271358)
/DOCINFO pdfmark

Do dokumentu vloží údaje jejichž obsah je zobrazen na následujícím obrázku. Povšimněte si hexadecimálního zápisu textu u pole Author a způsobu nastavení data vytvoření a modifikace.

Zobrazení dokumentových informací v Acrobatu (příkazem File-Document Properties-Summary).

Nastavení parametrů pro otevření (DOCVIEW)

V PDF dokumentu může být obsažena řada informací určujících jeho chování poté, co je otevřen v prostředí Acrobatu či Readeru. K nastavení uvedené vlastnosti slouží pdfmark DOCVIEW, mající následující formát:
[/PageMode name
Další_akce
/DOCVIEW pdfmark

/PageMode zde stanoví, jakým způsobem bude dokument po otevření zobrazen. Možné přepínače jsou /UseNone (zobrazí se pouze dokument), /UseOutline (zobrazí se dokument a panel s bookmarky), /UseThumbs (zobrazí se dokument a miniatury) a /FullScreen (dokument se otevře přes celou obrazovku). Není-li /PageMode specifikován, užije se /UseNone.
Dále použitelných akcí je u DOCVIEW celá řada. V základě je lze rozdělit na ty, které se odvolávají na určitou destinaci (stránka nebo pojmenovaná pozice v dokumentu) a dále pak na ty, které spouštějí určitou akci (mj. přechod do jiného dokumentu, spuštění určité aplikace, přehrání zvuku či videa apod.). Podrobněji se jim budeme věnovat v dalším díle našeho tutorialu. Zmiňme zde nicméně (a v následujícím příkladu ukažme) alespoň použití klíčů /Page (určuje, na které stránce se má dokument otevřít - v tomto kontextu se využívá číselného určení) a /View (určuje mód zobrazení - například hodnota [/FIT] zarovná stránku do okna, hodnota [/XYZ 0 0 0.8] otevře stránku při zvětšení 80 % apod.).

Příklad:
[/PageMode /FullScreen /View [/XYZ 0 0 0.75] /Page 3 /DOCVIEW pdfmark
V Acrobatu (Readeru) se dokument otevře na straně 3 v módu FullScreen při zvětšení 75 %.

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

Tématické zařazení:

 » Rubriky  » Go verze  

 » Rubriky  » Sazba  

 » Rubriky  » PDF - Adobe Acrobat  

 » Rubriky  » Design  

 

 

 

 

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

Uživatelské jméno:

Heslo: