Я пытаюсь создать продвинутый читатель ePub с использованием jQuery и PHP/Zend Framework1.12 (для формата epub3.0). Читатель должен содержать следующие функции:Advanced ePub reader
- книги должна быть отображена с помощью страниц (2 страницы за один раз)
- пользователь должен иметь возможность перемещаться между страницами и главой с помощью ползунка
- пользователя может создавать бликов и закладки страниц
- читатель должен быть кросс-браузер (я не слишком заботится о старых версиях IE, но он должен работать на Safari, Mozilla, Chrome)
Моя идея заключается в том, чтобы сделать некоторые ки nd парсера PHP, который будет обрабатывать контент epub и передавать его на Javascript-код в более «дружественном» формате, но раньше я не работал с epubs, и я не уверен, с чего начать.
Вот несколько вопросов, которые я боролся с:
Первая проблема, которую я столкнулся в том, как извлечь содержимое из архива .epub и вынести его в таким образом, что будет разрешить разбиение на страницы. Какую библиотеку PHP вы бы порекомендовали для разбора epubs? Я уже тестировал некоторые библиотеки, такие как BookGluttonEpub (кажется довольно старым) и EPUBParser (трудно понять, поскольку нет примеров и документов). Есть ли другие, которых я пропустил?
Должен ли я очищать html-код (например, удалять недопустимые теги, например), прежде чем передавать его читателю?
Что вы считаете лучшим способом отображения страниц? Должен ли я использовать CSS и свойство «column»? Или я должен сделать более сложный скрипт, который разделит содержимое html главы на страницы?
Благодаря
Я согласен, что использование HTML5 и CSS3 представляется лучшим решением. Не уверен, согласен ли я с первой частью, это означает, что мне нужно будет использовать только код Javascript для рендеринга. В этом случае мне пришлось бы загружать все файлы epub и вычислять длину каждой главы (использовать в навигационном слайдере), что может быть медленным для больших epubs. –
Я построил следующее решение: 1. Использовал HTML5 и CSS3 для рендеринга (читатель не работает на IE8 & 9); 2. Рассчитал процентные показатели прогресса, используя размер файла каждой главы (это приблизительное значение, так как оно не учитывайте, сколько пространства занимают изображения); 3. Используется jQuery для создания бликов/закладок. При навигации по ним основные моменты просматриваются в каждом файле главы с использованием процентной доли прогона (например, где в книге они находятся) и текст, который был выбран. Закладки создаются аналогичным образом, путем имитации щелчка на странице. –