Відповіді:
Формат EPUB об'єднує купу різних специфікацій / форматів:
Технічні характеристики виглядають дещо запаморочливо, але насправді після того, як ви зникнете основи (розпакування, розбір XML), це не особливо складно і не складно.
Вам потрібно буде розробити, як завантажити EPUB, розпакувати його кудись, проаналізувати маніфест, а потім відобразити відповідний вміст.
Деякі вказівки, якщо ви тільки починаєте:
Для відображення вмісту просто UIWebView
зараз використовуйте.
Ось крок за кроком для вашого коду на високому рівні:
1) створити подання з а UIWebView
2) завантажити файл EPUB
3) розпакуйте його до підкаталогу в папці документів програми за допомогою бібліотеки zip, пов'язаної вище
4) проаналізуйте файл XML на META-INF/container.xml
(якщо цього файлу не існує, EPUB недійсний) за допомогою TBXML, пов’язаного вище
5) У цьому XML знайдіть перший "rootfile" з медіа-типом application/oebps-package+xml
. Це файл OPF для книги.
6) розібрати файл OPF (також XML)
7) тепер вам потрібно знати, що таке перша глава книги.
а) кожен <item>
у <manifest>
елементі має id та href. Зберігайте їх у an, NSDictionary
де ключовим є ідентифікатор, а об'єктом є href.
б) Подивіться на перше <itemref>
в <spine>
. Він має атрибут idref, який відповідає одному з ідентифікаторів у (a). Подивіться на цей id в NSDictionary
і ви отримаєте href.
в) це файл першої глави для показу користувачеві. Дізнайтеся, що таке повний шлях (підказка: там, де ви розпакували zip-файл у (3) плюс базовий каталог файлу OPF в (6))
8) створити за NSURL
допомогою fileURLWithPath:
, де шлях - це повний шлях від (7c). Завантажте цей запит, використовуючи UIWebView
створений вами (1).
Вам потрібно буде реалізовувати кнопки вперед / назад або пальці або щось подібне, щоб користувачі могли переходити з однієї глави в іншу. Використовуйте для того, <spine>
щоб визначити, який файл буде показано далі - <itemrefs>
XML у тому порядку, у якому вони повинні з’явитися читачеві.
Мабуть, EPUB "просто" формат XML, тому якщо у вас є аналізатор xml і специфікація, це повинно бути добре.
Плюс трохи туто ? Веселіться!
EDIT: ви також можете прочитати тут якийсь код , це для створення epub, а не для читання, але код може бути корисним.
Знову редагуйте: І дивіться посилання на відповідне запитання в правій бічній панелі, є деякі посилання у відповідях на безкоштовний читач книг, який підтримує ePub.
РЕДАКТІВ 3: Ви повинні додавати коментар, коли ви редагуєте своє запитання, щоб люди, які відповідають вам, могли продовжити обговорення (якщо ви не коментуєте, ми не помітили вашої редакції).
Отже, розбір не вдається, оскільки ви не прочитали специфікації або пов'язаних питань щодо переповнення стека ... * .epub файл - це папка з блискавками, що містить XML-файли, а не прості xml.
Я прочитав цей підручник один раз (потрібна безкоштовна реєстрація, вибачте), і це дало мені чудове ознайомлення з ePub. тут навчальний посібник deverloperWorks
Я настійно пропоную переглянути деякі бібліотеки обробки XML. Якщо ви просто хочете отримати конкретну інформацію з файлу XML, тоді ви можете вибрати правильну стратегію розбору.
Я граю навколо, щоб створити рамку epub для додатків iphone.
На даний момент (я дійсно просто починаю) я можу генерувати титульну сторінку із посиланнями на глави.
Мій підхід такий
Зараз я переглядаю перегортання сторінки, якісь гуї та незначні проблеми у користуванні (збережіть перегляд поточної сторінки)
Я сподіваюся, що дайте вам уявлення про те, як почати
Джонатан Вайт (schwa) розробив рішення ObjC для розбору та відображення документів ePub на iPhone. Це частина його сховища з відкритим кодом TouchCode.