Calibre - das E-Book Multi-Tool - das große Handbuch (German Edition)
Programmiersprache „Python“ verfasst. Es werden Informationen aus E-Books ausgelesen, verarbeitet und dann als Zeichenfolge in Unicode dargestellt. Funktionen, die hier definiert werden, können genauso in Vorlagen verwendet werden wie die bereits integrierten Funktionen.
Jede hier erstellte Funktion beginnt mit „evaluate“ und benötigt die hier dargestellte Signatur:
evaluate(self, formatter, kwargs, mi, locals, your parameters) → returning a unicode string
Die „evaluate“-Funktion beinhaltet die folgenden Parameter:
„ formatter “: die Instanz, die das aktuelle Template überprüft, kann auch einen rekursiven (sich selbst startenden) Prozess daraus machen
„ kwargs “: das Lexikon für Metadaten, in dem die Werte der Felder verzeichnet sind
„ mi “: eine Metadaten-Instanz, die Informationen aus Feldern bezieht. Der Parameter kann „None“ betragen, wenn andere als Bücher-Templates geprüft werden.
„ locals “: die lokalen Variablen, die vom jeweils verwendeten Template-Programm vergeben werden
„ your parameters ”: Sie müssen einen oder mehrere formale Parameter einsetzen. Die Anzahl der Parameter muss danach unter „arg count:“ notiert werden. Einzige Ausnahme: wenn Sie „-1“ als Einstellung für eine variable Anzahl von Argumenten verwenden. In diesem Fall muss als letztes Argument „*args“ eingesetzt werden. Wie gesagt müssen Sie mindestens einen Parameter verwenden, i. d. R. handelt es sich dabei um den Wert des Feldes, um das es geht. Im Basic-Template-Modus wird das erste Argument nicht vom Benutzer, sondern von der Formatierungsvorlage gestellt.
Hier ein Beispiel für eine Template-Funktion. Diese überprüft den Wert eines Feldes. Wenn das Feld einen Inhalt hat, wird der Wert ausgegeben. Wenn es leer ist wird EMPTY ausgegeben.
name: my_ifempty
arg count: 1
doc: my_ifempty(val) -- return val if it is not empty, otherwise the string 'EMPTY'
program code:
def evaluate(self, formatter, kwargs, mi, locals, val):
if val:
return val
else:
return 'EMPTY'
Diese Funktion kann unter allen drei verfügbaren Template-Programm-Modi verwendet werden.
Single-Function Mode: {tags:my_ifempty()}
Template Program Mode: {tags:'my_ifempty($)'}
General Program Mode: program: my_ifempty(field('tags'))
„ Funktion “: Wählen Sie hier eine gewünschte Funktion aus. In der „Dokumentation“ wird der Zweck der Funktion beschrieben. Sie können hier auch einen Namen für eine neue Funktion eingeben.
„ Argument Count “: Hier wird die Anzahl der verwendeten Argumente angezeigt, bzw. eingegeben, wenn Sie eine eigene Funktion erstellen.
„ Programm Code “: Hier wird der Code einer Funktion angezeigt. Das Feld lässt sich nur bei selbst erstellten Funktionen editieren. Nach dem Einfügen des Programmcodes wird die Syntax per Klick auf „Erstellen“ überprüft und entweder akzeptiert oder eine Fehlerbeschreibung ausgegeben.
„ Löschen “ (1): Der erste Löschen-Button sorgt nur dafür, dass eine ausgewählte Funktion wieder „abgewählt“ wird. Sie wird aber nicht tatsächlich aus der Liste gelöscht.
„ Löschen “ (2): Mit dem zweiten Button können Sie Funktionen komplett aus der Liste löschen. Voraussetzung ist, dass Sie diese selbst erstellt haben. Die voreingetragenen Funktionen können nicht entfernt werden.
Detaillierte Informationen zur Calibre Vorlagensprache finden Sie im englischen Handbuch unter trbx.me/cm-templang .
Teil 6 - Weitere Tipps & Tricks
Calibres Probleme mit PDF-Dateien
Dies ist ein recht heikles Kapitel, das schon vielen Calibre-Nutzern Kopfzerbrechen bereitet hat. Das liegt daran, dass PDF-Dokumente sich grundsätzlich von „echten“ E-Book-Formaten unterscheiden, weil sie eine feste Seitengröße aufweisen und der Text im Dokument verankert ist. Bei einer Konvertierung aus PDF in ein anderes Format muss Calibre also versuchen zu „erahnen“, wo sich im Text Absätze befinden und ob ein Zeilenumbruch Sinn macht oder nicht.
In die umgekehrte Richtung ist es wiederum kein Problem, weil Calibre basierend auf Ihren Einstellungen für das Zieldokument den Fließtext innerhalb der Seitenränder umbricht. Absätze sind auch fest vorgegeben.
Erschwerend kommt dazu, dass PDF-Dokumente häufig Text im Header und Footer aufweisen, die man zwar mit Hilfe von „regulären Ausdrücken“ entfernen
Weitere Kostenlose Bücher