Подтвердить что ты не робот

Как реализовать "разрыв страницы" в читателе epub

Любая идея, как реализовать "разрыв страницы" в читателе epub? .epub - это не что иное, как HTML-страницы, а epub reader отображает эти html-страницы. но мне интересно, как некоторые читатели epub, такие как Adobe Digital Edition, реализовали разрывы страницы. Там, когда мы переходим на любую страницу, вы не найдете половину отображаемой строки (то есть только верхняя часть видимых букв и нижняя часть будет на следующей странице) или половина изображений, где другая часть на следующей странице. Как перенести строку на следующую страницу, если я не могу полностью ее отобразить на текущей странице?

4b9b3361

Ответ 1

EPUB на самом деле не имеет понятия страниц - это означает, что reflowable контент, который течет в соответствии с размерами контейнера отображения. Так что вы предлагаете немного взломать.

Тем не менее, пользователи довольны страницами, и большинство читателей реализуют концепцию страницы.

Вам понадобится реализовать что-то вроде алгоритма разрыва страницы Knuth, который, в свою очередь, зависит от его абзаца и алгоритмов разбиения строк. См. Его книгу TeX для полного грамотного кода (IIRC, это в Паскале). (Это не тот сложный фрагмент кода - я реализовал его в программе для настольных издательских систем, которую я написал много лет назад).

Если вы пошли по этому маршруту, это означает, что вы, вероятно, не могли использовать UIWebView.

BTW, Adobe Digital Edition реализует вариацию алгоритма Кнута.

Ответ 2

В базовом html вы можете добавить что-то вроде этого:

<span style="page-break-after: always" />

Ответ 3

Без окончательного ответа вы можете:

  • найти исчерпывающий источник информации о epub, это статья IBM
  • попробуйте эксперимент по созданию epub с Calibre и manual.