Das EPUB-Format vereint eine Reihe verschiedener Spezifikationen / Formate:
- man kann sagen, wie der Inhalt des Buches aussehen soll (eine Teilmenge von XHTML 1.1 + CSS)
- eine, um ein "Manifest" zu definieren, das alle Dateien auflistet, aus denen dieser Inhalt besteht (OPF, eine XML-Datei)
- eine, um zu definieren, wie alles verpackt ist (OEBPS: eine Zip-Datei von allem im Manifest plus ein paar zusätzliche Dateien)
Die Spezifikationen sehen ein bisschen entmutigend aus, aber sobald Sie die Grundlagen (Entpacken, Parsen von XML) kennen, ist es nicht besonders schwierig oder komplex.
Sie müssen herausfinden, wie Sie das EPUB herunterladen, irgendwo entpacken, das Manifest analysieren und dann den relevanten Inhalt anzeigen können.
Einige Hinweise, wenn Sie gerade erst anfangen:
Um Inhalte anzuzeigen, verwenden Sie zunächst ein UIWebView
.
Hier ist eine Schritt-für-Schritt-Anleitung für Ihren Code:
1) Erstellen Sie eine Ansicht mit a UIWebView
2) Laden Sie die EPUB-Datei herunter
3) Entpacken Sie es mithilfe der oben verlinkten Zip-Bibliothek in ein Unterverzeichnis im Dokumentenordner Ihrer App
4) Analysieren Sie die XML-Datei unter META-INF/container.xml
(wenn diese Datei nicht vorhanden ist, ist die EPUB ungültig) mit TBXML, das oben verlinkt ist
5) Suchen Sie in dieser XML die erste "Root-Datei" mit Medientyp application/oebps-package+xml
. Dies ist die OPF-Datei für das Buch.
6) Analysieren Sie die OPF-Datei (auch XML).
7) Jetzt müssen Sie wissen, was das erste Kapitel des Buches ist.
a) Jeder <item>
im <manifest>
Element hat eine ID und eine href. Speichern Sie diese an einem Ort, an NSDictionary
dem der Schlüssel die ID und das Objekt die href ist.
b) Schauen Sie sich die erste <itemref>
in der <spine>
. Es hat ein idref-Attribut, das einer der IDs in (a) entspricht. Schlagen Sie diese ID in der NSDictionary
und Sie erhalten eine href.
c) Dies ist die Datei des ersten Kapitels, die den Benutzer zeigt. Ermitteln Sie den vollständigen Pfad (Hinweis: Er befindet sich überall dort, wo Sie die Zip-Datei in (3) und im Basisverzeichnis der OPF-Datei in (6) entpackt haben.)
8) Erstellen Sie eine NSURL
Verwendung fileURLWithPath:
, wobei der Pfad der vollständige Pfad von (7c) ist. Laden Sie diese Anfrage mit der UIWebView
in (1) erstellten.
Sie müssen Vorwärts- / Rückwärtsschaltflächen oder Wischbewegungen oder ähnliches implementieren, damit Benutzer von einem Kapitel zum anderen wechseln können. Verwenden Sie die Option <spine>
, um herauszufinden, welche Datei als Nächstes <itemrefs>
angezeigt werden soll. Die Dateien in XML befinden sich in der Reihenfolge, in der sie dem Leser angezeigt werden sollen.
Anscheinend ist EPUB "nur" ein XML-Format. Wenn Sie also einen XML-Parser und die Spezifikation haben, sollte dies in Ordnung sein.
Plus ein kleines Tuto ? Habe Spaß!
EDIT: Sie auch einige Codes lesen können hier , dann ist dies epub zur Erzeugung, nicht , sie zu lesen , aber der Code kann nützlich sein.
Nochmals BEARBEITEN: Und siehe Links zu verwandten Fragen in der rechten Seitenleiste. In den Antworten zum kostenlosen E-Book-Reader finden Sie einige Links, die ePub unterstützen.
BEARBEITEN 3: Sie sollten einen Kommentar hinzufügen, wenn Sie Ihre Frage bearbeiten, damit Personen, die Ihnen antworten, die Diskussion fortsetzen können (wenn Sie keinen Kommentar abgeben, werden wir von Ihrer Bearbeitung nicht bemerkt).
Das Parsen schlägt also fehl, weil Sie die Spezifikation oder verwandte Fragen zu Stack Overflow nicht gelesen haben ... * .epub-Datei ist ein komprimierter Ordner, der XML-Dateien enthält, keine einfache XML-Datei.
quelle
Ich habe dieses Tutorial einmal gelesen (kostenlose Registrierung erforderlich, sorry) und es gab mir eine großartige Einführung in ePub. deverloperWorks Tutorial hier
Ich empfehle Ihnen dringend, sich einige der XML-Verarbeitungsbibliotheken anzusehen. Wenn Sie nur bestimmte Informationen aus der XML-Datei abrufen möchten, können Sie die richtige Analysestrategie auswählen.
quelle
es gibt ein Open Source Projekt fbreader,
Es unterstützt auch iPhone
http://www.fbreader.org/about.php
quelle
Ich spiele herum, um ein Epub-Framework für iPhone-Apps zu erstellen.
Im Moment (ich habe gerade erst angefangen) kann ich eine Titelseite mit Links zu den Kapiteln erstellen.
Mein Ansatz ist
Im Moment beschäftige ich mich mit Pageflip, einer Art GUI und kleineren Usability-Problemen (speichere die aktuelle Seite, die gerade angezeigt wird).
Ich hoffe, das gibt Ihnen eine Idee, wie Sie anfangen sollen
quelle
Jonathan Wight (schwa) hat eine ObjC-Lösung zum Parsen und Anzeigen von ePub-Dokumenten auf dem iPhone entwickelt. Es ist Teil seines TouchCode Open Source Repositorys.
quelle