djvused (DjVuLibre)
Aplikace djvused je silný konzolový nástroj pro práci s obsahem vícestránkových djvu dokumentů. Lze jej použít pro psaní či úpravu poznámek, skryté textové vrstvy, přípravu náhledů stránek, atd. Funguje tak, že nejprve načte djvu soubor a pak postupně vykonává předávané příkazy.
Tyto příkazy lze předat načtením ze souboru s odpovídající syntaxí (je-li takový soubor pomocí parametru -f určen), přímo z příkazové řádky (skrze parametr -e) nebo je zadávat interaktivně.
Použití
djvused [volby] djvusoubor
Volby
-v
- Volba způsobí že djvused vypisuje při zpracování podrobnou zprávu o tom co který příkaz dělá. Tato volba je zvláště užitečná pro debugování skriptů pro djvused, ale také při interaktivním zadávání příkazů pro djvused přímo na standardním vstupu.
-f /cesta/k/souboru_se_skriptem
- Příkazy jsou načteny ze souboru s odpovídající syntaxí příkazů
-e 'sada příkazů'
- Tato volba zajistí předání odpovídající sady příkazů přímo z příkazové řádky, není tedy nutné je mít uvedeny přímo v souboru se skriptem. Aby bylo zabráněno nežádoucí expanzi na příkazovém řádku, je třeba sadu příkazů uzavřít do jednoduchých uvozovek.
-s
- Tato volba zajistí uložení změn po vykonání příslušných příkazů. Co do funkčnosti odpovídá volbě save při přímé editaci.
-n
- Způsobí, že jsou editační příkazy prováděny "nasucho", bez toho aniž by došlo k jejich uložení. Tato volba je zvláště užitečná pro debugování skriptů pro djvused, bez toho aniž by docházelo k přepsání djvu souboru na disku.
Syntaxe pro djvused
set | remove | output | ||
---|---|---|---|---|
meta | x | x | - | x |
page-title | x | - | - | - |
outline | x | x | - | - |
thumbnails | x | x | - | - |
ant | x | x | x | x |
txt | x | x | x | x |
ls | vypíše seznam všech stránek |
---|---|
n | vypíše celkový počet stránek v dokumentu |
dump | vypíše dekomprimovaný obsah IFF souboru (stejný efekt jako má utilita djvudump) |
size | vypíše jaké jsou rozměry vybrané stránky v pixlech. Není-li vybraná žádná stránka vypíš postupně tento údaj pro všechny |
select <id> | vybere stránku podle jejího id (číslo v prvním sloupci výpisu příkazu ls). Není-li uvedeno žádné id vybere kořen dokumentu |
select-shared-ant | vybere stránku pro skryté poznámky |
showsel | vypíše informaci o aktuálně vybrané stránce |
Příklady použití djvused
Aplikaci djvused lze využívat mnoha způsoby, zde je několik příkladů jakým způsobem ji lze použít při zpracování djvu souborů.
Zjištění velikosti stránky
Výstup z příkazu size vrací šířku a výšku zvolené stránky v pixelech a také stav rotace, je-li nastavena. Příklad demonstruje vytažení informace o rozměrech a rotaci třetí stránky z dokumentu soubor.djvu.
user@stroj:~$ djvused soubor.djvu -e 'select 3; size' width=4960 height=7016 rotation=1 |
Pokud není uvedena konkrétní stránka, budou vypsány rozměry a informace ke všem stránkám dokumentu soubor.djvu.
Ostatní informace o struktuře dokumentu lze získat příkazem djvudump. |
Vytažení neviditelné textové vrstvy
Výstup příkazu print-pure-txt vrací čistě textový obsah skryté textové vrstvy DjVu dokumentu. Řádky a stránky jsou odděleny obvyklými kontrolními znaky.
user@stroj:~$ djvused soubor.djvu -e 'print-pure-txt' |
Příkaz print-txt poskytuje podrobnější výstup, jehož syntaxe odpovídá syntaxi popsané v kapitole Textová vrstva DjVu dokumentu. Pro každý element jsou mimo textového obsahu uvedeny také jeho souřadnice vůči stránce. V příkladu lze vidět jak vytáhnout podrobnou strukturu textové vrstvy pro stránku 3.
user@stroj:~$ djvused soubor.djvu -e 'select 3; print-txt' |
Vytažení anotací
user@stroj:~$ djvused soubor.djvu -e 'select 1; print-ant' |
Záloha/obnova textové vrstvy
user@stroj:~$ djvused soubor.djvu -e 'output-all' > soubor.dsed |
user@stroj:~$ djvused soubor.djvu -f soubor.dsed -s |
Vytažení djvu stránky
user@stroj:~$ djvused soubor.djvu -e 'select 5; save-page' p05.djvu |
Vytvoření náhledů
Náhledy, které se později mohou zobrazit ve čtečce DjVu souborů se vytváří pomocí příkazu set-thumbnails. Následující příklad vygeneruje náhledy o velikosti 64x64 pixelů pro všechny stránky souboru soubor.djvu
user@stroj:~$ djvused soubor.djvu -e 'set-thumbnails 64' -s |
Příkazy pro djvused
Při spouštění djvused se může (ale nemusí) předat jeden i více příkazů případně komentář. Jednotlivé příkazy musí být odděleny středníkem ;
. Za komentář je považováno vše co začíná mřížkou #
až do konce aktuálního řádku.
Obsah DjVu dokumentu
Nástroj djvused je nejspolehlivějším a zároveň i velice svižným nástrojem pro získání informací o aktuálním obsahu DjVu dokumentu
ls
Vypisuje nejenom přehled všech stránek, které DjVu dokument obsahuje – včetně jejich velikosti, ale i jejich alternativní názvy, jsou-li nastaveny.
user@stroj:~$ djvused soubor.djvu -e ls 1 P 22076 p0000.djvu T=Alternativní název strany číslo jedna A 126 shared_anno.iff 2 P 9480 p0001.djvu … |
dump
Vypisuje celou strukturu DjVu dokumentu, což dává přehled o použitých vrstvách jednotlivých stránek, jejich rozměrech, množství řezů, atp. Podobný výpis u vícestránkových dokumentů vrací také djvudump
user@stroj:~$ djvused soubor.djvu -e dump FORM:DJVM [128] DIRM [27] Document directory (bundled, 1 files 1 pages) FORM:DJVU [80] {black.djvu} [P1] (Alternativní název strany) INFO [10] DjVu 1000x1000, v24, 300 dpi, gamma=2.2 Sjbz [50] JB2 bilevel data |
Příkazy pro výběry
select [ identifikátor_souboru ]
select-shared-ant
Sdílená metadatová vrstva
V nově vytvořeném DjVU svazku sdílená metadatová vrstva neexistuje. Má-li tedy DjVu svazek nějaká sdílená metadata mít, je nutné tuto vrstvu nejprve vytvořit:
create-shared-ant - vytvoří sdílenou metadatovou vrstvu s názvem shared_ant.iff
a do všech stránek přidá vrstvu INCL, která na ni bude odkazovat.
Jakmile má DjVu svazek nějakou sdílenou metadatovou vrstvu, nelze ji žádným jednoduchým způsobem odstranit! Existuje pouze jediný způsob jak se to dá udělat. A to:
|
Různé příkazy
help
n
size
Příkazy pro práci s textem a poznámkami
print-pure-txt
print-txt
remove-txt
set-txt [ soubor_s_dsed_skriptem ]
output-txt
print-ant
print-merged-ant
remove-ant
set-ant
output-ant
print-meta
set-meta [ soubor_s_dsed_skriptem_pro_metainformace ]
output-all
Příkazy pro práci se záložkami
print-outline
set-outline
Příkazy pro práci s náhledy
set-thumbnails velikost_v_pixlech
remove-thumbnails
Příkazy pro uložení
save
save-bundled jméno_souboru
save-indirect jméno_souboru
save-page jméno_souboru
save-page-with jméno_souboru
Syntaxe pro DjVu soubory
Použitelná u dsed skriptů.
Omezení
Současná verze djvused umožňuje práci buď s jedinou vybranou stránkou v DjVu dokumentu, nebo s celým dokumentem. Nelze provádět výběry několika stran.