Format EPUB menyatukan banyak spesifikasi / format yang berbeda:
- satu untuk mengatakan seperti apa konten buku itu seharusnya (bagian dari XHTML 1.1 + CSS)
- satu untuk mendefinisikan "manifest" yang mencantumkan semua file yang membentuk konten itu (OPF, yang merupakan file XML)
- satu untuk menentukan bagaimana semuanya dikemas (OEBPS: file zip dari semua yang ada di manifes ditambah beberapa file tambahan)
Spesifikasi terlihat agak menakutkan tetapi sebenarnya setelah Anda memiliki dasar-dasarnya (membuka ritsleting, mengurai XML), itu tidak terlalu sulit atau rumit.
Anda harus mengetahui cara mengunduh EPUB, mengekstraknya di suatu tempat, mengurai manifes, dan kemudian menampilkan konten yang relevan.
Beberapa petunjuk jika Anda baru memulai:
Untuk menampilkan konten, gunakan a UIWebView
untuk saat ini.
Berikut langkah demi langkah tingkat tinggi untuk kode Anda:
1) buat tampilan dengan a UIWebView
2) unduh file EPUB
3) unzip ke subdirektori di folder dokumen aplikasi Anda menggunakan pustaka zip, ditautkan di atas
4) parsing file XML di META-INF/container.xml
(jika file ini tidak ada, EPUB tidak valid) menggunakan TBXML, ditautkan di atas
5) Dalam XML ini, temukan "rootfile" pertama dengan tipe media application/oebps-package+xml
. Ini adalah file OPF untuk buku tersebut.
6) parsing file OPF (juga XML)
7) sekarang Anda perlu tahu apa bab pertama dari buku itu.
a) masing-masing <item>
di <manifest>
elemen memiliki id dan href. Simpan ini di NSDictionary
tempat kuncinya adalah id dan objeknya adalah href.
b) Lihat yang pertama <itemref>
di <spine>
. Ini memiliki atribut idref yang sesuai dengan salah satu id di (a). Cari id itu di NSDictionary
dan Anda akan mendapatkan href.
c) ini adalah file dari bab pertama yang akan ditampilkan kepada pengguna. Cari tahu apa jalur lengkapnya (petunjuk: di mana pun Anda membuka ritsleting file zip ke dalam (3) ditambah direktori dasar dari file OPF di (6))
8) buat NSURL
penggunaan fileURLWithPath:
, di mana jalurnya adalah jalur lengkap dari (7c). Muat permintaan ini menggunakan yang UIWebView
Anda buat di (1).
Anda harus menerapkan tombol maju / mundur atau gesekan atau sesuatu sehingga pengguna dapat berpindah dari satu bab ke bab lainnya. Gunakan <spine>
untuk menentukan file mana yang akan diperlihatkan berikutnya - <itemrefs>
dalam XML berada dalam urutan yang seharusnya ditampilkan kepada pembaca.
Rupanya EPUB adalah "hanya" format XML, jadi jika Anda memiliki parser xml dan speknya seharusnya tidak masalah.
Ditambah sedikit tuto ? Selamat bersenang-senang!
EDIT: Anda juga bisa membaca beberapa kode di sini , ini untuk menghasilkan epub, bukan membacanya tetapi kode tersebut mungkin berguna.
EDIT lagi: Dan lihat link ke pertanyaan terkait di sidebar kanan, ada beberapa link di jawaban pembaca ebook gratis yang mendukung ePub.
EDIT 3: Anda harus menambahkan komentar ketika Anda mengedit pertanyaan Anda sehingga orang yang menjawab Anda dapat melanjutkan diskusi (jika Anda tidak berkomentar, kami tidak memperhatikan hasil edit Anda).
Jadi, penguraian gagal karena Anda tidak membaca spesifikasi atau pertanyaan terkait di Stack Overflow ... *. Fileepub adalah folder zip yang berisi file XML, bukan xml biasa.
sumber
Saya membaca tutorial ini sekali (diperlukan pendaftaran gratis, maaf) dan itu memberi saya pengenalan yang bagus tentang ePub. deverloperWorks tutorial di sini
Saya sangat menyarankan Anda melihat beberapa perpustakaan pemrosesan XML. Jika Anda hanya ingin mendapatkan informasi spesifik dari file XML, Anda dapat memilih strategi penguraian yang tepat.
sumber
ada proyek open source fbreader,
itu juga mendukung iphone
http://www.fbreader.org/about.php
sumber
Saya sedang bermain-main untuk membuat kerangka kerja epub untuk aplikasi iphone.
Saat ini (saya benar-benar baru saja memulai) saya dapat membuat halaman judul dengan tautan ke bab-bab tersebut.
Pendekatan saya adalah
Saat ini saya sedang mempelajari pageflip, beberapa jenis masalah gui dan kegunaan kecil (simpan halaman yang sedang dilihat)
Saya harap itu memberi Anda gambaran tentang cara memulai
sumber
Jonathan Wight (schwa) telah mengembangkan solusi ObjC untuk parsing dan menampilkan dokumen ePub di iPhone. Itu bagian dari repositori open source TouchCode-nya.
sumber