Generování PDF výstupů v publikačním systému Mediawiki: Rozdiel medzi revíziami
(Vytvorená stránka „{| cellpadding=5 cellspacing=0 width=100% |- | <div style="font-size:18px;text-align:center">Evropský polytechnický institut, s.r.o.<br/>Kunovice, ČR</div> |- | <div ...“) |
|||
Riadok 24: | Riadok 24: | ||
{{abstrakt | {{abstrakt | ||
− | | | + | |Práce se zabývá úpravou výstupů v PDF formátu, kdy tyto výstupy jsou upravovány |
− | + | pomocí zdrojového kódu vykreslovacího serveru. Tato práce dále popisuje instalaci | |
− | + | MediaWiki a konfiguraci rozšiřujících modulů potřebných pro generování výstupů v PDF | |
+ | formátu z článků MediaWiki. V teoretické části je podrobně popsán PDF formát a Wiki | ||
+ | servery, mezi které patří i MediaWiki, která slouţí právě ke vkládání různých článků, | ||
+ | z kterých následně probíhá výstup. | ||
+ | Praktická část obsahuje podrobný postup instalace Linuxu, Apache2, MediaWiki | ||
+ | a rozšiřujících knihoven. V dalších krocích tato práce popisuje nastavení web serveru | ||
+ | a MySQL databáze, kterou vyţaduje MediaWiki ke svému fungování. V závěru se práce | ||
+ | věnuje úpravě zdrojového kódu vykreslovacího serveru a realizací výstupů, kdy z článků, | ||
+ | které se nachází v MediaWiki se pomocí editoru knih vytvoří Wikikniha, která bude | ||
+ | následně vykreslena. Poslední dvě kapitoly se věnují e-learningové pomůcce pro | ||
+ | internetové technologie a doporučení pro další pokračování. | ||
|The work deals with the customization of outputs in PDF format, when these outputs are | |The work deals with the customization of outputs in PDF format, when these outputs are | ||
modified using the source code rendering server. This thesis also describes how to install | modified using the source code rendering server. This thesis also describes how to install |
Aktuálna revízia z 19:36, 17. február 2013
Evropský polytechnický institut, s.r.o.
Kunovice, ČR |
Generování PDF výstupů v publikačním systému Mediawiki
Bakalárska práca |
Autor: | Marek Janovský |
Pedagogický vedúci: | Ing. Jindřich Petrucha, PhD |
Študijný odbor: | Ekonomická informatika |
Akademický rok | 2012/2013 |
Abstrakt
Práce se zabývá úpravou výstupů v PDF formátu, kdy tyto výstupy jsou upravovány pomocí zdrojového kódu vykreslovacího serveru. Tato práce dále popisuje instalaci MediaWiki a konfiguraci rozšiřujících modulů potřebných pro generování výstupů v PDF formátu z článků MediaWiki. V teoretické části je podrobně popsán PDF formát a Wiki servery, mezi které patří i MediaWiki, která slouţí právě ke vkládání různých článků, z kterých následně probíhá výstup. Praktická část obsahuje podrobný postup instalace Linuxu, Apache2, MediaWiki a rozšiřujících knihoven. V dalších krocích tato práce popisuje nastavení web serveru a MySQL databáze, kterou vyţaduje MediaWiki ke svému fungování. V závěru se práce věnuje úpravě zdrojového kódu vykreslovacího serveru a realizací výstupů, kdy z článků, které se nachází v MediaWiki se pomocí editoru knih vytvoří Wikikniha, která bude následně vykreslena. Poslední dvě kapitoly se věnují e-learningové pomůcce pro internetové technologie a doporučení pro další pokračování. |
Abstract
The work deals with the customization of outputs in PDF format, when these outputs are modified using the source code rendering server. This thesis also describes how to install MediaWiki and configuration of extension modules required to generate outputs in PDF format from MediaWiki articles. In theoretical part is described in detail the PDF format and Wiki servers, which include the MediaWiki, which is precisely the insertion of various articles, which is then output. The practical part contains a detailed procedure for installing Linux, Apache2, MediaWiki and extension libraries. In subsequent steps, this thesis describes how to set the web server and MySQL database, which is required for the functioning of MediaWiki. In conclusion, the thesis deals with source code editing of rendering server and realization outputs of the articles which are located in MediaWiki, where using the editor books created Wikibooks, which will be drawn. The last two chapters are devoted to e-learning utility for Internet technologies and recommendations for continuation. |
Obsah
Úvod
První Wiki systém vznikl již v roce 1995, ale jeho velký nárůst na popularitě nastal až zhruba od roku 2001, kdy vznikla Wikipedie, která je dnes největší existující encyklopedie na světě. V dnešní době wiki systémy, ale našly své uplatnění i v řadě jiných oblastí. Pro tyto systémy jsou vyvíjeny celé řady wiki prostředí. Tato prostředí jsou navržena pro různé platformy a pro různé účely. Mezi tyto wiki systémy patří právě i velice populární MediaWiki, pomocí které je tahle práce řešena.
V poslední době jsou stále více wiki systémy využívány pro interní potřeby firem a organizací, kde v mnoha případech nahradily statické intranety. Protože v omezeném počtu uživatelů, lze mnohem lépe kontrolovat úpravy stránek. Do určité míry je i snížena šance na vandalismus či zneužití spammery, jenž představují velký problém pro rozvoj a větší rozšíření wiki systémů, protože wiki software je založen na tom, že umožňuje vytváření stránek, na nichž může uživatel jednoduše měnit a upravovat obsah stránek. Tato práce bude využívat současné verze programového vybavení, které je potřebné pro splnění úkolů v této bakalářské práci.
Hlavní téma této bakalářské práce, je generování PDF výstupů z publikačního systému MediaWiki, a to za pomoci nainstalovaného a zkonfigurovaného PDF serveru, který je vyžadován pro vlastní úpravu formátování našich generovaných PDF knih, kdy jejich úprava probíhá pomocí změn ve zdrojovém kódu PDF serveru.
První část bakalářské práce se bude věnovat, portable dokument formátu, který vyvinula společnost Adobe Systems Incorporated. V této části budou popsány vlastnosti formátu PDF a nástroje pro jeho správu. Bude zde také charakterizována vnitřní struktura PDF formátu a výčet dalšího softwaru určeného přímo pro práci s tímto formátem. V dalších částech kapitoly budou popsány výhody a nevýhody tohoto formátu a popis jednotlivých částí, ze kterých se dokument skládá a popisuje jeho možnosti generování, čímž se snaží přiblížit problematiku formátu PDF při jeho úpravě. Celá tato kapitola, by měla čtenáři poskytnout dostatečné množství informací o tomto formátu.
Další část práce bude podrobně popisovat fungování Wiki systémů a jejich současné rozšíření na internetu. Jejich charakteristické vlastnosti a ukázku tvorby i úpravy článků podle různých syntaxí. V další části kapitoly budou popsány rozšíření Extension:Collection a PDF:Writer, což jsou rozšiřující knihovny pro publikační systém MediaWiki, které slouží pro generování Wikiknih. U těchto rozšiřujících knihoven se práce bude zaměřovat na to, co všechno tyto rozšíření do systému MediaWiki přidávají a v jakých formátech budou moci být Wikiknihy generovány. V této kapitole bude i popis nástrojů třetích stran, pomocí kterých mohou být také knihy vytvořeny.
V praktické části práce bude uvedeno potřebné programové vybavení k řešení úkolů bakalářské práce a budou zde také uvedeny postupy jejich instalací a konfigurací. Dále budou v této části práce řešeny problémy, které nastanou při plnění cílů této práce, například při instalaci web serveru, GNU/Linuxu, MediaWiki a vlastního PDF serveru. Tato řešení by mohla být pro čtenáře užitečná.
Cílem této bakalářské práce bude dosáhnout kompletně fungujícího publikačního systému MediaWiki na vlastním web serveru s nainstalovanými rozšiřujícími knihovnami Extension:Collection a PDF:Writer sloužících k vytváření Wikiknih a následná konfigurace vlastního PDF serveru pro potřeby generování Wikiknih ve formátu PDF. Dalším důležitým krokem je rozbor kódu, který slouží k úpravě formátování výstupů. Pomocí tohoto kódu dokážeme kompletně upravovat celý generovaný PDF dokument. Od menších úprav až po ty větší a složitější. To je potřeba hlavně u PDF knih, které mají sloužit nějaké organizaci, která vyžaduje vždy stejnou podobu PDF dokumentu. Tuto podobu dokumentu si může organizace upravit podle svých parametrů. Ať už jde o přidání loga na titulní stranu nebo o změnu písma či změnu okrajů atd. Zdrojový kód PDF serveru bude v práci upraven skrze konfigurační soubor customconfig.py, ve kterém budou provedeny všechny změny sloužící k úpravě generovaných Wikiknih.
Tato práce bude také obsahovat podrobný popis jak zdrojových kódu, které upravují generování Wikiknih, tak i popis změn, ke kterým v nich dojde. Mezi tyto úpravy bude patřit přidání loga na titulní stranu, změna zarovnání názvu a podnázvu Wikiknihy, přidání patičky titulní straně a následně i ostatním stranám a změna písma.
Poslední kapitola bude zaměřena na doporučení pro další pokračování. Toto doporučení by mohli budoucí zájemci v tématu o publikačním systému MediaWiki vypracovat a zkusit tento systém implementovat do školního systému. Tato kapitola obsahuje i osnovu a literaturu, kterou by bylo dobré zahrnout v budoucí práci.
Teoretický úvod pro Portable Document Format
V dnešní době existuje velké množství formátů od různých společností, kdy tyto formáty slouží právě k vytváření dokumentů. Ale PDF mezi nimi exceluje, a to díky jeho skvělým vlastnostem. Tento formát si totiž uchovává formátování nezávisle na tom, na jaké platformě si dokument zrovna prohlížíme nebo v jakém programu byl dokument předtím vytvořen, proto se tento formát stal jedním z nejpoužívanějších a nejuniverzálnějších nástrojů ke sdílení dokumentů mezi uživateli. Za tímto souborovým formátem stojí společnost Adobe Systems Incorporated.
Portable Document Format
V této části je popsáno, k čemu tento formát slouží. Jeho výhody a nevýhody, nástroje pro úpravu a správu. Nejčastější problémy, které mohou nastat při používání tohoto formátu, případně problematika souborů a jejich možnosti generování.
Vlastnosti formátu PDF a nástroje pro správu
Tento univerzální souborový formát nazvaný PDF je hodně rozšířený kvůli tomu, že jde o otevřený formát (open format), tudíž ho může jakýkoliv uživatel používat a modifikovat navíc slouží pro výměnu dokumentů v internetovém prostředí. [12]
Základním využitím tohoto formátu je tudíž věrný přenos dokumentu mezi uživateli, počítači a platformami, a to všechno bez toho, aby koncový uživatel měl na svém počítači aplikaci, ve které byl původně dokument vytvořen. Uživatel tento dokument může libovolně tisknout, prohlížet. Stačí k tomu pouze PDF prohlížeč jako je například Adobe Reader, který je už v dnešní době majoritně zastoupen u většiny uživatelů. Uživatel proto nemusí investovat do žádných speciálních programů. Samozřejmě, protože je PDF vytvořen na stejném principu jako je jazyk PostScript a spojují se v něm navíc hypertextové možnosti, tak dokáže zobrazovat i tu nejsložitější typografii a grafiku elektronického publikování.
Druhý způsob, pro který je PDF využíván, bývá k takzvaně "kontejneru" uschování textu pro přenos textového obsahu. Avšak kvůli ne moc dobře dořešené podpoře znakových sad, spíše tedy těch národních vyvíjených primárně pro angličtinu, bývá totiž také problém s ne
právě vhodně lokalizovanými českými písmy, a to vede k tomu, že bude pravděpodobně mnohem složitější extrahovat češtinu z dokumentu. Proto, považovat tento formát za primárně zaměřený pro přenos textu mezi například pracovišti rozhodně nejde, i když existují postupy, jak tento problém řešit. Hodně kladná vlastnost je jednocestný průchod. To znamená, že při generování je nutný jen jeden průchod souborem a už se nevrací do již vygenerovaných částí. Využití této funkce se ukazuje u rozsáhlých dokumentů nebo na počítačích s malou operační pamětí, kdy to ulehčí zatížení. [16]
Další vlastnosti formátu:
- Jednoduché zabránění vykrádání textu z dokumentu.
- Kvůli zachování definovaného vzhledu dokumentu se v něm často vytváří vyhlášky zákonů, norem, podnikových směrnic, obchodních spisů apod.
- V PDF se dají dobře vytvářet formuláře, jejichž výhodou je off-line vyplnění. To mělo využití třeba u sčítání obyvatelstva 2011.
- K dokumentu lze připojit elektronický podpis. Potom však musí dojít k autorizaci dokumentu.
- Vzhledem k malé velikosti vytvořených dokumentů se formát hodí pro publikování a stahování dokumentů z internetu.
- Grafická studia hojně využívají a akceptují tento formát.
- Snadná a rozšířená distribuce rozsáhlých manuálů, firemních a jiných tiskovin v elektronické podobě s animacemi, obrázky atd. [20]
U novějších verzí jdou také možnosti multimediální a interaktivní. Podpora moderních technologií jako například správa barev založená na ICC, průhlednost.
Společnost Adobe Systems pro práci s tímto formátem vyvinula množství softwarů
- Acrobat – Standardní software, který umožňuje spolehlivě vytvářet, upravovat a sdílet základní soubory PDF. Převod tištěných dokumentů do PDF s možností vyhledávání souborů nebo možností vyplnění formuláře. Sloučení více typů souborů do jednoho PDF souboru.
- Distiller – slouží jako překladač jazyka PostScript a převádí ho do datového formátu PDF.
- Reader – zdarma dostupný světový standard pro spolehlivé zobrazování dokumentů ve formátu PDF. Dokáže tisk a přidávat komentáře. Také jde o jediný PDF prohlížeč, který umožňuje otevřít všechny druhy obsahu. Jako jsou formuláře nebo multimédia a pracovat s nimi.
- Capture – dokáže snadno převést papírový dokument do elektronické podoby jako formát PDF, který lze dále snadno prohlížet či prohledávat. Je to nejvhodnější
formát pro formuláře, manuály a knihy. Pro převedení využívá efektivní technologii vyčištění dokumentu a pro převod do textového formátu využívá (OCR-optické rozpoznávání znaků).
- Exchange – program vytvořený pro umožnění vytvářet, zobrazovat a upravovat PDF soubory z jiných druhů formátů.
- Search – vytváří multimediální CD, které využívají k uložení dat formát PDF. [14]
Výhody a nevýhody formátu PDF
Výhody formátu
Tento formát vyzdvihují jeho nesčetné výhody, mezi které určitě patří to, že může obsahovat jak text, tak i grafické objekty. Navíc dokáže uložený dokument zobrazit na všech zařízeních zcela totožně. Neřeší strukturu dokumentu. K dalším výhodám můžeme zařadit i tzv. kompresi, kdy můžeme různé části dokumentu uložit do jednoho souboru a tím zmenšíme jeho celkovou velikost.
Další výhody formátu PDF:
- Vysoká kvalita tisku - po vytištění vypadá dokument vždy stejně.
- Možnost nastavení zabezpečení - různé úrovně zamčení, proti čtení, úpravě atd.
- Open standard - představuje otevřený standard s označením ISO 32000. [41] Norma ISO 32000 spravovaná Mezinárodní organizací pro standardizaci ISO se nadále vyvíjí s cílem zajistit ochranu integrity a dlouhodobé platnosti formátu PDF jako otevřeného standardu pro více než miliardu PDF souborů, které v současné době existují.
- Nezávislost na platformách - soubory lze zobrazit a vytisknout prakticky na jakékoli platformě, od Windows®, Mac OS tak po mobilní platformu AndroidTM.
- Rozšiřitelnost - dodavatelé na celém světě nabízí řešení založená na formátu PDF, která zahrnují nástroje pro tvorbu, moduly plug-in, poradenství, školení a podporu.
- Důvěryhodnost a spolehlivost - organizace z celého světa spoléhají na formát PDF. Důkazem je, že na internetu je spousta dokumentů v tomto formátu.
- Naprostá úplnost - PDF soubory vypadají jako originální dokumenty a uchovávají zdrojové informace ze souboru – text, kresby, multimediální obsah, video, 3D, mapy, grafiku v celém spektru barev, fotografie a dokonce i obchodní logiku – bez ohledu na aplikace použité k jejich vytvoření, a to dokonce i když byly zkompilovány z několika formátů do jediného Portfolia PDF.
- Vyšší bezpečnost - Dokumenty vytvořené pomocí softwaru Acrobat je možné digitálně podepisovat či chránit heslem.
- Rychlé vyhledávání - indexování a rychlé vyhledávání ve slovních spojeních ve velkém množství dokumentů pomocí funkce nazvané tabulka křížových odkazů. Snadnější navigace v dokumentu.
- Přístupnost - Dokumenty ve formátu PDF pracují s technologií pro usnadnění práce, která zdravotně postiženým uživatelům pomáhá získat snadný přístup
k informacím. [20]
Nevýhody formátu
Z PDF dokumentů se text či obrázky k dalšímu zpracování dostávají špatně. Není určen pro následnou práci s obsaženým textem, například pokud není do dokumentu vloženo některé písmo, jež chybí na počítači příjemce, jsou použity složité pre-pressové charakteristiky aj. Tento problém je nicméně dán nepozorností či neschopností tvůrce dokumentu či použité aplikace, nikoli formátem samotným. Vyladit parametry dokumentu tak, aby byl dokument skutečně bezproblémově zpracovatelný na zařízeních předtiskové přípravy, je pak velice složité. Disciplíny jako preflight a formáty jako PDF/X nicméně dovolují stále snadněji uvedený problém řešit, a to s dobrými výsledky.
Problémy s PDF soubory bývají nejčastěji tvořeny těmito skutečnostmi:
- Soubor je vytvořen aplikací, která však neodpovídá plné specifikaci pro vygenerování PDF. Obvykle to bývá, když výrobce řeší pouze západní podporu znaků a ostatní znaky jdou potom špatně nebo jen částečně.
- Soubor používá špatně lokalizované písmo, které nemá správně pojmenované glyfy, což jsou graficky znázorněny jednotlivé znaky. Jinak je aplikace v pořádku.
- S maximální kompatibilitou jsou použity formáty staršího typu, které nepodporovaly CE znaky.
- Když dojde k problému vytisknout PDF dokument, aby vypadal stejně jako na monitoru, tak je potřeba při tisku v možnostech tisku zapnout tisknout jako obraz. [20]
Vnitřní struktura portable dokument formátu
PDF dokument je tvořen vrstvami. Na PDF formát se můžeme dívat z různých úhlů pohledu, z nichž každý má své vlastní výhody a nevýhody. Na nejnižší úrovni, PDF soubor obsahuje nezpracovaná data dokumentu. Další je vrstva COS, ta organizuje tato data do jednoduchých objektových stromovitých struktur. Na vrstvě PD, jsou tyto jednoduché objekty dohromady realizovány a stává se z nich střední úroveň struktury jako třeba písmo a obrázky. Z Písma a obrázků se skládá vyšší třída struktury, která tvoří poznámky a celé stránky. Některé z těchto objektů jsou také použity k uložení logické struktury, jako jsou odstavce nebo vlákna článků. Každá z těchto vrstev má svůj vlastní nezávislý soubor pravidel. Například souborový formát, nemusí obsahovat žádné užitečné objekty. COS vrstva může obsahovat mnoho objektů, které však nějak nepřispívají v dokumentu nebo můžou být dokonce nesrozumitelné.
Vědět, jak se orientovat v těchto strukturách je důležité, abychom věděli například, jaké objekty jsou opravdu nutné, aby byl dokument v PDF správně vygenerován. [35]
Struktura souboru PDF
Formát PDF je text smíchaný s binárními daty. Pokud ho otevřeme v textovém editoru, uvidíme surové objekty, které definují strukturu a obsah dokumentu. Doslovná definice objektů je text s předponou, který vypadá asi takto '12 0 obj'. Číslo 12 je odkaz na objekt. Objekt, který je zde uveden se nazývá nepřímý, protože může odkazovat jen na číslo. Existují také objekty bez tohoto referenčního předčíslí. Ty se nazývají přímé objekty a jsou vždy obsaženy v jiných objektech. Existuje 8 typů objektů. [35]
PDF obsahuje tyto typy objektů: Prvních 5 jsou skalární typy:
- Integer – v souboru jako číslo bez desetinné čárky.
- Boolean – v souboru jako text, obsahuje hodnoty 'true' nebo 'false'.
- Real Number – v souboru jako číslo s desetinou čárkou.
- Name – v souboru jako text a patří sem i další znaky jako lomítka, závorky, uvozovky. Samozřejmě sem patří text jako takový. Slouží k pojmenování objektů.
- String – v souboru buď jako znaky nebo může být zapsán znaky hexadecimálního kódu. Většinou jde o posloupnost 16 bitových znaků. [34, s. 51]
Další 3 jsou kontejnerové typy:
- Dictionary – v souboru jako '<<...jiné objekty...>>'. Slovníkové vstupy jsou vždy v párech. Jedním ze vstupů je klíč a druhým je nějaká hodnota. Název objektu následuje nějaký jiný typ objektu.
- Array – v souboru jako '[...jiné objekty...]'. Seznam neoddělitelných objektů, které jsou oddělené maximálně mezerou a to v případě, kdy je to nezbytně nutné. Jedno pole může obsahovat více navzájem propojených typů objektů.
- Stream – v souboru jako '20 0 obj' <<...stream attribute objs...>> stream...binary data...endstream'. Toto je nesložitější typ. Je to vlastně slovník objektů spojen s řetězcem bytů. Stream je vždy nepřímý objekt. [34, s. 51]
Jeden typ je zvláštní a nazývá se typ null, ten může obsahovat pouze jednu hodnotu, a to hodnotu null.
Jak jsme si již uvedli, tak objekty mohou být přímé nebo nepřímé. Nepřímé objekty jsou číslovány číslem objektu a číslem generace. Index table, který se nazývá také jako xref tabulka přidává každému nepřímému objektu od začátku souboru offset bajt. [34, s. 39-40] Tato struktura umožňuje, aby se pro malé změny v dokumentu nemusel přepisovat celý soubor. Od novějších verzí můžou být nepřímé objekty také umístěny ve speciálních streamech znamých jako object stream. Tato technika snižuje velikost souborů, které mají velké množství malých nepřímých objektů.
PDF soubor je tvořen dvěma schématy, nelineárním ("neoptimalizované") a lineárním ("optimalizované"). Nelineární PDF soubor spotřebovává méně místa na disku, než jeho lineární protějšek. Nevýhodou však je, že se dokument pomaleji načítá, protože některý z údajů potřebný k sestavení stránky dokumentu je roztroušen po celém souboru PDF. Lineární PDF soubory jsou konstruovány takovým způsobem, který jim umožňuje čtení v pluginu webového prohlížeče bez nutnosti čekání než se celý soubor stáhne. [37]
Základní typy obsahu ve formátu PDF
PDF soubor bývá často kombinací vektorové grafiky, textu a bitmapové grafiky. Základní typy obsahu ve formátu PDF jsou:
- text uložený jako obsah streamu (tj., ne text),
- vektorová grafika pro obrázky a vzory, které se skládají z tvarů a linií,
- rastrové grafiky pro fotografie a další typy image.
PDF dnes také podporuje odkazy uvnitř dokumentu jako například odkazy na webové stránky, formy, JavaScript nebo jiné typy odkazů, které mohou být zpracované pomocí plug-inů.
Text
Text je ve formátu PDF reprezentován pomocí textových elementů, které jsou v tocích na celém dokumentu. Textový element určuje, že znak musí být zpracován na určité pozici. Znaky jsou určeny pomocí kódování vybraného zdroje písma. [37]
Kódování znaků v PDF
Textový řetězec a znaky jsou zobrazeny pomocí znakového kódu, ten bývá typu integer, a je mapován glyphy, které jsou kódovány v aktuálním fontu písma. Existuje celá řada předdefinovaných kódování jako například WinAnsi a MacRoman a další pro východní Asii. WinAnsi a MacRoman je kódování vycházející z vlastností Windows a Macintosh operačních systémů, ale lze s nimi pracovat stejně dobře na jakékoli jiné platformě. Písmo může mít své vlastní vestavěné kódování. Pro velké fonty nebo fonty s nestandardními glyphy se využívá zvláštní kódování Identity-H pro horizontální psaní a Identity-V pro vertikální. S těmito fonty je nutné uvést ToUnicode tabulku, která obsahuje informace o znacích. [34]
Písmo
V PDF je písmo popsáno jako digitální obraz znaků. Písmo se dělí na vložené a nevložené. Vložené fonty byly založeny na široce používaných standardních formátech: type 1, TrueType a OpenType.
Standardní typ 1 (Standard 14)
Existuje čtrnáct druhů písma, které jsou známé jako standard 14. Tyto písma mají zvláštní význam v dokumentech PDF a patří mezi ně například tyto fonty:
- Times,
- Courier,
- Helvetica,
- Symbol,
- Zapf Dingbats.
Tyto fonty jsou někdy také nazývány jako "Písma základní čtrnáctky". Tyto fonty jsou ve všech PDF readerech, a tak nemusí být vloženy ve formátu PDF. [36]
Problémy s fonty v PDF
V klasických textových editorech se vyskytuje při použití netradičních fontů problém při přenosu takového dokumentu na počítač, kde tyto fonty nejsou přítomny. Tyto textové editory tenhle problém řeší obvykle použitím podobného fontu, ale to může způsobit změny v zobrazení dokumentu.
Formát PFD tento problém řeší použitím tzv. Font Deskriptoru, který použitý font zahrne přímo do souboru dokumentu, kde pro každý font existuje jméno, velikost a informace o stylu jednotlivých písmen fontu. Jestliže použitý font není nalezen na platformě, kde dokument otvíráme, je vytvořen nový font a ten si zachová vlastnosti původního fontu. Tento postup je možný pouze u fontů, které používají standardní sadu znaků ISOLatin1. V případě, že dokument obsahuje jiné fonty, tak se k PDF dokumentu připojuje kompletní komprimovaný soubor s jejich popisem. [38]
Vektorová grafika
Vektorová grafika ve formátu PDF je konstruována takzvaně cestami. Cesty jsou obvykle tvořeny z linek a krychlových Bézierových křivek, ale také můžou být tvořeny z obrysů textu. PDF nepovoluje jednou cestou upravit textové obrysy a linkami s křivkami. Cesty mohou být hladké, vyplněné nebo oříznuté. Tahy a výplně mohou mít nastavenou libovolnou barvu z grafického výběru.
PDF podporuje několik typů modelů. Nejjednodušší je takzvaně obkladový vzor, ve kterém je kus kresby stále opakován, dokud nevyplní celou požadovanou část. Nyní umí PDF také vzor pro stínování, který čerpá průběžně různé barvy a tím navodí dojem stínu. Existuje sedm druhů stínících vzorů. Do těchto vzorů patří například axiální odstín nebo radiální odstín. [34]
Rastrová grafika
Rastrové obrázky ve formátu PDF jsou reprezentovány slovníky a k nim spojenými streamy. Mají označení tzv. Image XObjects. Slovník popisuje vlastnosti obrazu a stream obsahuje obrazová data. Obrázky jsou obvykle filtrovány pro účely komprese dokumentu. Podporované obrazové filtry ve formátu PDF obsahují univerzální filtry:
- ASCII85Decode - zastaralý filtr, který dává stream do 7bit ASCII.
- ASCIIHexDecode - podobný jako ASCII85Decode, ale méně kompatibilní.
- FlateDecode - běžně používaný filtr založení na zlib/deflate algoritmu.
- LZWDecode - zastaralý filtr založený na LZW kompresi, ale může použít jednu ze dvou prognostických funkcí pro více kompaktní LZW kompresi.
- RunLengthDecode - je jednoduchou metodou komprese streamů s opakujícími se daty pomocí Run-lenght kódovacím algoritmem a obrázkovým filtrem.
- DCTDecode - filtr založený na standardu JPEG.
- CCITTFaxDecode - bezztrátový filtr.
- JBIG2Decode - ztrátový nebo bezeztrátový filtr založený na standardu JBIG2.
- JPXDecode – ztrátový nebo bezeztrátový filtr založený na standardu JPEG 2000. [34]
Metadata
PDF soubory obsahují i metadata. Mezi ně patří například i slovník s informacemi o dokumentu. Obsahuje vždycky klíč/hodnotu pole jako je například autor, název, předmět, čas vytvoření a upravení dokumentu. Tohle je většinou uloženo v malém přívěsném souboru. V případě potřeby může být tento soubor prodloužen o další pole. [34]
Modifikace
V jiných formátech potřebujete při změně určité části svého souboru, nové vytvoření celého souboru. PDF dokument může být modifikován bez přepsání původního souboru. Záznamy o editaci se zapisují na konec souboru jako příloha původní verze, předchozí část souboru zůstává nezměněna. To způsobuje, že se snižuje časová náročnost při ukládání změn a také je ulehčen mechanismus k návratu původní podoby dokumentu před provedením změny. Po modifikaci PDF souboru jsou vložené do nové sekce tabulky křížových odkazů také odkazy na modifikované a vytvořené objekty. A zároveň je na konci souboru vytvořen nový trailer. [15]
Členění dokumentu PDF
Tato část popisuje, jak jsou objekty uspořádány v souboru PDF. PDF se skládá ze čtyř prvků.
Hlavička (header)
V hlavičce se udává použitá verze PDF a to ulehčuje prohlížeči, zjistit o jakou verzi se jedná. Tento jednořádkový údaj bývá standardně vždy na začátku dokumentu.
Tělo (body)
Tělo dokumentu je hlavní částí dokumentu, kde se nachází části objektů. Jako jsou fonty, stránky všeobecně a obrázky, které vlastně tvoří celkový vzhled dokumentu. Kdekoliv v této části se může nacházet navíc komentář.
Tabulka křížových odkazů (cross-reference table)
Každý PDF dokument obsahuje jedinečnou tabulku křížových odkazů, která se skládá z více sekcí, pokud byl dokument nějak modifikován. Pokud se však dokument nějak neupravoval, obsahuje pouze jednu sekci. Dá se říci, že tato tabulka představuje něco jako obsah, takže slouží pro rychlý přístup k nepřímým objektům. Každá sekce začíná slovem tref. A následná podsekce je vždy tvořena dvojící celých čísel určující rozsah. Potom jsou uvedeny samotné informace o objektu.
Pata (trailer)
Je uveden na konci dokumentu a slouží pro rychlé nalezení některých speciálních objektů a některých dalších objektů v dokumentu přes tabulku křížových odkazů. Aplikace by měly číst PDF soubor od jeho konce. Trailer obsahuje i údaje, některé povinné, ale také nepovinné. Mezi povinné patří údaj o počtu záznamů, identifikátor verze dokumentu. Mezi nepovinné například hodnota encrypt pro dešifrování v případě šifrovaného dokumentu. [15]
Knihovny pro vytváření výstupů
PDF můžeme obohatit o knihovny, které upravují tento formát. Například pokud se nám lépe pracuje v některém programovacím jazyce, můžeme využít následující knihovny. Pomocí nich dokážeme dokument upravit v mnoha směrech a poskytují nám širší možnosti úprav.
Java – PDFBox
Knihovna Apache PDFBox je open source založený na Javě, sloužící pro práci s PDF dokumenty. Umožňuje vytváření nových PDF dokumentů, úpravu existujících a získání obsahu dokumentů. Tato knihovna navíc nevyžaduje framework .NET, ale je tu i možnost stažení knihovny, která ho podporuje. PDFBox dovoluje tyto funkce:
- Upravit PDF pro lepší extrakci textu.
- Sloučit PDF dokumenty.
- PDF šifrování / dešifrování.
- Integruje vyhledávácí modul Lucene.
- Vyplnit formy FDF a XFDF data.
- Vytvořit PDF z textového souboru.
- Vytvořit obrázky z PDF stránek.
- Tisk PDF. [22]
Php – PDFLib
Tato knihovna umožňuje vytvářet soubory PDF skrze programovací jazyk php. Knihovna
pracuje s PHP4 a PHP5. Do dokumentu lze přidat i několik užitečných rozšíření jako
například záložky, rotace, tabulky a čárové kódy. Hlavní cíl je dynamické vytváření PDF
na webových nebo jiných serverech a uložit je jako PDF. [23]
Python – pyPdf
Tato knihovna je čistě postavena na programovacím jazyce python. Knihovna je schopna získat informace o dokumentu jako je název, autor atd., dále rozdělení dokumentu stránku po stránce, slučování dokumentů stránku po stránce, oříznutí stránky, šifrování a dešifrování souborů PDF. Protože je to čistě pythonovská knihovna, měla by běžet na jakékoli platformě bez závislosti na externích knihovnách. Pracuje spíše s objekty, StringIO a umožňuje manipulaci s PDF v paměti. Jedná se tedy o užitečný nástroj pro webové stránky, které pracují nebo manipulují s PDF.
Pomocí této knihovny dokážeme:
- Slučování a rozdělování dokumentů po stránkách,
- umísťování vícero vstupních stránek na jednu stránku výstupní,
- ořez stránek,
- přidávání a odebírání oprávnění pro manipulace s dokumentem,
- výpis metadat. [24]
C++ – PoDoFo
Je knihovna napsána v jazyce C++ a kód byl úspěšně sestaven pod OS Unix, Mac OS a Windows. Tato přenosná C++ knihovna je zdarma a obsahuje třídy pro zpracování PDF souboru a modifikaci jeho obsahu v paměti. Tyto změny můžou potom být zapsány zpátky na disk jednodušeji. Kromě toho PoDoFo zahrnuje také velmi jednoduché třídy pro tvorbu vlastních PDF souborů. Všechny tyto třídy jsou předem vytvořené, takže je snadnější začít psát vlastní aplikace pomocí PoDoFo.
K této knihovně jsou dostupné i různé jednoduché nástroje, které usnadňují především práci v projektech s touto knihovnou. Také nabízejí rozšiřující funkce. Nevýhoda je, že potřebuje kromě kolekce GNU nástrojů a C++ kompilátoru také následující knihovny:
- Fontconfig (pouze pro Unix),
- Freetype2,
- Zlib,
- Cmake,
- Libjpeg,
- Libtiff,
- Cppunit. [25]