djvused (DjVuLibre)

From DCEwiki
Jump to: navigation, search

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í[edit]

djvused [volby] djvusoubor

Volby[edit]

-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[edit]

Poznámka Pomocí utility djvused lze naimportovat do textové vrstvy DjVu souboru prakticky libovolný obsah, pokud vyhovuje LISP syntaxi. Ovšem takový soubor pak nelze dodatečně zpracovat pomocí aplikace djvusmooth, která provádí nejenom kontrolu syntaxe, ale také zjišťuje validitu kódu textové vrstvy.
set remove output print
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[edit]

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[edit]

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.

Poznámka

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.

Poznámka Ostatní informace o struktuře dokumentu lze získat příkazem djvudump.
Vytažení neviditelné textové vrstvy[edit]

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.

Poznámka

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.

Poznámka

user@stroj:~$ djvused soubor.djvu -e 'select 3; print-txt'

Vytažení anotací[edit]
Poznámka

user@stroj:~$ djvused soubor.djvu -e 'select 1; print-ant'

Záloha/obnova textové vrstvy[edit]
Poznámka

user@stroj:~$ djvused soubor.djvu -e 'output-all' > soubor.dsed


Poznámka

user@stroj:~$ djvused soubor.djvu -f soubor.dsed -s

Vytažení djvu stránky[edit]
Poznámka

user@stroj:~$ djvused soubor.djvu -e 'select 5; save-page' p05.djvu

Vytvoření náhledů[edit]

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

Poznámka

user@stroj:~$ djvused soubor.djvu -e 'set-thumbnails 64' -s

Příkazy pro djvused[edit]

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[edit]

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[edit]

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.

Poznámka

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[edit]

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

Poznámka

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[edit]

select [ identifikátor_souboru ]

select-shared-ant

Sdílená metadatová vrstva[edit]

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.

Upozornění 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:
  1. Nejprve svazek převést z pevného svazku (bundle) na volný (indirect),
  2. a pak postupně všechny stránky prostřednictvím utility djvuextract rozebrat na jednotlivé vrstvy
  3. a z těch pomocí djvumake znovu sestavit DjVu stránky, ovšem již bez nastavení INCL na soubor sdílených metadat.
Různé příkazy[edit]

help

n

size

Příkazy pro práci s textem a poznámkami[edit]

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[edit]

print-outline

set-outline

Příkazy pro práci s náhledy[edit]

set-thumbnails velikost_v_pixlech

remove-thumbnails

Příkazy pro uložení[edit]

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[edit]

Použitelná u dsed skriptů.

Omezení[edit]

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.