Я пытаюсь разработать приложение iPhone для чтения файлов ePub. Есть ли какие-либо рамки для его разработки? Я не знаю, как читать этот формат файла. Я попытался проанализировать образец файла с расширением .epub, используя NSXML Parser, но это не удается.Чтение формата ePub
ответ
Формат EPUB объединяет кучу разных спецификаций/форматов:
- один, чтобы сказать, что содержание книги должно выглядеть (подмножество XHTML 1.1 + CSS)
- один для определения «манифест», в котором перечислены все файлы, составляющие этот контент (OPF, который является XML-файлом)
- один, чтобы определить, как все упаковано (OEBPS: zip-файл всего в манифесте плюс несколько дополнительных файлы)
Спецификации выглядят немного сложными, но на самом деле, как только у вас есть основы (распаковка, разбор XML), это не особенно сложно или сложно.
Вам нужно будет разобраться, как загрузить EPUB, разархивировать его где-нибудь, проанализировать манифест, а затем отобразить соответствующий контент.
Некоторых указатели, если вы только начинаете:
Для отображения содержимого просто использовать UIWebView
сейчас.
Вот шаг высокого уровня за шагом для вашего кода:
1) создать представление с UIWebView
2) скачать файл EPUB
3) распаковать его в подкаталог в вашей папка документов приложения, использующая zip-библиотеку, связанную выше
4) проанализируйте файл XML по адресу META-INF/container.xml
(если этот файл не существует, EPUB недействителен) с использованием TBXML, связанного выше
5) В этом XML найдите первый «корневой файл» с медиа-типом application/oebps-package+xml
. Это файл OPF для книги.
6) разобрать БКП файл (также XML)
7) Теперь вы должны знать, что первая глава книги.
a) каждый <item>
в элементе <manifest>
имеет идентификатор и href. Сохраните их в файле NSDictionary
, где ключ - это идентификатор, а объект - href.
b) Посмотрите на первый <itemref>
в <spine>
. Он имеет атрибут idref, который соответствует одному из идентификаторов в (a). Посмотрите этот идентификатор в NSDictionary
, и вы получите href.
c) Это файл первой главы, чтобы показать пользователя. Работа, что полный путь (подсказка: это место, куда вы распаковали файл почтового индекса в (3), а также базовый каталог БКП файла (6))
8) создать NSURL
с помощью fileURLWithPath:
, где путь является полным путем из (7c). Загрузите этот запрос, используя UIWebView
, который вы создали в (1).
Вам нужно будет использовать кнопки вперед или назад или щелчки или что-то еще, чтобы пользователи могли перемещаться из одной главы в другую. Используйте <spine>
, чтобы определить, какой файл будет показан дальше - <itemrefs>
в XML-формате в порядке, в котором они должны появляться читателю.
Очевидно, EPUB является «просто» XML-форматом, поэтому, если у вас есть синтаксический анализатор xml и the spec, все должно быть в порядке.
Plus a little tuto? Повеселись!
EDIT: вы также можете прочитать код here, это для создания epub, а не для чтения, но код может быть полезен.
РЕДАКТИРОВАТЬ снова: и посмотреть ссылки на соответствующий вопрос в правой боковой панели, есть некоторые ссылки в ответах на бесплатный ebook reader, которые поддерживают ePub.
EDIT 3: Вы должны добавить комментарий, когда вы изменить свой вопрос, чтобы люди, которые вы ответите могут продолжить обсуждение (если вы не комментируете, мы не заметили ваше редактирование).
Итак, синтаксический анализ завершился неудачно, потому что вы не прочитали спецификацию или связанные с ней вопросы в Stack Overflow ... * .epub-файл - это ZIP-папка, содержащая XML-файл (ы), а не простой xml.
Я прочитал этот учебник один раз (требуется бесплатная регистрация, извините), и это дало мне отличное введение в ePub. deverloperWorks tutorial here
Я настоятельно рекомендую вам взглянуть на некоторые из библиотек обработки XML. Если вы хотите получить определенную информацию из XML-файла, вы можете выбрать правильную стратегию синтаксического анализа.
Этот учебник является прекрасным и написана человеком, который является автором многих стандартных инструментов с открытым исходным кодом EPUB доступны. Это быстрое чтение и дает отличное рабочее введение в формат ePub. –
Я играю arround для создания epub-рамки для приложений iphone.
В настоящий момент (я действительно просто начинаю) я могу создать титульную страницу со ссылками на главы.
Мой подход
- Использование рамки QuickConnect iphone, как слой (возможно, я изменить к PhoneGap) , которая в основном позволяет JavaScript приложений, как iPhone приложений
- Добавьте EPUB UNZIPed как Ressource к проект
- Проанализируйте все это с помощью индивидуальной версии epub.JS (где-то на Google-код)
Сейчас я ищу в PageFlip, своего рода проблем графического интерфейса и незначительные юзабилити (сохранить текущую страницу beingviewed)
Я надеюсь, что дать ты идею о как начать
Я использовал epub.js, что я получил ошибку как * XML Parsing Error: не найден элемент * номер строки номера 1 номер столбца 1.can u hel me, предоставляя некоторые ссылки – user969275
Что происходит с вашей картой? вы его где-то публиковали? – yasirmturk
Джонатан Уайт (schwa) разработал решение ObjC для анализа и отображения документов ePub на iPhone. Это часть его хранилища с открытым исходным кодом TouchCode.
, пожалуйста, дайте мне ссылку на TouchCode с открытым исходным кодом – Hiren
http://code.google.com/p/touchcode/source/browse/Experimental/?r=e621eadd838d7733f5025e16733fccb967eb2325#Experimental%2FTouchBook –
или есть также futurepress/epub.js (it читает epub и аннотацию через веб-браузер) – JinSnow
- 1. API для поддержки формата .epub
- 2. iPhone - чтение .epub файлов
- 3. чтение epub файла в blackberry
- 4. Чтение файла Epub в iphone SDK
- 5. ObjectiveC - Чтение файла ePub Gotten From Dropbox
- 6. чтение файла формата HITRAN
- 7. чтение странного формата .mvc
- 8. Загрузка ePub - простой вопрос для чтения ePub
- 9. Как извлечь txt из epub-формата для iOS
- 10. Как получить файл формата epub в объекте C
- 11. Android: Чтение полного текста файла Epub и полнотекстового поиска на ePub
- 12. Динамическое чтение формата строки, Python
- 13. Чтение из файлов определенного формата
- 14. Convert LaTeX to ePub
- 15. Advanced ePub reader
- 16. Android Сохранить файлы в EPUB
- 17. Общее количество страниц в epub
- 18. Многоязычный ePub
- 19. Чтение двоичного формата VC++ CArchive (или Java-чтение (CObArray))
- 20. Простой дата чтение формата месяц неправильно
- 21. Javascript HighCharts чтение из другого формата
- 22. чтение данных в r и изменение формата
- 23. чтение формата даты OData в R
- 24. Чтение сложного формата CSV fileinto Matlab
- 25. Чтение сложного формата CSV В Matlab
- 26. Чтение большого формата XLS и XLSX excel
- 27. Чтение формата файла JTIP для python
- 28. Чтение определенного формата ввода в C
- 29. Чтение формата Tiff в Java eclipse
- 30. чтение из файла с использованием определенного формата
действительно хороший учебник ..! крутой чувак..! Я потратил много времени на такую демонстрацию –
, это позор, что можно дать только 1 upvote для этого ответа –
Отличный ответ. Это становится часто задаваемым вопросом :) –