Postřehy o práci s PDF/A
Opatření rektora UK č. 72/2017 zavádí povinnost odevzdávat všechny závěrečné práce a jejich posudky ve formátu PDF/A. Jelikož matfyzáci s produkcí PDF/A často bojují (podobně jako bojují zaměstnanci rektorátu s validací PDF/A v SISu), vznikla tato stránka, která se pokouší shrnout zajímavé zkušenosti s tímto formátem.
Není v mých silách řešit problémy všech uživatelů se všemi programy, ale pokud narazíte na nějaký opravdu zapeklitý problém, dejte mi prosím vědět na adresu mj@ucw.cz, rád se na něj podívám. Podobně budu rád za zprávu, pokud objevíte řešení nějakého problému, který by se mohl týkat i ostatních kolegů.
Co je PDF/A
PDF/A je profil formátu PDF, to znamená sada pravidel určujících, které části nezměrné specifikace PDF je povoleno/nutno/zakázáno používat, aby vznikl dokument vhodný k dlouhodobé archivaci. PDF/A je definováno ve více úrovních, na UK jsou povoleny úrovně 1a a 2u.
Přesná specifikace PDF/A není volně dostupná (ISO si za ni nechává krvavě platit), snad bude časem k půjčení v některé z univerzitních knihoven. Zde nabízíme alespoň stručné shrnutí.
Mezi nejdůležitější požadavky PDF/A-2u patří:
- Všechny fonty musí být zabudovány uvnitř dokumentu. Nejsou přípustné odkazy na externí fonty (ani na „systémové“, jako je Helvetica nebo Times).
- Fonty musí obsahovat tabulku ToUnicode, která definuje převod z kódování znaků použitého uvnitř fontu do Unicode. Díky tomu je možné z dokumentu spolehlivě extrahovat text.
- Dokument musí obsahovat metadata ve formátu XMP a je-li barevný, pak také formální specifikaci barevného prostoru.
- Není dovolen interaktivní obsah (např. zabudovaný JavaScript) a jiné věci, které by snad žádného soudného člověka stejně nenapadlo použít.
PDF/A-1a patří k trochu starší specifikaci PDF (takže nedovoluje například průhlednost), a naopak vyžaduje důsledné tagování struktury textu.
PDF/A v TeXu
PDF/A-1a v TeXu sázet prakticky nelze, PDF/A-2u s trochou snahy funguje. Je potřeba dostatečně nový pdfLaTeX nebo LuaLaTeX s aktuálním balíčkem pdfx.
- Ne-PDFkový LaTeX nelze použít.
- Cokoliv staršího než TeXLive 2014 nejspíš není použitelné (pozoroval jsem několik problémů, nevylučuji, že jsou řešitelné, ale spíš doporučuji TeX povýšit). O verzích MikTeXu nemám přehled, ale minimálně některé jsou problematické.
- V některých verzích balíčku pdfx (třeba té z jara 2019) chybí soubor
pdfx.sty
. Je potřeba stáhnout si aktuální verzi z CTANu a spustitlatex pdfx.ins
v adresářisrc
. - Vytvářet PDF/A v plain TeXu by bylo zajímavé dobrodružství, ale zatím nikdo cestu neprošlápl.
Kostra LaTeXového dokumentu pak vypadá třeba takto:
\documentclass{report}
% Vytvoříme soubor s meta-daty, aby ho nebylo nutné editovat odděleně
\usepackage{filecontents}
\begin{filecontents*}{\jobname.xmpdata}
\Author{A. U. Tor}
\Title{O nesmrtelnosti chrousta}
\Keywords{klíčová slova\sep další taková\sep ještě jiná}
\Subject{Abstrakt prace}
\Publisher{Univerzita Karlova}
\end{filecontents*}
\usepackage[a4paper, hmargin=1in, vmargin=1in]{geometry}
\usepackage[a-2u]{pdfx}
\usepackage[czech]{babel}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{lmodern}
\usepackage{textcomp}
\begin{document}
\end{document}
Jiné kódování dokumentu než UTF-8 nejspíš nebude fungovat (zejména kvůli meta-datům).
Rodina fontů lmodern
(Latin Modern) je podobná obvyklým CM fontům, ale má
obsahuje všechny české znaky s akcenty a hlavně je vybavena správnými tabulkami ToUnicode.
Pokud chcete do textu vložit bitmapový obrázek, lze použít JPEG i PNG, ale pozor na to, aby měl dostatečné rozlišení a nebyl po vytištění ošklivě zubatý čí zaneřáděný kompresními artefakty.
Vektorové obrázky vkládejte jako PDF, ovšem musí také vyhovovat normě PDF/A. Metadata a definice barevných prostorů lze vynechat (doplní se při sestavování celého dokumentu), ale například všechna pravidla o fontech je třeba splnit. To výstup většiny programů nesplňuje, takže je potřeba obrázky konvertovat (viz níže).
PDF/A ve všelijakých Officech
Zde si prosím přečtěte rektorátní návod.
Validace
SIS momentálně ke kontrole toho, zda odevzdaný soubor splňuje normu PDF/A, používá validátor VeraPDF s upraveným validačním profilem. Konkrétní verzi Very a obsah profilu se dozvíte zde. Z výstupu Very se dá vyčíst, kterých stránek se problémy týkají, ale pozor, stránky se číslují od nuly.
Pozor na to, že Vera si občas vymýšlí a odmítne zcela korektní PDF, případně v obskurnějších případech dokonce rovnou spadne. Už je to lepší, než bývalo, ale stále se to stává. Pokud jste přesvědčeni, že vaše PDF je korektní, ale Vera ho odmítá, dejte mi vědět.
Také můžete vyzkoušet validátor Národního archivu. Pravděpodobně také není dokonalý.
Konverze
Neposlušná PDF lze v některých případech do PDF/A automaticky konvertovat. Pozor na to, že konverze může být ztrátová a například může převést kusy textu napsané nekorektními fonty na obrázky, takže namísto nedokonalé extrakce textu už nebude fungovat žádná. Doporučuji tedy konvertovat spíš konkrétní problematické obrázky než celou práci.
Jednodušší případy konverze zvládá svobodně šiřitelný program Ghostscript. Můžete ho spustit například takto:
gs -q -dNOPAUSE -dBATCH -sDEVICE=pdfwrite
-dPDFA=2
-dPDFACompatibilityPolicy=1
-sColorConversionStrategy=RGB -dOverrideICC=true
-dAutoFilterColorImages=false -dColorImageFilter=/FlateEncode -dDownsampleColorImages=false
-dAutoFilterGrayImages=false -dGrayImageFilter=/FlateEncode -dDownsampleGrayImages=false
-sOutputFile=vystup.pdf vstup.pdf
Pokud by to nestačilo, zkuste přidat -dNoOutputFonts
, což nahradí písmena fontů křivkami.
Pozor na to, že GS někdy není ochoten pracovat se soubory nacházejícími se mimo pracovní adresář.
Pokud se vám nechce Ghostscript instalovat, můžete použít online konvertor.
Složitější konverze dokáže Adobe Acrobat Pro. To je poměrně drahý komerční program. Můžete si zdarma stáhnout jeho zkušební verzi, případně využít počítač v knihovně na MS (domluvte se prosím s Petrou Hoffmannovou).
Chytáky
Hlášení z Adobe Readeru
Když vám Adobe Reader tvrdí, že dokument je v PDF/A, znamená to jedno jediné: je to uvedené v metadatech dokumentu. Vůbec to nevypovídá o tom, zda dokument všechny požadavky profilu PDF/A splňuje.
Fonty
Pozor na to, že většina TeXových fontů není v PDF/A použitelná kvůli chybějícím unicodovým
tabulkám. Type1 a OpenType fonty většinou fungují, naopak původní fonty vytvořené v Metafontu
obvykle nefungují (pokud k nim neexistuje i Type1/OT verze). To může být problém u méně
obvyklých matematických symbolů, například z balíčku bbold
.
Vložené články
Pokud chcete do své práce vložit PDFka se svými články, která jste dostali od vydavatele, tak si to raději dvakrát rozmyslete. Vydavatelé posílají takové hrůzy, že šance vytvořit z nich korektní PDF/A je minimální. Také si ověřte, že vám k tomu vaše smlouva s vydavatelem dává právo. Doporučený postup je prohlásit článek za přílohu práce, která bude svázaná s prací, ale elektronicky se odevzdá jako samostatná příloha.
UTF-8 BOM
Některé textové editory přidávají na začátek dokumentů v UTF-8 posloupnost bajtů EF BB BF
,
což je zakódovaný Byte Order Mark. V UTF-8
nemá vůbec žádný význam, ale pod Windows se (poněkud zvrhle) používá pro identifikaci UTF-8. V TeXovém
zdrojáku obvykle nevadí, ale v XMP metadatech ano. Takže pokud byste narazili na záhadné chybové hlášky
při parsování XMP, ověřte si, zda na jeho začátku nestraší BOM.
LaTeX si stěžuje na přepínač "nosetpagesize"
Nové verze pdfx zapínají přepínač nosetpagesize
balíčku graphics.
Ten je dostupný až v novějších verzích. Kdybyste na to narazili, buďto si stáhněte
aktuální graphics nebo zakomentujte
příslušný řádek v pdfx.sty
.
Obrázky kreslené v Ipe
Aby editor Ipe produkoval obrázky splňující PDF/A, přidejte v document properties do Latex preamble řádek:
\usepackage[a-2u]{pdfx}