vitaly_KF
@vitaly_KF
Разработчик Qt/C++

Выравнивание текста по ширине и/или разбивка на страницы?

День добрый. Такая вот задачка у меня. Допустим у нас есть книга в формате fb2. Необходимо к примеру открыть эту книгу на мобильнике с маленьким разрешением. Вопрос: существуют ли библиотеки (js али php), которые позволяют разбивать большой текст на страницы в зависимости от высоты/ширины данной страницы? Кроме того, хотелось бы, чтобы подобная библиотека обрабатывала момент, когда слово вроде бы нужно перенести, но если его перенести, то в строке останется пустое место. а значит слово нужно грамотно разбить на две части с помощью дефиса (-). Короче реализовать перенос по слогам. Для русского и английского языков (хотя думаю в правиле переноса по слогам нет особых отличий для разных языков)…

Почитал на вики статью, но там нет переноса по слогам en.wikipedia.org/wiki/Justification_(typesetting)

Короче, чтобы к примеру из этого:

"

-Ряды зубов — повторил о боже — Просто ряды, понимаешь? Кстати кто такая эта зубная фея?

-О нынче её часто можно встретить, — сказала Сьюзен. — Вернее их. Они работают по лицензии. Берёшь лестницу, пояс для денег, клещи — и вперёд, в ночное!

-Клещи?

-Если у зубной феи нет мелочи, он вырывает один или несколько зубов, чтобы не нарушать отчётность.

"

Получалось вот это:

"

-Ряды зубов — повторил о боже — Просто ряды,

понимаешь? Кстати кто такая эта зубная фея?

-О нынче её часто можно встретить, — сказала

Сьюзен. — Вернее их. Они работают по лицензии.

Берёшь лестницу, пояс для денег, клещи — и впе-

рёд, в ночное!

-Клещи?

-Если у зубной феи нет мелочи, она вырывает

один или несколько зубов, чтобы не нарушать

отчётность.

"

Выщло хреново, но думаю суть ясна…


Конечно по ширине текст отцентрировать нефиг делать, да и на слоги возможно не много времени потрачу, но хотелось бы узнать — вдруг существуют готовые решения… Видел такое например в приложении ZXReader для симбы… Больше вроде нигде.
  • Вопрос задан
  • 3880 просмотров
Решения вопроса 1
Riateche
@Riateche
code.google.com/p/hyphenator/
Проверил, неплохо работает. Поддерживает много языков, среди которых и русский.

> (хотя думаю в правиле переноса по слогам нет особых отличий для разных языков)
Правила переноса слов в русском и английском языках кардинально различаются.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
taliban
@taliban
php программист
PHP и JS не на столько хорошо работают с текстом. + (дальше я могу ошибаться) по моему программы читалки текст «рисуют» текст, получают ширину и высоту строки исходя из шрифта которым будут рисовать, и уже дальше оперируют цифрами.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы