Difference between revisions of "djvused (DjVuLibre)"

From DCEwiki
Jump to: navigation, search
m (Vylistování obsahu DjVu dokumentu)
m (Obsah DjVu dokumentu)
Line 157: Line 157:
 
Nástroj [[djvused (DjVuLibre)|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
 
Nástroj [[djvused (DjVuLibre)|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''' - vypíše nejenom přehled všech stránek, které DjVu dokument obsahuje, včetně jejich velikosti, ale i jejich alternativní názvy, jsou-li nastaveny
+
====== 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 svazek.djvu -e ls
+
{{Příklad|1=
 +
<div style="background-color:#f0fff0;font-family:monospace;">
 +
{{Linux:user}}[[djvused (DjVuLibre)|djvused]] ''soubor.djvu'' -e ls
 
     1 P    22076  p0000.djvu T=Alternativní název strany číslo jedna
 
     1 P    22076  p0000.djvu T=Alternativní název strany číslo jedna
 
       A      126  shared_anno.iff
 
       A      126  shared_anno.iff
 
     2 P    9480  p0001.djvu
 
     2 P    9480  p0001.djvu
 
       …
 
       …
 +
</div>
 +
}}
  
'''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, ovšem bez názvů stránek vrací příkaz [[djvudump (DjVuLibre)|djvudump]]
+
====== 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, ovšem bez názvů stránek vrací příkaz [[djvudump (DjVuLibre)|djvudump]]
  
Pro srovnání uvádím dva ukázkové výpisy:
+
Pro srovnání uvádím ukázkové výpisy pro obě varianty:
  
user@stroj:~$ djvused soubor.djvu -e dump
+
{{Příklad|1=
  FORM:DJVM [128]  
+
<div style="background-color:#f0fff0;font-family:monospace;">
    DIRM [27]        Document directory (bundled, 1 files 1 pages)
+
{{Linux:user}}[[djvused (DjVuLibre)|djvused]] ''soubor.djvu'' -e dump
    FORM:DJVU [80] {black.djvu} [P1] (Alternativní název strany)
+
  FORM:DJVM [128]  
      INFO [10]        DjVu 1000x1000, v24, 300 dpi, gamma=2.2
+
    DIRM [27]        Document directory (bundled, 1 files 1 pages)
      Sjbz [50]        JB2 bilevel data
+
    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
 +
</div>
  
user@stroj:~$ djvudump soubor.djvu
+
<div style="background-color:#f0fff0;font-family:monospace;">
  FORM:DJVU [80]  
+
{{Linux:user}}[[djvudump (DjVuLibre)|djvudump]] ''soubor.djvu''
    INFO [10]        DjVu 1000x1000, v24, 300 dpi, gamma=2.2
+
  FORM:DJVU [80]  
    Sjbz [50]        JB2 bilevel data
+
  INFO [10]        DjVu 1000x1000, v24, 300 dpi, gamma=2.2
 +
  Sjbz [50]        JB2 bilevel data
 +
</div>
 +
}}
  
 
===== Příkazy pro výběry =====
 
===== Příkazy pro výběry =====

Revision as of 15:57, 21 December 2017

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á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

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.

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

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

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

Záloha/obnova textové vrstvy
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
Poznámka

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

Poznámka

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.

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

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, ovšem bez názvů stránek vrací příkaz djvudump

Pro srovnání uvádím ukázkové výpisy pro obě varianty:

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

user@stroj:~$ djvudump soubor.djvu

 FORM:DJVU [80] 
  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

create-shared-ant

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.