# &p; Handbuch

&p;

1 &version;

&p;

Erzeugt DjVu-Dateien aus PDF-Dateien

    &p;   -o --output  Ausgabe-DjVu-Datei
    Option PDF-Datei

    &p;   -i --indirect  Index-DjVu-Datei  Option PDF-Datei

    &p;  --version --help -h

## Beschreibung

Dieses Programm erzeugt eine DjVu-Datei aus einer oder mehreren Portable-Document-Format-Dateien.

## Optionen

`&p;` akzeptiert die folgenden Optionen:

### Dokumenttyp, Dateinamen

`-o`

`--output=``Ausgabe-DjVu-Datei```

- generiert ein gebündeltes mehrseitiges Dokument; schreibt die Ausgabe in eine ``Ausgabe-DjVu-Datei`` anstatt auf die Standardausgabe

`-i`

`--indirect=``Index-DjVu-Datei```

- erstellt ein indirekt mehrseitiges Dokument; benutzt ``Index-DjVu-Datei`` als Indexdateinamen; legt die Komponentendateien im gleichen Verzeichnis ab. Das Verzeichnis muss existieren und beschreibbar sein.

`--page-id-template=`Schablone``

- gibt das Namesschema für Seitenbezeichner an. Lesen Sie den Abschnitt template-language.title für die Sprachbeschreibung der Schablone.

  Die Vorgabeschablone ist `p{page:04*}.djvu`.

  Aus Portierbarkeitsgründen gilt für Seitenbezeichner:

  - Sie dürfen nur aus kleingeschriebenen ASCII-Buchstaben, Ziffern, `_`, `+`, `-` und Punkten bestehen,

  - sie dürfen nicht mit `+`, `-` oder einem Punkt beginnen,

  - sie dürfen keine zwei aufeinanderfolgenden Punkte enthalten,

  - sie müssen die Dateiendung `.djvu` oder `.djv` haben.

`--page-id-prefix=`Präfix``

- Entspricht `--page-id-template=`Präfix`{page:04*}.djvu`.

`--page-title-template=`Schablone``

- gibt die Schablone für Seitentitel an. Lesen Sie den Abschnitt template-language.title für die Sprachbeschreibung der Schablone.

  Die Vorgabeschablone ist `{label}`.

`--no-page-titles`

- setzt keine Seitentitel

### Auflösung, Seitengröße

`-d`

`--dpi=`Auflösung``

- gibt die gewünschte Auflösung in `Auflösung` Punkten pro Zoll an. Die Vorgabe ist 300 dpi. Der erlaubte Bereich ist: 72 ≤ `Auflösung` ≤ 6000.

`--media-box`

- Benutzen Sie MediaBox, um die Seitengröße festzulegen. Standardmäßig wird CropBox benutzt.

`--page-size=`Breite`x`Höhe``

- gibt die bevorzugte Seitengröße als `Breite` Bildpunkte x `Höhe` Bildpunkte an. Die tatsächliche Seitengröße könnte verändert werden, um das Seitenverhältnis und die DjVu-Einschränkungen für die Auflösung zu berücksichtigen. (Diese Option hat Vorrang gegenüber `-d`/`--dpi`.)

`--guess-dpi`

- versucht die native Auflösung durch Untersuchen der eingebetteten Bilder abzuschätzen. Verwenden Sie dies mit Vorsicht.

### Bildqualität

`--bg-slices=`n`+`…`+`n``

`--bg-slices=`n`,`…`,`n``

- gibt die Kodierungsqualität für die IW44-Hintergrundebene an. Diese Option ist der Option `-slice` des Befehls `c44` ähnlich. Sehen Sie die Handbuchseite

  c44

  1 ein, um Einzelheiten zu erfahren. Die Vorgabe ist `72+11+10+10`.

`--bg-subsample=`n``

- gibt das Verhältnis der Hintergrund-Unterabtastung (subsampling) an. Vorgabe ist 3. Gültige Werte sind Ganzahlen von 1 bis einschließlich 12.

`--fg-colors=default`

- versucht, alle Vordergrundebenenfarben zu bewahren. Dies ist die Vorgabe.

`--fg-colors=web`

- reduziert Vordergrundebenenfarben auf die Web-Palette (216 Farben). Diese Option wird nicht empfohlen.

`--fg-colors=`n``

- benutzt GraphicsMagick, um die Anzahl verschiedener Farben in der Vordergrundebene auf `n` zu reduzieren. Gültige Werte sind Ganzzahlen zwischen 1 und 4080. Diese Option wird nicht empfohlen.

`--fg-colors=black`

- jede Farbinformation der Vordergrundebene verwerfen

`--monochrome`

- Seiten als einfarbige Bitmaps berechnen und ausgeben. Mit dieser Option werden die Optionen `--bg-`…`` und `--fg-`…`` nicht berücksichtigt.

`--loss-level=`n``

- gibt die Aggressivität der verlustbehafteten Komprimierung an. Vorgabe ist 0 (verlustfrei). Gültige Werte sind Ganzahlen von 0 bis einschließlich 200. Diese Option ähnelt der Option `-losslevel` von `cjb2`. Sehen Sie die Handbuchseite

  cjb2

  1 ein, um weitere Einzelheiten zu erfahren. Diese Option kann nur benutzt werden, falls auch die Option `--monochrome` aktiviert ist.

`--lossy`

- Synonym für `--loss-level=100`

`--anti-alias`

- aktiviert Schrift- und Vektor-Kantenglättung. Diese Option wird nicht empfohlen.

### Auszug

`--no-metadata`

- die Metadaten nicht herausziehen

  Standardmäßig:

  - Die folgenden Einträge des Dokumentinformations-Wörterbuchs werden extrahiert: `Title`, `Author`, `Subject`, `Creator`, `Producer`, `CreationDate`, `ModDate`. Zeitstempel werden entspechend RFC 3999 mit Datums- und Zeitbestandteilen, getrennt durch ein einzelnes Leerzeichen, formatiert.

  - Die XMP-Metadaten werden extrahiert (oder erzeugt) und dementsprechend aktualisiert.

  Wenn mehrere Eingabedokumente ausgewählt wurden, werden nur Metadaten des ersten Dokumentes berücksichtigt.

`--verbatim-metadata`

- die Original-Metadaten intakt lassen

`--no-outline`

- die Dokumentenübersicht nicht extrahieren

`--hyperlinks=border-avis`

- Ränder von Querverweisen immer sichtbar machen

  Standardmäßig sind die Ränder eines Querverweises nur sichtbar, wenn die Maus darüber steht.

`--hyperlinks=#`RRGGBB``

- die angegebene Randfarbe für Querverweise erzwingen

`--no-hyperlinks`

`--hyperlinks=none`

- Querverweise nicht extrahieren

`--no-text`

- den Text nicht extrahieren

`--words`

- den Text extrahieren; die Position jedes Wortes aufzeichnen. Dies ist die Vorgabe.

`--lines`

- den Text extrahieren; die Position jeder Zeile statt jedes Wortes aufzeichnen

`--crop-text`

- keinen Text außerhalb des Seitenrands extrahieren

`--no-nfkc`

- Wenden Sie NFKC nicht an, um den Text in Normalform zu bringen, außer für Zeichen des Unicodeblock Alphabetische Präsentationsformen (U+FB00–U+FB4F), die bedingungslos normalisiert werden.

  Standardmäßig wird NFKC-Normalisierung auf alle Zeichen angewandt.

`--filter-text=`Befehlszeile``

- den Text über die `Befehlszeile` filtern. Der bereitgestellte Filter muss Leerräume, Steuerzeichen und dezimale Ziffern bewahren.

  Diese Option impliziert `--no-nfkc`.

`-p`

`--pages=`Seitenbereich``

- gibt die Seiten an, die umgewandelt werden. `Seitenbereich` ist eine durch Kommas getrennte Liste von Unterbereichen. Jeder Unterbereich ist entweder eine einzelne Seite (z.B. `17`) oder ein Bereich zusammenhängender Seiten (z.B. `37-42`). Doppelte Seitennummmern sind nicht erlaubt. Seiten werde mit 1 beginnend nummeriert.

  Standardmäßig werden alle Seiten umgewandelt.

### Leistungsfähigkeit

`-j`

`--jobs=`n``

- benutzt `n` Threads, um die Umwandlung durchzuführen. Standardmäßig wird ein Thread benutzt.

`-j0`

`--jobs=0`

- legt automatisch fest, wieviele Threads für die Umwandlung benutzt werden

### Detailgrad, Hilfe

`-v`

`--verbose`

- während der Umwandlung der Datei weitere informative Nachrichten anzeigen

`-q`

`--quiet`

- während der Umwandlung der Datei keine informativen Nachrichten anzeigen

`--version`

- die Versionsinformationen ausgeben und beenden

`-h`

`--help`

- Hilfe anzeigen und beenden

## Umgebung

Die folgenden Umgebungsvariablen beeinflussen `&p;` auf Unix-Systemen:

`OMP_`*``

- Einzelheiten des Verhaltens zur Laufzeit, die Parallelisierung berücksichtigen, können durch mehrere Umgebungsvariablen gesteuert werden. Bitte sehen Sie in die OpenMP-API-Spezifikation, um Einzelheiten zu erfahren.

`TMPDIR`

- `&p;` macht stark von temporären Dateien Gebrauch. Es wird sie in dem durch diese Variable angegebenen Verzeichnis speichern. Vorgabe ist `/tmp`.

## Schablonensprache

### Schablonensyntax

Die Schablonensprache ist ungefähr wie die Phyton-Zeichenkettenformatierungssyntax aufgebaut.

Eine Schablone ist ein Textteil, der Felder enthält, die von geschweiften Klammern `{``}` eingeschlossen werden. Felder werden durch entsprechend formatierte Werte ersetzt, wenn die Schablone ausgewertet wird. Außerdem werden `{{` durch eine einzelne `{` und `}}` durch eine einzelne `}` ersetzt.

### Feldsyntax

Jedes Feld besteht aus einem Variablennamen, wahlweise gefolgt von einer Verschiebung, der wiederum wahlweise eine Formatangabe folgt.

Die Verschiebung ist eine vorzeichenbehaftete (d.h. sie beginnt mit einem `+` oder `-`) Ganzzahl.

Die Formatangabe besteht aus einem Doppelpunkt gefolgt von einer Breitenangabe.

Die Breitenangabe ist eine dezimale Ganzzahl, die die Mindestbreite eines Feldes angibt. Falls sie nicht angegeben wird, wird die Feldbreite durch den Inhalt bestimmt. Wird der Breitenangabe eine Null (`0`) vorangestellt, wird Auffüllen mit Nullen aktiviert.

Der Breitenangabe folgt wahlweise ein Sternchen (`*`), das die Mindestbreite des Feldes auf die Breite des größtmöglichen Inhalts der Variable erhöht.

### Verfügbare Variablen

`dpage`

- Seitenzahl im DjVu-Dokument

`page`

`spage`

- Seitenzahl im PDF-Dokument

`label`

- Seitebeschriftung (logische Seitennummer) im PDF-Dokument

  Diese Variable ist nur für Seitentitel verfügbar.

## Implementierungseinzelheiten

### Ebenen-Aufteilungsalgorithmus

Außer wenn die Option `--monochrome` aktiviert ist, benutzt &p; den folgenden naiven Ebenen-Aufteilungsalgorithmus:

1. für jede Seite das Folgende tun:

   1. die Seite auf die übliche Weise in eine Rastergrafik rastern

   2. die Seite in eine Rastergrafik rastern und die folgenden Seitenelemente weglassen:

      - Text

      - 1 Bit-pro-Bildpunkt-Rasterbilder

      - Vektorelemente (außer Füllungen großer Bereiche)

   3. beide Rastergrafiken Bildpunkt für Bildpunkt vergleichen:

      1. Falls ihre Farben passen, werden die Bildpunkte als Teil der Hintergrundebene eingestuft.

      2. Andernfalls werden die Bildpunkte als Teil der Vordergrundebene eingestuft.

## Fehlerberichte

Falls Sie einen Fehler in &p; finden, berichten Sie ihn bitte auf Englisch an die Problemverfolgung oder an die Maillingliste.

## Siehe auch

djvu

1 ,

djvudigital

1 ,

csepdjvu

1