Sto cercando di sviluppare un'applicazione iPhone per leggere i file ePub. C'è qualche struttura disponibile per sviluppare questo? Non ho idea di come leggere questo formato di file. Ho provato ad analizzare un file di esempio con estensione .epub usando NSXML Parser, ma questo fallisce.formato ePub lettura
risposta
Il formato EPUB riunisce un gruppo di diverse specifiche/formati:
- uno a dire qual è il contenuto del libro dovrebbe essere simile (un sottoinsieme di XHTML 1.1 + CSS)
- uno per definire un "manifest" che elenca tutti i file che compongono quel contenuto (OPF, che è un file XML)
- uno per definire come tutto è impacchettato (OEBPS: un file zip di tutto nel manifest più alcuni extra file)
Le specifiche sembrano un po 'scoraggianti, ma in realtà una volta che hai le nozioni di base (decomprimere, analizzare il codice XML), non è particolarmente difficile o complesso.
Avrai bisogno di capire come scaricare l'EPUB, decomprimerlo da qualche parte, analizzare il manifest e quindi visualizzare il contenuto pertinente.
Alcune indicazioni se si sta appena iniziando:
per visualizzare il contenuto basta usare un UIWebView
per ora.
Ecco un passo di alto livello per passo nella sua codice:
1) creare una visualizzazione con un UIWebView
2) scarica il file EPUB
3) decomprimerlo in una sottodirectory nella vostra documenti di app cartella utilizzando la libreria zip, legata sopra
4) analizzare il file XML in META-INF/container.xml
(se questo file non esiste l'EPUB non è valido) utilizzando tbXml, legata soprattutto
5) In questo XML, trovare il primo "rootfile" con tipo di supporto application/oebps-package+xml
. Questo è il file OPF per il libro.
6) analizzare il file OPF (anche XML)
7) Ora è necessario sapere qual è il primo capitolo del libro è.
a) ogni <item>
nell'elemento <manifest>
ha un ID e un href. Memorizzali in un NSDictionary
dove la chiave è l'id e l'oggetto è l'href.
b) Guarda il primo <itemref>
nel <spine>
. Ha un attributo idref che corrisponde a uno degli id in (a). Cerca quell'id nel NSDictionary
e otterrai un href.
c) questo è il file del primo capitolo per mostrare all'utente. Capire che cosa il percorso completo è (suggerimento: è ovunque è stato decompresso il file zip in (3) più la directory di base del file OPF a (6))
8) creare un NSURL
utilizzando fileURLWithPath:
, dove il sentiero è il percorso completo da (7c). Carica questa richiesta utilizzando lo UIWebView
creato in (1).
È necessario implementare i pulsanti avanti/indietro o i passaggi o qualcosa in modo che gli utenti possano spostarsi da un capitolo all'altro. Utilizzare lo <spine>
per individuare il file da mostrare successivamente: lo <itemrefs>
nell'XML è nell'ordine in cui dovrebbero apparire al lettore.
Apparentemente EPUB è "solo" un formato XML, quindi se si dispone di un parser xml e the spec dovrebbe essere a posto.
Inoltre a little tuto? Divertiti!
EDIT: si potrebbe anche leggere un codice here, questo è per la generazione di epub, non li leggere ma il codice può essere utile. nuovo
EDIT: E vedi link a domanda relativa nella barra laterale destra, ci sono alcuni link nelle risposte alle lettore di ebook gratuito che supportano ePub.
EDIT 3: Si dovrebbe aggiungere un commento quando si modifica la tua domanda in modo da persone che ti rispondono possibile continuare la discussione (se non commentare non stiamo notato della tua modifica).
Quindi, l'analisi ha esito negativo perché non è stata letta la specifica o le domande correlate su Stack Overflow ... *. Il file .epub è una cartella compressa contenente file XML, non un semplice xml.
ho letto attraverso questo tutorial volta (iscrizione gratuita richiesta, sorry) e mi ha dato una grande introduzione ePub. deverloperWorks tutorial here
consiglio vivamente si guarda ad alcune delle librerie di elaborazione XML. Se si desidera ottenere informazioni specifiche dal file XML, è possibile scegliere la strategia di analisi corretta.
Questo tutorial è eccellente ed è scritto dalla persona che ha scritto molti degli strumenti open source ePub standard disponibili. È una lettura veloce e offre un'introduzione di lavoro perfetta al formato ePub. –
Sto giocando arround per creare un framework epub per le app per iphone.
Al momento (ho appena iniziato) posso generare un frontespizio con collegamenti ai capitoli.
Il mio approccio è
- Usa quadro QuickConnect iPhone come uno strato (forse a cambiare a PhoneGap) che permette in sostanza di javascript applicazioni come applicazioni per iPhone
- Aggiungere l'epub appena scompattata come ressource a il progetto
- Analizza il tutto con una versione personalizzata dell'epub.js (da qualche parte su google-code)
In questo momento sto guardando in pageflip, una sorta di problemi di GUI e usabilità minore (salvare la pagina corrente beingviewed)
Spero che di darvi un'idea su come iniziare
ho usato il file epub.js quello che ho ricevuto un errore come * Errore di analisi XML: nessun elemento trovato * numero di riga di posizione numero di colonna1 1. Non mi è possibile fornire alcuni collegamenti – user969275
come fare con il framework? l'hai pubblicato da qualche parte? – yasirmturk
Jonathan Wight (schwa) ha sviluppato una soluzione ObjC per l'analisi e la visualizzazione di documenti ePub su iPhone. Fa parte del suo repository open source TouchCode.
per favore dammi il link di TouchCode open source – Hiren
http://code.google.com/p/touchcode/source/browse/Experimental/?r=e621eadd838d7733f5025e16733fccb967eb2325#Experimental%2FTouchBook –
oppure c'è anche futurepress/epub.js (it legge epub e annotazione attraverso un web browner) – JinSnow
davvero un buon tutorial ..! uomo fantastico ...! Ho passato molto tempo per tale demo –
è un peccato che sia possibile fornire solo 1 upvote per questa risposta –
Ottima risposta. Questo sta diventando una FAQ :) –