djvutxt (DjVuLibre)

Z thewoodcraft.org
Stránka byla naposledy editována 17.8.2023

Je konzolový nástroj pro rychlou extrakci elementů textové vrstvy u vícestránkových djvu dokumentů. Ten lze buď ukládat do souboru, nebo rourou předávat k dalšímu zpracování. Volbami lze pak ovlivnit kódování textu ve výstupu a to, zda bude vypsán čistý text, nebo vybrané oblasti včetně souřadnic.

Použití

djvutxt [volby] djvusoubor [výstup]

Volby

--page=<rozsah>

Nastavením rozsahu lze vymezit stránky se kterými se má pracovat. Stránky jsou určeny pořadovým číslem a odděleny čárkou ('1,3,5). Pokud má být zpracován souvislejší rozsah stránek, pak je mezi pořadovými čísly místo čárky pomlčka (6-10). Pořadí zpracování stránek lze obrátit tím, že se rozsah uvede v obráceném pořadí, tedy 10-1, bude zpracovávat stránky od desáté k první.

--detail=[page|column|region|para|line|word|char]

Není-li uveden žádný jiný --detail, automaticky se předpokládá že se mají vypsat znaky, bez specifikace oblasti. Tudíž výsledek je stejný jako by bylo pro detail uvedeno klíčové slovo char. V ostatních případech se kromě textu vypíše v S-syntaxi i vymezení příslušné oblasti

--escape

Tímto parametrem lze ovlivnit výstup, jak mají být zobrazovány netisknutelné znaky, které jsou ve výchozím stavu uloženy jako UTF-8

Příklady použití djvutxt

Nástroj lze využít při rychlém vyhledávání v uložených dokumentech. V následujícím příkladu mne zajímá, kde a v jakém kontextu se vyskytuje slovo Otehipwe v rosettaproject_ciw_book-3.djvu. Nejprve zkusím zjistit, jestli se zde vůbec toto slovo vyskytuje...

user@stroj:~$ djvutxt --detail=word rosettaproject_ciw_book-3.djvu | grep Otehipwe
         (word 148 960 429 1026 "Otehipwe") 
         (word 1450 128 1728 198 "Otehipwe") 

Výsledků není mnoho, takže si ho nechám vypsat celý řádek

user@stroj:~$ djvutxt --detail=line rosettaproject_ciw_book-3.djvu | grep Otehipwe
         "the Otehipwe language ever published. The compilation of it " ) 
         "the same as explained in the First Part of the Otehipwe &ram* " )