Im Beitrag „Die E-Book Hölle von InDesign CC 2014.1“ habe ich von einem Problem berichtet, dass InDesign CC 2014.1 (Version 10.1.0.71) die Auszeichnung vom ePub in einer Form umgewandelt wird, so dass bei der ePub zu Kindle Konvertierung jedes Bild auf der ganzen Bildschirmhöhe angezeigt wird. Dies sieht dann so aus:
Nach Durchsicht vieler Zeilen Quellcode und ein paar dutzend Tests, war es mir möglich eine Lösung für das Problem zu finden. Nachträglich gesehen ist diese sogar so banal und einfach, dass es schon lächerlich ist wie so ein Fehler die Herstellung eines Kindle E-Books unmöglich macht.
Zuerst muss das E-Book entpackt (siehe eCanCrusher) bzw. mit BBEdit, Oxygen XML oder Sigil direkt geöffnet werden. In der CSS-Datei muss nach den Einträgen mit Namensinhalt „idGenObjectAttribute“ gesucht werden. Mir sind bisher zwei Einträge aufgefallen:
img._idGenObjectAttribute-1 { height:100%; min-width:100%; width:100%; } div._idGenObjectAttribute-2 { height:100%; left:0%; overflow:hidden; position:absolute; top:0%; width:100%; }
Dabei gibt es einen Eintrag für Bilder sowie einen weiteren für interaktive Inhalte. Letzter ist nicht vorhanden wenn kein Interaktiver Inhalt verwendet wurde. Konkret geht es jeweils um die Zeile mit height:100%;. Sind Breite und Höhe mit Prozent als Maßeinheit zusammen angegeben, werden die Bilder verzerrt dargestellt sofern das Bild nicht dasselbe Seitenverhältnis wie der Bildschirm hat.
Es gibt zwei mir bekannte Möglichkeiten den Fehler zu beheben. Erstere ist height:100%; durch height: auto; zu ersetzen. Die zweite Möglichkeit wäre diese Zeile komplett zu löschen.
img._idGenObjectAttribute-1 { height:auto; min-width:100%; width:100%; } div._idGenObjectAttribute-2 { height:auto; left:0%; overflow:hidden; position:absolute; top:0%; width:100%; }
In meinen Beispielen wurde der Fehler überall behoben und die E-Books werden wieder richtig auf den Kindle-Geräten dargestellt. Allerdings bleibt die nach der Konvertierung entstehende mobi-Datei noch Fehlerhaft auf alten Kindle Geräten wie z.B. dem Ursprungsmodel der Kindle DX Serie. Dies ist bedingt durch die Tatsache, dass neuerdings für Containerelemente von InDesign aus, id’s für die Gestaltung verwendet werden sowie auch die Angabe mehrerer Klassen für dasselbe Element definiert ist. Mit Beiden haben ältere Kindle-Geräte oder Firmware-Versionen so ihre Probleme.