DjVu fájlok készítése - manuálisan

- A digitalizált alapanyag
- A DjVu dokumentum összeállítása
- Szövegfelismerés, szöveg feldolgozás
- Tartalomjegyzék létrehozás
- Dokumentumjellemzők beállítása (cím, szerző stb.)
Az alább bemutatott manuális módszer mellett néhány kész szoftver is elérhető DjVu fájlok gyors létrehozására. De mivel gyakran nagyon fontos anyagok, végleges digitális archiválásról van szó - az utókor számára -, szükséges lehet, hogy a létrehozott dokumentum felett "teljes uralmunk" lehessen. Ehhez pedig az kell, hogy átlássuk és kihasználjuk a formátum lehetőségeit, amire teljes mértékben jelenleg egyetlen összetett asztali alkalmazás sem képes.
Egyszerű és gyors létrehozásra az ingyenes DjVu Solo és a fizetős Document Express használhatóak, melyekről egyelőre tömören a Szoftverek alatt írtunk.
A digitalizált alapanyag
A fejezet olvasásához már készen kell legyen a digitalizálási munka, azaz a szkennelt könyv vagy dokumentum lapjai már feldolgozott kép fájlokként rendelkezésre kell álljanak, lehetőleg minél jobb minőségben és minél nagyobb felbontásban (300-600 DPI). Beleértve az egyes oldalak irányba forgatását, igény esetén az oldalak fekete-fehérre vágását (küszöbszint). A Szkennelésről és előkészítésről külön menüpontban található információ.
Bizonyos DjVu eszközök csak bizonyos fájl formátumokat ismernek, így
gyakran szükség lehet a képformátumok konverziójára. Erre a példákban
az ImageMagick convert
parancsait használjuk, kiindulási fájloknak pedig
TIFF fájlokat.
A folyamatban főként a DjVuLibre parancsait használjuk, mely letölthető a legtöbb operációs rendszerre. Parancssori jártasság és "egyszerű szöveg" fájl szerkesztési ismeret előny (Notepad, Textpad stb.).
Felhasznált szoftverek:
- DjVuLibre DjVu szoftverek http://djvu.sourceforge.net/index.html
- MiniDjVu http://minidjvu.sourceforge.net/
- ocroDjVu http://jwilk.net/software/ocrodjvu
- ImageMagick http://www.imagemagick.org/
- NetPbm http://netpbm.sourceforge.net/
A DjVu dokumentum összeállítása
Legegyszerűbb példában színes borítóval és fekete-fehér könyv oldalakkal állunk szemben. A fekete-fehér nem szürkeárnyalatosat jelent! Ha csak a borító színes, akkor azt a végén hozzárakjuk.
- 000.elolap.tif
- 001.tif
- 002.tif
- ...
- 161.tif
- 162.hatlap.tif
Könyvünk a könyv-szkenner lehetőségeiből adódóan 440 DPI-sre sikerült, amit szándékosan nem kerekítettünk lefelé (pl a szokásos 300-ra), az elérhető legjobb minőség megtartásáért.
Fekete-fehér oldalak DjVu-ba
Elsőként az összes belső oldalt összefűzzük egy fájlba. Már kész is a DjVu dokumentumunk, olvasgathatjuk!
minidjvu -d 440 -e ???.tif lapok.djvu
A minidjvu -s -m -e
kapcsolókat ismer a tömörítés befolyásolására.
A tesztünkben csak a -e
csökkentett valamit a méreten, -s
és -m
már nem.
(Ellenőrizni: a jelenlegi leírása szerint
ennél több kapcsolója van!
A -d 440
a dokumentum felbontása, esetünkben 440 DPI.
A ???.tif
formátum Bash-ban az összes három karakteres .tif
kiterjesztésű fájlt jelenti az aktuális könyvtárban.
Ha csak egyetlen képet szeretnénk átkonvertálni, akkor a cjb2 tömörítővel tehetjük meg:
cjb2 -dpi 600 -lossy sajdik88.pbm sajdik88.djvu
Összetettebb feldolgozás esetén hasznos trükk lehet indirekt DjVu-ba fűzni az alap dokumentumot, így az egyes oldalakat külön is könnyebben manipulálhatjuk. Például a fekete-fehér részét minden oldalnak így feldolgozzuk, de a képeket, háttereket bizonyos oldalra alaposabb feldolgozás után szeretnénk hozzáadni (lásd kétrétegű oldal).
Színes lap DJVU-ba konvertálása
A fájlt először PPM formátumra konvertáljuk, majd a DjVu c44 nevű színes oldal vagy fotó tömörítőjével betömörítjük.
convert 000.elolap.tif 000.elolap.ppm
c44 -dpi 440 000.elolap.ppm 000.elolap.djvu
DjVu fájlok összefűzése (pl színes + fekete)
A címap és a hátlap hozzáfűzése után kész is az első könyvünk, de ennél sokkal több dolgunk (lehetőségünk) lesz még!
djvm -c basic.djvu 000.elolap.djvu lapok.djvu 162.hatlap.djvu
Ezzel az eszközzel oldalakat is törölhetünk::
djvm -d basic.djvu 162
Vagy egy oldal beszúrása:
djvm -i basic.djvu hatlap-uj.djvu 162
Az oldalszám elhagyásakor a végéhez fűz hozzá. A beszúrt dokumentum több oldalt is tartalmazhat.
Kétrétegű oldal létrehozása (betűmaszk és háttér)
A DjVu egyik leglényegesebb funkciója a nagy tömörítésű képréteg és az előtte elhelyezkedő nagy felbontású előtér réteg, amely segítségével hátteret vagy képeket tartalmazó oldalak is kiválóan tömöríthetők.
A maszkhoz az alább leírtakon kívül tartozhat még egy "foreground" réteg, amelyre a maszk egyes területeinek szín információját tárolja a DjVu, így a maszk nem csak fekete lehet!
Készítsük el a maszkot és a hátteret
Szét kell választani a képes és szöveges részeket. Ha ezek teljesen egymáson szerepelnek, szükség lehet egyéb eszközökre, amire vannak ugyan megoldások de még gyűjtenünk kell róla információt, vagy manuálisan képszerkesztő programban végezzük el a szétválasztást. Többek között például a DjVu Solo és a Document Express is elvégzi ezt a szétválasztást. A DjVu Solóban nincs igazán lehetőség beavatkozásra, tévedések kijavítására. A Document Expresshez adott tömörítés tesztelő erre valószínűleg több lehetőséget biztosít - egyelőre lejárt a próbaverziónk...
Megnézni: didjvu: DjVu encoder with foreground/background separation - fura dolgokat csinál, nem csinált értelmezhetőt nekem. gsdjvu: GhostScript patch ugyanerre, nem sikerült telepíteni Document Express profiler: fizetős. Valószínűleg ezek a régies papír háttér szeparálására képesek, nem a betűt egy valódi háttérképről leválasztani.
A háttér legyen leméretezett kép, pl 50%, 25%. A háttér és maszk képeknek egyforma méretűnek vagy pontosan egész többszörösnek kell lennie! (Ezáltal fontos, hogy ez egész forrásanyagunk 2-vel vagy 4-gyel osztható méretű képekből álljon!)
Mentsük a hátteret PPM-be a maszkot pedig PBM-be.
Maszk fájlt konvertáljuk "RLE"-re
pbmtodjvurle 000.mask.pbm >000.mask.rle
Ez a DjVu RLE konverter a NetPbm csomag része, de Ubuntu Linuxon sajnos nem került bele a csomagba, külön telepíthető.
Végszükség esetén a DjVu eszközökkel is elvégezhető a konverzió:
cjb2 -dpi 440 000.mask.pgm 000.mask.djvu
ddjvu -format=rle -page=1 -mode=mask 000.mask.djvu 000.mask.rle
Egybemásolva a két fájl konvertálható DjVu-ra
cat 000.mask.rle 000.small.bg.ppm | csepdjvu -d 440 - 000.djvu
!! Ez lemaszkolja a háttérből a MASZK (foreground) által kitakart dolgokat.
Azaz ezt a műveletet is elvégzi: c44 -dpi 440 -mask 000.mask.pbm 000.elolap.ppm 000.bg.djvu
Furcsa megközelítés, hogy a program a két fájlt egy fájlba másolva várja. Ez Windowson a copy + paranccsal érhető el, például:
copy 000.mask.rle+000.small.bg.ppm 000.egyben
csepdjvu -d 440 000.egyben 000.djvu
Néhány színű lap DjVu-ba konvertálása:
Másik nagyon fontos lehetőség a kevés színt tartalmazó oldalak tárolása. Ilyen lehet például amikor az oldalon a címsorok színesek, a betű pedig fekete, vagy kisebb színes ábrákat, kereteket tartalmaz az oldal.
convert 01.tif 01.ppm
cpaldjvu -dpi 500 01.ppm 01.djvu
További opciók megvizsgálni
- cpaldjvu -colors 3 -verbose -bgwhite 057.JPG 057-3.djvu
- pnmcolormap
- pnmquant
Szövegfelismerés, szöveg feldolgozás
OCR-ezés (szövegfelismerés)
Linuxon a rendelkezésre álló szabadszoftver alapú OCR megoldások segítségével, mint pl a Tesseract, nagyon jó azonnali eremdényeket érhetünk el. Telepítsük a magyar nyelvi csomagot is!
ocrodjvu -e tesseract -l hun -o ocr.djvu proba-tesser.djvu
#ocrodjvu -e ocrad -o ocr.djvu proba.djvu
Szöveges adatok kinyerése és visszatöltése (helyesírás ellenőrzés)
Összes oldalt és meta adatokat egy DjVuSed (fentebb) parancsfájlba (script) menti, ami szerkesztés után "lefuttatható" így az adatok visszatölthetők:
djvused -u -e 'output-all' basic.djvu >basic_spell.dsed
Lehet csak "output-txt" vagy "output-ant" is. Visszatöltése:
djvused -u -f basic_spell.dsed basic.djvu -s
Helyesírás ellenőrzésre Linuxon pl a Geany nevű IDE használható, amelyhez van helyesírás ellenőrző plugin ("geany-plugin-spellchecker" csomag). De bármilyen formázatlan szövegfájl szerkesztő jó, amelyhez van helyesírás ellenőrző (Word és hasonlók nem, mert TXT formátumban kell megtartani a fájlt!)
Csak egy oldal exportálása:
djvused -u -e 'select 44; print-txt' basic.djvu >basic_spell.txt
szerkesztés után visszatöltése:
djvused -u -e 'select 44; set-txt basic_spell.txt’ basic.djvu -s
Szöveg exportálása TXT vagy XML
Ezek a formátumok vissza nem tölthetők, de hasznos lehet ismerni a lehetőséget:
djvutxt --detail=line basic.djvu
djvutoxml --with-text basic.djvu basic.xml
(Az XML formátumhoz XML -> HTML átalakító XSLT-t is készítettünk, lásd lentebb a weboldalba ágyazásnál.)
Szövegréteg szerkesztése
Egy igen korlátozott tudással rendelkező szerkesztőprogram:
djvusmooth
Szavakat írhatunk át, illetve a befoglaló téglalapjukat módosíthatjuk. De jelenleg nincs lehetőség pl kettészakadt szavak egyesítésére, szavak törlésére, pótlására és hasonló szerkesztésekre.
A DjVu szövegréteg teljes szerkesztésére készítettünk egy webes alkalmazást: WebDjVuTextEd
Tartalomjegyzék létrehozás
TXT szövegfájlba másoljuk ki az OCR-ezett könyvből a tartalomjegyzéket és formázzuk így:
(bookmarks
("Előszó" "#5")
("Bevezető" "#7")
("Első fejezet: ISMERKEDJÜNK A KÉPERNYŐVEL!" "#14"
("SET, RESET, CLS, GOTO" "#14")
("Értékadás" "#15")
("Grafikus képernyőméret" "#17")
("Parancs, utasítás, program, programsor" "#18")
("Karakteres képernyőméret" "#18")
("PRINT, INPUT" "#19")
("Gyakorlatok az első fejezet anyagához" "#21")
("Az első fejezet feladatainak egy lehetséges megoldása" "#23")
)
)
Betöltése a dokumentumba:
djvused -e 'set-outline outline.txt' -u basic.djvu -s
Kiíratása (későbbi szerkesztéshez és visszatöltéshez):
djvused -e 'print-outline' -u basic.djvu >outline.txt
Dokumentumjellemzők beállítása (cím, szerző stb.)
Megjelenítése DjView4-ben: jobb gomb "Metadata..." (WinDjView 2.0.2 nem jeleníti meg), vagy parancsokkal:
djvused -u -e 'print-meta' basic.djvu
djvused -u -e 'select-shared-ant; print-ant' basic.djvu
Érdemes a beállítása előtt megnézni a kapcsolódó "meta" és "shared-ant" rekordokat, nehogy felülírjunk valamit. A "meta" az az "annotations" egy darabja! A betöltéshez a tartalomjegyzékhez hasonlóan TXT fájlba kell begépelni az adatokat majd az alábbi parancsokkal belemásolni a fájlba. A "print-meta" és a "shared-ant"-os megoldások más fájl formátumot használnak!
A felhasználható kulcs-érték párokra nincs általánosan elfogadott szabvány. Egy jól kidolgozott javaslat http://www.djvu-soft.narod.ru/scan/djvu_metadata_draft_10.txt (helyi másolat).
Emlékeim szerint bizonyos helyeken a BibTeX kulcs-érték párjait ajánlják a META adatok megadására.
Betöltés shared-ant használatával
Példa egy betölthető sared-ant fájlra, amelyben próbáltunk minél több
adatot megadni (az udc
-t könyvtári katalógusokból lehet kimásolni):
(metadata
(type "e-book")
(title "BASIC feladatok tükrében, A - párbeszéd a számítógéppel")
(author "Major Zoltán, Valovics István")
(publisher "Tankönyvkiadó Vállalat")
(edition "1")
(date "1986")
(isbn "963-17-8837-7")
(size "16.7x23.7x1 cm")
(pages "158")
(price "49 HUF")
(udc "681.3,800.92 BASIC,681.3-181.4HT.06:519.682BASIC,519.682.2(076)")
(language "hu")
(source "photo,440-PPI 24-BPP-sRGB colour 95 JPG, from original")
(text "OCR (Tesseract 3.02.02-1), outline")
(notes "illustrations Sajdik Ferenc")
(version "1.1 (much smaller file, outline), 1.2 (this metadata)")
)
Beletöltése:
djvused -e 'create-shared-ant; set-ant metafile.txt' basic.djvu -s
Betöltés set-meta használatával
Ha -e "set-meta fájlnév"
paranccsal szeretnénk dolgozni, akkor más a
fájlformátum:
type "e-book"
title "BASIC feladatok tükrében, A - párbeszéd a számítógéppel"
author "Major Zoltán, Valovics István"
publisher "Tankönyvkiadó Vállalat"
Egyéb meta adatok
Ha esetleg egy konkrét oldalhoz szeretnénk valamilyen "meta" adatokat társítani, akkor "select 45" paranccsal kezdjünk, ahol a 45 az oldal száma.
Megjegyzés: a djvused
parancsokat a program elindításával interaktív
parancssoros módban is kiadhatjuk, Például:
djvused doc.djvu
select-shared-ant
print-ant
Ctrl-D kilépés. (Windowson lehet, hogy Ctrl-Z)
A Document Express 7.0 más formátumban tárolja! Néhány fix értéket enged meg, amelyeket a következő nagybetűs kulcsok alatt ment le: Author, Comment, Copyright, Keywords, Subject, Title. A fentebbi sémát se nem olvassa se nem írja. (Mivel ez nagybetű-érzékeny tároló, az ide beírt Author nem egyezik meg a fentebbi author mezővel.)
Egyebek
- HTML weblapba ágyazás pluginnel
- Egyéb feljegyzések:
- Feldolgozást segítő parancsfájlok
- Nyomtatási fejléc/lábléc
- Jegyzetek (annotations)
- JPG és RAW képek DjVu tömörítésének hatékonysága