Jak vytvořit DjVu dokument s využitím opensource nástrojů

Z DCEwiki
Přejít na: navigace, hledání

Aby bylo možno s dokumenty v djvu pracovat, je nutné mít v systému nainstalované příslušné knihovny a nástroje - distribuční balíky mají obvykle v názvu "djvu", ale kdo chce, tak si je může zkompilovat sám. V případě aplikace gsdjvu, kterou využívá djvudigital to je dokonce nutnost.

Konzervace psaného či tištěného dokumentu[editovat]

Pokud chceme zpracovat do djvu klasický papírový dokument, tak jej musíme nejprve naskenovat. Už přitom musíme mít na paměti, že v případě djvu platí - čím kvalitnější výchozí předloha, vyšší použité rozlišení při skenování a celistvější barevné plochy v rámci dokumentu, tím kvalitnější (a menší) výsledný dokument. Nalézt optimální hodnoty nemusí být jednoduché, zvláště v případě že zpracováváme dokumenty hodně barevné. Záleží pak hodně na zkušenosti zpracovatele.

Na hotový DjVu dokument pak můžeme aplikovat OCR pomocí ocredjvu. Tato aplikace výsledek umí rovnou vložit do DjVu dokumentu jako textovou vrstu - umožníte tím pak fulltextové prohledávání dokumentu. Korekturu textové vrstvy lze udělat pomocí nástrojů djvusmooth a djvused

Naskenovanou stránku můžete zpracovat rovnou příslušným enkoderem (na barevný obrázek použijeme c44 na černobílý cjb2), ale mnohem lepšího výsledku lze dosáhnout použitím masky a kombinací různých technik a nástrojů.

Skript pro převod naskenované stránky do DjVu[editovat]

Tajemství malé velikosti DjVu souborů totiž není ve wavelet kompresi, ale v použití masky. Kdybychom totiž celý dokument i s barevnou informací zkomprimovali jednoduše pomocí barevného enkodéru c44, byl by zbytečně velký. Vyplatí se to pouze pouze v případě, že jsou na stránce jenom fotografie.

Objem dat lze snížit tím, že dokumenty naskenujete rovnou černobíle, a převedete do DjVu pomocí bitonálního enkodéru cjb2. Ovšem toto je řešení pouze pokud stránka nenese žádnou jinou informaci (např. fotografie, barevné pozadí, poznámky v textu atd.)

Optimální komprese dosáhneme odfiltrováním textu od pozadí (a obrázků) pomocí masky. V následujícím příkladu je uveden opravdu velmi jednoduchý konverzní skript, který umožňuje volitelně při konverzi upravovat práh masky. Lze jej použít i na dokumenty s fotografiemi, ale na takové je už lepší vytvořit sofistikovanější nástroj, který umožní pomocí masky odsunout obrázky do pozadí. Usnadní to mimo jiné i aplikaci OCR.

Poznámka
#!/bin/bash

TEMP_DIR="/tmp/$WINDOWID$BASHPID"
mkdir $TEMP_DIR
TEMP_IMG="$TEMP_DIR/temp.ppm"
TEMP_MASK="$TEMP_DIR/mask.pbm"
DJVU_MASK="$TEMP_DIR/mask.djvu"

case ${1##*.} in
    tiff) KONVERT="tifftopnm";;
    png) KONVERT="pngtopam";;
    jpg) KONVERT="jpegtopnm" ;;
esac

$KONVERT $1 | tee $TEMP_IMG | pamditherbw -threshold -value 0.${3-5} |pnmtoplainpnm > $TEMP_MASK;
cjb2 -lossy -clean $TEMP_MASK $DJVU_MASK;
djvumake $2.djvu Sjbz=$DJVU_MASK PPM=$TEMP_IMG;
EOF


Příklad použití:

./konverzni_skript.sh original.tiff vysledny 4
  1. Prvním parametrem je cesta ke konvertovanému dokumentu.
  2. Druhým parametr je název cílového djvu souboru
  3. Třetím, volitelným parametrem je nastavení prahu pro masku (není-li uveden, použije se hodnota 5)

Konzervace elektronického dokumentu[editovat]

Pokud si kladete otázku jaký má smysl převádět do DJVU např. webovou stránku, tak mohu nabídnout několik odpovědí.

  • Podobně jako PDF uchová DJVU včetně jejího grafického vzhledu - je to v podstatě obrázek.
  • Navíc je možné do dokumentu natlačit i textovou vrstvu, kterou lze fulltextově prohledávat a v případě potřeby vytáhnout a použít pro kompilaci jiného textu.
  • Podobně jako PDF lze DJVU dokumenty spojovat do svazků a rozšiřovat o náhledy a hypertextové odkazy.
  • Na rozdíl od PDF je-li DJVU dokument otevíraný skrz URL, není nutno čekat na stažení všech stránek, ale stránky se načítají průběžně. Navíc, pokud má webserver pro HTTP/1.1 protokol volbu "byte serving" a podporuje ji také váš prohlížeč a nejrůznější proxy mezi vámi a serverem, tak lze přejít i na další stránky aniž by bylo nutno čekat až přijde řada na jejich stažení - browser si o ně řekně přednostně.


Asi nejjednodušším způsobem jak získat z elektronického dokumentu dokument djvu je použití aplikace djvudigital, ta však vyžaduje aby bylo v systému nainstalováno ghostscriptové rozšíření gsdjvu které bohužel nemá GPL licenci, tudíž není součástí distribučních balíků. Ovšem lze je bez problému stáhnout z CVS archívu a zkompilovat zvlášť.

Výchozí dokument pak vytiskneme do postscriptového či PDF souboru a ten pak převedeme do djvu