Skenování knih pro tablety, čtečky a telefony se Scan Tailor

3. 4. 2012
Doba čtení: 5 minut

Sdílet

S nástupem elektronických čteček, tabletů, datových schránek a online úložišť dat se zvyšuje užitná hodnota elektronických dokumentů, často získaných skenováním. Ať už si je stáhneme z internetu nebo naskenujeme sami, jejich úprava je mnohdy nezbytná. V tom může výborně posloužit program Scan Tailor.

Mnoho lidí má dnes přístup ke skeneru. Například na naší univerzitě mají studenti zdarma k dispozici výkonný podnikový skener s možností ukládání na flash disk. Naskenování dvěstěstránkové knihy formátu A3 v kvalitě 600 DPI zabere přibližně 20 min. Výsledek má ovšem obvykle daleko k dokumentu vhodnému pro tisk či komfortnímu čtení na elektronickém zařízení. Ke zpracování takto získaných dat je určen program Scan Tailor. Scan Tailor je pokročilý nástroj, jehož zvládnutí ovšem může být poměrně zdlouhavé. Následující dvoudílný seriál by měl proces seznamování případnému zájemci urychlit.

V tomto díle dvoučlánkové minisérie popíši, jak připravit vstupní data pro Scan Tailor a jak je možné ještě vylepšit Scan Tailorem zpracovaný výstup. V příštím díle se seznámíme s ovládáním samotného Scan Tailoru.

Nejsem odborník na počítačovou grafiku ani na zpracování grafických dat. Článek vychází ze zkušeností, které jsem načerpal při převádění několika desítek knih do elektronické podoby. Je možné, že některé postupy, lze provést efektivněji, než jak je zde popisuji. Pokud nějaké vylepšení uvedete v diskusi pod článkem, splní tento seriál jeden z jeho hlavních záměrů. Také se předem omlouvám, použil-li jsem některé termíny (např. rozlišení, DPI nebo velikost) nepřesně — věřím, že smysl bude přesto pochopitelný.

Co je naším cílem

Nejprve si ukážeme, co můžeme očekávat.

[vstupni.pdf]: Příklad několika naskenovaných stran z mé oblíbené knihy, tak jak je vyprodukoval skener (skenoval jsem záměrně poněkud ledabyle, aby lépe vynikla práce Scan Tailoru).

[vystupni.pdf]: Verze upravená dále popisovaným postupem, přizpůsobená pro čtení na obrazovce. Testoval jsem na své čtečce PocketBook Pro 903 a v Linuxu, programem xpdf ze stejnojmenného balíku.

Příprava dat pro Scan Tailor

Začněme od úplného začátku — od skenování. Skener nastavuji vždy tak, aby skenoval v nejvyšší možné kvalitě, tj. aby při ukládání obrázků používal nejnižší kompresi a nejvyšší rozlišení (přesněji DPI). Velikost předlohy na skeneru nastavuji tak, aby spolehlivě pokryla zrcadlo textu rozevřené knihy. Vejde-li se rozevřená kniha na okno skeneru na výšku (tedy otočená o 90°), je výhodné skenovat knihu v této poloze — dráha skenovací hlavy je kratší a to urychlí celý proces. Výstup je možné obvykle směřovat do vícevrstvého TIFFu nebo do PDF. S TIFFem pořízeným naším univerzitním skenerem jsem měl problémy. Programy tiffsplit, imagemagick a gimp hlásily nekompatibilitu a jednotlivé vrstvy nedokázaly oddělit. Spokojil jsem se proto s PDF. Extrahování snímků z PDF provádím příkazem:

$ pdfimages -j soubor.pdf scan

z balíku poppler-utils.

Jsou-li obrázky ve formátu pbm, který Scan Tailor nepodporuje, převádím je programem convert z balíku imagemagick do formátu TIFF:

$ for i in *pbm; do convert $i -quality 100 ${i%.pbm}.tiff; done
$ rm *pbm

Pokud jsem při skenování nedodržel pořadí stránek, v tomto momentě soubory ručně uspořádám jejich přejmenováním. Dalším krokem je již spuštění Scan Tailoru, ale o tom až příště.

Vyrábíme PDF knihu

Výstupem Scan Tailoru je množina TIFF obrázků. Obvykle se jedná o jednotlivé strany skenované předlohy, ale mohou to být také obrázky dvoustran, pokud to bylo naším úmyslem.

Prvním krokem může být úprava barevnosti obrázků. Skenované snímky jsou mnohdy přesvícené a příkaz:

$ mogrify -auto-level *

vede k lepšímu výsledku. Především je to u nastavení volby „Equalize Illumination“ ve Scan Tailoru, kterou popíši v příštím díle. Ukázka obrázku před a po:

Stránka před úpravou barevnosti…

… a po ní.

Je-li předlohou kniha, časopis nebo jiný vícestránkový dokument, je výhodné seskupit stránky do souboru PDF. Vytvoření PDF provádím opět příkazem convert:

$ convert *tiff -density 72 vystup.pdf

Parametr -density akceptuje i reálná čísla. Volím ho podle toho, zda chci PDF číst na obrazovce nebo tisknout na papír.

Úprava dokumentu pro čtečku či tablet

Většinou výsledný soubor ukládám do své čtečky elektronických knih. Ta při nastavení zobrazení stránky 1:1 (zoom=100%) roztáhne předlohu tak, aby dokument vyplnil celou šířku, případně výšku obrazovky — tedy roztáhne dokument na celou obrazovku se zachováním poměru stran. Následně umí dokument zvětšovat nebo zmenšovat, ale pouze po 5% skocích. To není problém u PDF dokumentů obsahujících text s vektorovými fonty, ale u skenovaných dokumentů, jejichž stránky jsou tvořeny obrázky, to problém je, neboť dochází k deformaci textu.

Deformace textu při roztažení obrázku

Je proto potřeba, aby výsledné obrázky měly šířku nebo výšku stejnou jako rozlišení obrazovky. A jelikož Scan Tailor neumí nastavit velikost výstupních obrázků přesně podle zadaného rozlišení, pouze podle hodnoty DPI (to vede k tomu, že velikost výstupních obrázků se mění skokovitě), nedokážeme Scan Tailoru „říct“, aby připravil výstupní obrázky přesně pro naši čtečku.

Aby to bylo jasnější, uvedu konkrétní příklad. Nastavil-li jsem ve Scan Tailoru pro zvolenou stránku výstupní DPI na hodnotu 100, získaný TIFF měl rozlišení 686×945 bodů. Při hodnotě 101 DPI je to již 693×954 bodů. Nastavit tomuto konkrétnímu dokumentu výstupní velikost mezi uvedenými hodnotami ve Scan Tailoru nelze. Takže např. nedokážu u zvoleného dokumentu vytvořit přímo ve Scan Tailoru obrázek o šířce 690 bodů.

Řešení spočívá, jak jinak, v zmenšení obrázků příkazem mogrify:

$ mogrify -resize 828x1200 *tiff

Hodnota parametru -resize zde představuje rozlišení naší obrazovky.

Ještě malá poznámka: v případě, že by zařízení roztahovalo obrázky na celou obrazovku bez zachování poměru stran, bylo by potřeba přizpůsobit jak výšku tak šířku výsledných obrázků, aby nedošlo k deformaci. Pak lze k předchozímu přidat ještě jednu úpravu, roztažení plátna obrázku:

$ mogrify -extent "828x1200" -background white -gravity center *

Poslední úprava — již bez dalšího komentáře — která se může někdy hodit, je sloučení stran do dvojstran. K tomu slouží parametr append:

ict ve školství 24

$ convert levastranka.tiff pravastranka.tiff +append dvojstranka.tiff

Máte-li v adresáři levé a pravé stránky pojmenované tak, že při jeho výpisu následuje pravá stránka vždy po odpovídající stránce levé, je možné spojit dvojice hromadně z příkazové řádky např. takto:

$ COUNT=-1; for i in *; do COUNT=$(($COUNT + 1)) ; if [ $((10#$COUNT % 2)) -eq 0 ] ; then LEVASTRANKA=$i; continue; else convert $LEVASTRANKA $i -quality 100 +append dvojstrana-${COUNT}.tiff ; fi; done

Příště

Dnes jsme si naskenovali a připravili data pro samotnou práci s programem Scan Tailor. Za týden si ukážeme, jak se s programem pracuje.

Autor článku