Esettanulmány: PDF-állományok ellenőrzése és módosítása

A kiadási folyamat során előfordulhat, hogy PDF-állományokat kell ellenőriznünk, esetenként javítanunk (például mert nem áll rendelkezésre a forrásdokumentum, a megfelelő kereskedelmi kiadványszerkesztő program, vagy elegendő idő). A LibreOffice Draw a PDF Import bővítménnyel (alapértelmezett a hivatalos kiadásokban, de pl. Ubuntu alatt külön kell telepíteni a sudo-apt get libreoffice-pdfimport paranccsal) képes szerkesztésre megnyitni PDF-állományokat. Hasznos lehetőség a dokumentum beillesztett ábráihoz való hozzáférés, amit vágólappal kimásolhatunk.

Többé-kevésbé ellenőrizhetjük a helyesírást is, l. mellékelt ábra. (Az elválasztott szavakat hibásnak jelzi a Draw, a nyelvhelyességet pedig nem ellenőrzi, pedig a példában szereplő dokumentum leggyakoribb helyesírási hibáját, a számok és a százalékjelek különírását a LibreOffice Writer magyar nyelvhelyesség-ellenőrzője kijelzi.) A megjelenítést megőrző szerkesztés és mentés már több tényező függvénye: telepítve kell lennie a dokumentum betűkészleteinek, ami a példában, mivel Linux alatt hiányzott a Microsoft Office 2003 Garamond betűkészlete, nem állt fenn. [Megfigyelhető az is az ábrán, hogy a tartalomjegyzék pontozott vonala fedésbe kerül a szöveggel a más betűtípus miatt. Ha a hibásan írt szóba beillesztenénk a hiányzó kötőjelet, akkor is ez volna a helyzet, de mivel a sorban szereplő másik kiskötőjel felesleges, a hibás Erős pénzügyi és folyamatellenőrzés javítva sem lesz hosszabb: Erős pénzügyi és folyamat-ellenőrzés]. Kényelmesen csak kisebb hibák javítása oldható meg, mivel ahogy a képen is látható, a PDF dokumentum minden sora külön szövegdobozba kerül. (Ha teljes bekezdést szeretnénk javítani, akkor a sorokat egy olyan szövegdobozba kell másolnunk, aminek Pozíció és Méret formázásában kikapcsoljuk a szélesség szövegtartalomhoz igazítását.)

A következőkben részletesen megnézünk egy példát, amiben több típusproblémára adunk megoldást: PDF állományok összefűzése, vektoros képek áttetszőségének módosítása, egyedi oldalak módosítása, méretezés és pozicionálás, mindezt akár a LibreOffice és a dokumentum betűkészletei nélkül is. A javítandó dokumentum a kormány következő négy évre szóló infokommunikációs stratégiája (Digitális Megújulás Cselekvési Terv), aminek borítójára hibásan került fel a magyar címer: az MSZ 3500-as szabvány szerinti színes ábrázolás helyett, ahol az ezüst színt a fehér jelöli, a dokumentumban kék színnel jelennek meg a magyar állami jelkép ezüst részei, a sávok és a kettős kereszt. Ez a hiba a LibreOffice-szal is javítható, de szükség van hozzá a borítóoldal eredeti betűkészleteire és egy PDF oldalakat összefűző programra is. Ez utóbbira azért, mert az eredeti dokumentum álló és fekvő oldalakat is tartalmaz, amit a LibreOffice Draw nem kezel, ezért a módosított borítót külön kell az eredeti dokumentumban kicserélni.

A javítást a LibreOffice-ban elvégezhetjük egy új címer beillesztésével, vagy a kékké változtatott címerrészek fehér rajzelemekkel való letakarásával, vagy esetleg (itt az oldalnyi bitképes háttér részeként beillesztett) címer külső rajzprogrammal való szerkesztésével (ebben segítséget nyújt, hogy a LibreOffice-ban a dokumentumok beillesztett képeit egyszerűen elmenthetjük a képek helyi menüjén keresztül). Ha módosítottuk és exportáltuk PDF-ként a dokumentumot, a pdftk programot (és a mögötte álló GhostScriptet) hívhatjuk segítségül a végső dokumentum összerakásához. A következő parancssor az első és az utolsó oldalt (B1 és B208) a szerkesztett PDF-ből veszi, a többi oldalt az eredetiből (A2-207), a végeredmény pedig a javított PDF:

pdftk A=Digitalis_Megujulas_Cselekvesi_Terv.pdf B=szerkesztett.pdf cat B1 A2-207 B208 output Digitalis_Megujulas_Cselekvesi_Terv_MSZ_3500.pdf

Nézzünk meg lépésről lépésre egy másik megoldást is, ahol nincs szükség a dokumentum betűkészleteire (így jelen példában a Microsoft Office Garamondjára). Ráadásul bitkép helyett vektoros ábrát illesztünk be, amivel javítunk a borító minőségén is (a háttérkép felbontása csak 150 dpi-s, ami képernyőre még megfelel, de a nyomda számára már nem).

1. Töltsük le a dokumentumban használt címert a Nemzetijelkepek.hu oldalról. Sajnos ez az legkevesebb helyet foglaló, csak 5 színű vektoros címer hiányos, mivel nem tartalmazza a fehér sávokat és kettős keresztet tartalmazó réteget (ellentétben a nagyobb színfelbontású változatokkal). Ez alapesetben nem feltűnő, mivel az EPS kép kapott egy nagyobb négyszögletes fehér hátteret is, emiatt viszont nem helyezhető más színű háttérre a kívánt módon.

2. Nyissuk meg a képet az Inkscape programban. Ha a betöltött kép helyi menüjében kiválasztjuk a Csoport szétbontása menüpontot, akkor lehetőség van a nagy háttér törlésére, és a hiányzó fehér sávok és kettős kereszt pótlására is (ha nem pótolnánk, akkor háttérszínű, például kék sávokat és kettős keresztet kapnánk más színű háttérre helyezésnél, ahogy ez be is következett). A pótláshoz átmásolhatjuk a hiányzó réteget egy nagyobb színfelbontású címerállományból, vagy ami más esetben is működni fog, használjuk az Inkscape kitöltés funkcióját.

Kattintsunk a festékesdoboz (Körülhatárolt területek kitöltése) ikonra, majd a palettán a fehér színre. Kitöltés előtt állítsuk be a Növelés értékét (ezzel a kitöltés kicsit nagyobb lesz, mint a kitöltött terület, így biztosan minden sarkát fedni fogja a kitöltendő területnek, a példában a kellően nagy felbontás és nagyítás miatt az „1” volt a megfelelő növelési érték, lásd mellékelt ábra). Eredményül egy fehér színű rajzobjektumot kapunk, ami az ábrán részben takarja a kettős kereszt körvonalát. A kitöltési objektumot a Lapozás Le (PageDown) billentyűvel mozgassuk a többi réteg mögé. Ha minden területet kitöltöttünk, kattintsunk a nyíl (objektumok kijelölése) ikonra, jelöljük ki a címer minden részét a Ctrl-A lenyomásával és csoportosítsuk ezeket az Objektum menü csoportosítás menüpontjával.

3. Készítsünk egy A4-es PDF állományt, ami csak a megfelelően pozicionált címert tartalmazza. A pozicionáláshoz az eredeti dokumentum megfelelő oldalából képet készítünk, és azt nyitjuk meg az Inkscape programban. Mivel nem minden esetben van olyan szerencsénk, mint most, hogy oldalnyi képet tartalmaz a PDF dokumentum (és annak mentése csak egy kattintás a LibreOffice-ban), készítsünk az ImageMagick programcsalád convert parancsával (és a mögötte lévő GhostScripttel) bitképet a PDF dokumentumunk oldalaiból:

convert -density 150 "Digitalis_Megujulas_Cselekvesi_Terv.pdf[0]" elsooldal.png

A -density opcióval 150 dpi felbontást állítottunk be az alapértelmezett 72 helyett, a zárójelekkel védett „[0]” pedig az első oldalt jelölte. Az Inkscape-ben nyissuk meg a képfájlt, és a vágólap segítségével illesszük be a címert, majd pozicionáljuk úgy, hogy eltakarja az oldalon lévő képet (lásd ábra). A takarás nem tökéletes, mert a JPEG kép rosszabb felbontása miatt a korona részei, pl. a keresztpántok vonala megvastagodott (kattintsunk az előző ábrán a nagyobb nagyításhoz), így a bitképes koronát még egy háttérszínű résszel (amit a GIMP programmal vágtunk ki az oldal más részéből, és vágólappal az Inkscape-be másoltuk) lefedtük. Töröljük a pozicionáláshoz szükséges nagy háttérképet, az eredményt (ami csak a vektoros címert és az eredeti bitképes korona eltakarásához szükséges kis háttérszínű részt tartalmazza, l. ábra) pedig exportáljuk PDF-ként (ez_csak_a_cimer.pdf).

4. Innentől kezdve már csak egy parancsot kell kiadnunk a teljes javításhoz, ami a fenti címerrel eltakarja az eredeti dokumentum hibás címerét:

pdftk Digitalis_Megujulas_Cselekvesi_Terv.pdf cat 1 208 output - |
pdftk - stamp ez_csak_a_cimer.pdf output - |
pdftk A=- B=Digitalis_Megujulas_Cselekvesi_Terv.pdf cat A1 B2-207 A2 output - |
pdftk - output Digitalis_Megujulas_Cselekvesi_Terv_MSZ_3500.pdf

A parancssor magyarázata: az első pdftk folyamat összefűzi (cat) az eredeti dokumentum első és utolsó oldalát, a második ezekre (a mínuszjel jelöli, hogy a szabványos be- és kimenetet használják a pdftk folyamatok) ráhelyezi (stamp) a címert tartalmazó PDF oldalt, a harmadik összerakja a végeredményt az eredeti állománnyal, a negyedik pedig helyreállítja a PDF hivatkozási adattábláját, hogy az egy-két erre nem képes PDF feldolgozó programmal se legyen gond. A végeredmény (3,3 MB) elküldésre került az illetékes minisztérium ügyfélszolgálatához is.

Új hírek (2011. június 1.): Kikerült a hivatalos javítás. Sajnos nem tökéletes, mert a korona keresztpántjai alatt a régi fehér háttér látszik, nem pedig az új kék (lásd mellékelt kép), de ez a hiba jóval kevésbé feltűnő, mint a korábbi. Az pedig kifejezett technológiai probléma, hogy a PDF mérete tízszeresére, 31 MB-ra nőtt, miközben a háttérkép felbontása nem változott. Ennek oka, hogy a háttérkép most tömörítetlenül került bele a PDF-be. Szerencsére a GhostScript programmal utólag is tömöríthetjük a PDF állomány képeit:

gs -q -dNOPAUSE -dBATCH -sDEVICE=pdfwrite -sOutputFile=javitott.pdf Digitalis_Megujulas_Cselekvesi_Tervull.pdf

Az eredmény egy mindössze 2,5 MB-os PDF állomány. Ha veszteségmentes tömörítést alkalmazunk, akkor pedig 4,8 MB:

gs -q -dNOPAUSE -dBATCH -sDEVICE=pdfwrite -sOutputFile=javitott.pdf -dAutoFilterColorImages=false -dColorImageFilter=/FlateEncode Digitalis_Megujulas_Cselekvesi_Tervull.pdf

“Esettanulmány: PDF-állományok ellenőrzése és módosítása” bejegyzéshez egy hozzászólás

Vélemény, hozzászólás?

Az email címet nem tesszük közzé. A kötelező mezőket * karakterrel jelöljük.