PDF2DJVU(1)

NAZWA
pdf2djvu - tworzy pliki DjVu z plików PDF

STRESZCZENIE

pdf2djvu [{-o | --output} plik-wyjściowy-djvu] [opcja...] plik-pdf...

pdf2djvu {-i | --indirect} plik-indeksowy-djvu [opcja...] plik-pdf...

pdf2djvu {--version | --help | -h}

OPIS

Program ten tworzy plik DjVu na podstawie jednego lub więcej plików w formacie Portable Document Format.

OPCJE

pdf2djvu przyjmuje następujące opcje:

  Typ dokumentu, nazwy plików

-o, --output=plik-wyjściowy-djvu
    Utwórz spakowany dokument wielostronicowy. Zapisz wynik do wyjściowego-pliku-djvu zamiast na standardowe wyjście.

-i, --indirect=indeksowy-plik-djvu
    Utwórz rozdzielony dokument wielostronicowy. Jako nazwy pliku indeksowego użyj pliku-indeksowego-djvu; pliki składowe umieść w tym samym katalogu. Katalog musi istnieć z prawami do zapisu.

--page-id-template=szablon
    Określa schemat nazewnictwa identyfikatorów stron. Opis języka szablonów znajduje się w rozdziale „JĘZYK SZABLONÓW”.

    Domyślny szablon to „p{page:04*}.djvu”.

    Aby umożliwić przenośność, identyfikatory stron:

        • muszą składać się tylko z małych liter ASCII, cyfr, znaków _, +, - i kropki,

        • nie mogą zaczynać się od znaku +, - ani kropki,

        • nie mogą zawierać dwóch kropek z rzędu,

        • muszą kończyć się rozszerzeniem .djvu lub .djv.

--page-id-prefix=prefiks
    Równoważność „--page-id-template=prefiks{page:04*}.djvu”.

--page-title-template=szablon
    Określa schemat tytułów stron. Opis języka szablonów znajduje się w rozdziale „JĘZYK SZABLONÓW”.

    Domyślny szablon to „{label}”.

--no-page-titles
    Nie ustawiaj tytułów stron.

  Rozdzielczość, wielkość strony

-d, --dpi=rozdzielczość
    Określa, że pożądaną rozdzielczością jest rozdzielczość punktów na cal. Domyślną wartością jest 300 dpi. Dopuszczalny zakres to: 72 ≤ rozdzielczość ≤ 6000.

--media-box
    Do określenia rozmiaru strony użyj MediaBox. Domyślnie używane jest CropBox.

--page-size=szerokośćxwysokość
    Określa, że preferowanym rozmiarem strony jest szerokość pikseli × wysokość pikseli. Faktyczny rozmiar strony może zostać zmieniony, by zachować proporcje obrazu i wymogi DjVu dot. rozdzielczości. (Ta opcja ma pierwszeństwo nad -d/--dpi.)

--guess-dpi
    Spróbuj odgadnąć pierwotną rozdzielczość poprzez ogląd osadzonych obrazów. Używać ostrożnie.

  Jakość obrazu

--bg-slices=n+...+n, --bg-slices=n,...,n
    Określa jakość kompresji warstwy tła IW44. Opcja ta jest podobna do opcji -slice programu c44. Szczegóły znajdują się w podręczniku c44(1). Domyślną wartością jest 72+11+10+10.

--bg-subsample=n
    Określa współczynnik podpróbkowania tła. Domyślną wartością jest 3. Dopuszczalne wartości to liczby całkowite od 1 do 12 włącznie.

--fg-colors=default
    Staraj zachować się wszystkie kolory pierwszego planu. Tak jest domyślnie.

--fg-colors=web
    Zredukuj kolory pierwszego planu do palety WWW (216 kolorów). Ta opcja nie jest zalecana.

--fg-colors=n
    Użyj GraphicsMagicka do zredukowania do n liczby różnych kolorów na pierwszym planie. Dopuszczalne wartości to liczby całkowite od 1 do 4080. Ta opcja nie jest zalecana.

--fg-colors=black
    Odrzuć informacje o kolorach pierwszego planu.

--monochrome
    Rastruj strony jako dwukolorowe bitmapy. W takim wypadku opcje --bg-... i --fg-... nie są respektowane.

--loss-level=n
    Określa agresywność kompresji stratnej. Domyślną wartością jest 0 (kompresja bezstratna). Dopuszczalne wartości to liczby całkowite od 0 do 200 włącznie. Opcja ta jest podobna do opcji -losslevel programu cjb2; szczegóły znajdują się w podręczniku cjb2(1) . Opcja ta może być używana tylko razem z opcją --monochrome.

--lossy
    Synonim --loss-level=100.

--anti-alias
    Włącz antyaliasing fontów i grafiki wektorowej. Ta opcja nie jest zalecana.

  Wyodrębnianie

--no-metadata
    Nie wyodrębniaj metadanych.

    Domyślnie:

        • Wyodrębniane są następujące hasła słownika informacji o dokumencie: Title, Author, Subject, Creator, Producer, CreationDate, ModDate. Zapisy daty i czasu są formatowane wg RFC 3999[1], z datą i czasem oddzielonymi pojedynczą spacją.

        • Metadane XMP są wyodrębniane (lub tworzone) i odpowiednio aktualizowane.

        Uwaga
        W przypadku wielu dokumentów wejściowych, tylko metadane pierwszego z nich są brane pod uwagę.

--verbatim-metadata
    Zachowaj oryginalne metadane bez zmian.

--no-outline
    Nie wyodrębniaj konspektu dokumentu.

--hyperlinks=border-avis
    Spraw, by ramki hiperłączy były zawsze widoczne.

    Domyślnie ramka hiperłącza jest widoczna tylko gdy nad nim znajduje się kursor myszki.

--hyperlinks=#RRGGBB
    Wymuś określony kolor ramki hiperłączy.

--no-hyperlinks, --hyperlinks=none
    Nie wyodrębniaj hiperłączy.

--no-text
    Nie wyodrębniaj tekstu.

--words
    Wyodrębniaj tekst. Zapisz położenia każdego słowa. Tak jest domyślnie.

--lines
    Wyodrębniaj tekst. Zapisz położenia każdej linii, a nie każdego słowa.

--crop-text
    Nie wyodrębniaj tekstu, który znajduje się poza granicami strony.

--no-nfkc
    Nie stosuj normalizacji NFKC[2], z wyjątkiem znaków z bloku Alfabetycznych Form Prezentacyjnych[3] (U+FB00–U+FB4F), które są normalizowane bezwarunkowo.

    Domyślnie normalizacja NFKC stosowana jest do wszystkich znaków.

--filter-text=linia-poleceń
    Przefiltruj tekst przez linię-poleceń. Dany filtr musi zachowywać białe znaki, znaki kontrole i cyfry dziesiętne.

    Opcja ta implikuje --no-nfkc.

-p, --pages=zakres stron
    Określa strony przeznaczone do konwersji. zakres-stron jest oddzielaną przecinkami listą podzakresów. Każdy podzakres to albo pojedyncza strona (np. 17), albo ciągły zakres stron (np. 37-42). Numery stron nie mogą się powtarzać. Strony numerowane są od 1.

    Domyślnie konwertowane są wszystkie strony.

  Wydajność

-j, --jobs=n
    Użyj n wątków do przeprowadzenia konwersji. Domyślnie używany jest jeden wątek.

-j0, --jobs=0
    Określ liczbę wątków używanych do przeprowadzenia konwersji automatycznie.

  Gadatliwość, pomoc

-v, --verbose
    Wyświetlaj więcej komunikatów informacyjnych podczas konwersji pliku.

-q, --quiet
    Nie wyświetlaj komunikatów informacyjnych podczas konwersji pliku.

--version
    Wyświetl informację o wersji i wyjdź.

-h, --help
    Wyświetl pomoc i wyjdź.

ŚRODOWISKO

Następujące zmienne środowiskowe mają wpływ na działanie pdf2djvu w systemach uniksowych:

OMP_*
    Zachowanie programu pod względem współbieżności można kontrolować za pomocą kilku zmiennych środowiskowych. Szczegóły opisane są w specyfikacji API OpenMP[4].

TMPDIR
    pdf2djvu intensywnie używa plików tymczasowych. Są one składowane w katalogu określonym przez tę zmienną. Domyślną wartością jest/tmp.

JĘZYK SZABLONÓW

  Składnia szablonów

Język szablonów jest z grubsza wzorowany na składni formatowania napisów w języku Python[5].

Szablon to kawałek tekstu zawierający pola, otoczone klamrami {}. Kiedy szablon jest wyliczany, pola zastępowane są odpowiednio sformatowanymi wartościami. Ponadto ciąg {{ jest zastępowany pojedynczym { a ciąg }} — pojedynczym }.

  Składnia pól

Każde pole składa się z nazwy zmiennej, po której opcjonalnie następuje przesunięcie, po którym opcjonalnie następuje specyfikacja formatu.

Przesunięcie jest liczbą całkowitą ze znakiem (tj. zaczynającą się znakiem + lub -).

Specyfikacja formatu składa się z dwukropka, po którym następuje specyfikacja szerokości.

Specyfikacja szerokości jest liczbą całkowitą definiującą minimalną szerokość pola. W przypadku braku definicji, szerokość zostanie określona na podstawie treści. Poprzedzenie specyfikacji szerokości zerem (0) powoduje dopełnianie zerami.

Po specyfikacji szerokości może opcjonalne nastąpić znak gwiazdki (*), który zwiększa minimalną szerokość pola do największej możliwej długości zawartości zmiennej.

  Dostępne zmienne

dpage
    Numer strony w dokumencie DjVu.

page, spage
    Numer strony w dokumencie PDF.

label
    Etykieta strony (logiczny numer strony) w dokumencie PDF.

    Ta zmienna jest dostępna tylko w tytułach stron.

SZCZEGÓŁY IMPLEMENTACJI

  Algorytm separacji warstw

Jeżeli nie użyto opcji --monochrome, pdf2djvu używa następującego naiwnego algorytmu separacji warstw:

    1. Dla każdej strony wykonaj co następuje:

        1. Zrastruj stronę do mapy pikseli w zwykły sposób.

        2. Zrastruj stronę do innej mapy pikseli, z pominięciem następujących elementów strony:

            • tekst,

            • obrazy rastrowe o głębokości 1 bit na piksel,

            • elementy wektorowe (oprócz wypełnień o dużej powierzchni).

        3. Porównaj obie mapy pikseli, piksel po pikselu:

            1. Jeżeli kolory się zgadzają, zaklasyfikuj piksel jako część warstwy tła.

            2. W przeciwnym wypadku, zaklasyfikuj piksel jako część pierwszego planu.

RAPORTY O BŁĘDACH

Błędy znalezione w pdf2djvu proszę zgłaszać w systemie śledzenia problemów[6] lub na liście dyskusyjnej[7].

ZOBACZ TEŻ

djvu(1), djvudigital(1), csepdjvu(1)

PRZYPISY

1.  RFC 3999
    https://www.ietf.org/rfc/rfc3339

2.  NFKC
    https://unicode.org/reports/tr15/

3.  bloku Alfabetycznych Form Prezentacyjnych
    https://unicode.org/charts/PDF/UFB00.pdf

4.  specyfikacji API OpenMP
    https://www.openmp.org/specifications/

5.  składni formatowania napisów w języku Python
    https://docs.python.org/2/library/string.html#format-string-syntax

6.  systemie śledzenia problemów
    https://github.com/jwilk/pdf2djvu/issues

7.  liście dyskusyjnej
    https://groups.io/g/pdf2djvu