djvused (DjVuLibre)

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

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

PoznámkaPomocí 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

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.

Příklad

Šablona:Linux:userdjvused 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.

Šablona:Pozn

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.

Příklad

Šablona:Linux:userdjvused 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.

Příklad

Šablona:Linux:userdjvused soubor.djvu -e 'select 3; print-txt'

Vytažení anotací
Příklad

Šablona:Linux:userdjvused soubor.djvu -e 'select 1; print-ant'

Záloha/obnova textové vrstvy
Příklad

Šablona:Linux:userdjvused soubor.djvu -e 'output-all' > soubor.dsed


Příklad

Šablona:Linux:userdjvused soubor.djvu -f soubor.dsed -s

Vytažení djvu stránky
Příklad

Šablona:Linux:userdjvused 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

Příklad

Šablona:Linux:userdjvused 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.

Příklad

Šablona:Linux:userdjvused 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

Příklad

Šablona:Linux:userdjvused 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.

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

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.