Описание к компьютеру, что Вы хотите, не, как сделать что-то.
Формат EPUB объединяет в себе кучу различных спецификаций/форматов:
спецификации выглядят немного пугающе, но на самом деле, как только у вас есть основы (распаковка, парсинг XML), это не особенно сложно и сложно.
Вам нужно будет придумать, как загрузить EPUB, распаковать его где-нибудь, разобрать манифест, а затем отобразить соответствующее содержимое.
Некоторые указатели, если вы только начинаете:
Для отображения содержимого просто используйте UIWebView
на данный момент.
Пошагово для вашего кода:
1) создайте вид с помощью UIWebView
2) загрузите EPUB-файл
3) распакуйте его в подкаталог в папке документов вашего приложения с помощью библиотеки zip, ссылки на которую приведены выше
4) проанализируйте XML-файл в META-INF/контейнере. xml
(если этот файл не существует, то EPUB недействителен), используя TBXML, ссылка на который приведена выше
5) В этом XML найдите первый "корневой файл" с типом носителя app/oebps-package+xml
. Это файл OPF для книги.
6) разберите файл OPF (также XML)
7) теперь вам нужно знать, что такое первая глава книги.
a) каждый <пункт>
в элементе <манифест>
имеет id и href. Храните их в NSD словаре
, где ключом является id, а объектом - href.
b) Посмотрите на первый
в
. Он имеет атрибут idref, который соответствует одному из идентификаторов в пункте (a). Посмотрите на этот id в NSD словаре
и вы получите href.
c) это файл первой главы, чтобы показать пользователю. Выясните, что такое полный путь (подсказка: это везде, где вы распаковали zip-файл в (3) плюс базовый каталог OPF-файла в (6)
8), создайте NSURL
с помощью fileURLWithPath:
, где путь - это полный путь от (7c). Загрузите этот запрос с помощью UIWebView
, который вы создали в (1).
Вам нужно будет реализовать кнопки вперед/назад или пролистывания или что-то в этом роде, чтобы пользователи могли перемещаться из одной главы в другую. Используйте
, чтобы понять, какой файл показывать дальше -
в XML находятся в том порядке, в котором они должны появиться читателю.
Очевидно, EPUB - это «просто» формат XML, поэтому, если у вас есть синтаксический анализатор xml и спецификация , все будет в порядке.
Плюс немного тутто ? Удачи!
РЕДАКТИРОВАТЬ: вы также можете прочитать код здесь , он предназначен для создания epub, а не для их чтения, но код может быть полезен.
ИЗМЕНИТЬ снова: И см. Ссылки на связанный вопрос на правой боковой панели в ответах есть ссылки на бесплатную программу для чтения электронных книг, поддерживающую ePub.
РЕДАКТИРОВАТЬ 3: Вы должны добавить комментарий при редактировании своего вопроса, чтобы люди, ответившие на вас, могли продолжить обсуждение (если вы этого не сделаете) t комментарий, мы не заметили вашего редактирования).
Итак, синтаксический анализ завершился неудачно, потому что вы не прочитали спецификацию или связанные вопросы по переполнению стека ... * .epub файл - это заархивированная папка, содержащая файлы XML ), а не простой xml.
Я однажды прочитал это руководство (требуется бесплатная регистрация, извините), и оно дало мне отличное введение в ePub. здесь учебник deverloperWorks
Я настоятельно рекомендую вам взглянуть на некоторые библиотеки обработки XML. Если вы просто хотите получить конкретную информацию из файла XML, вы можете выбрать правильную стратегию синтаксического анализа.
Я играю в Arrand, чтобы создать EPUB-Framework для приложений для iPhone.
На данный момент (я действительно просто расчетл) я могу генерировать титульную страницу со ссылками на главы.
Мой подход
прямо сейчас я ищу PageFlip, какой-то вид GUI и незначительных проблем юзабилити (сохранить текущую страницу, которые называется)
Я надеюсь, что это даст вам представление о том, как начать
Джонатан Уайт (schwa) разработал решение ObjC для разбора и отображения документов ePub на iPhone. Оно является частью его репозитория с открытым исходным кодом TouchCode.