Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Кто-то знает, как программы-читалки нарезают текст поэкранно?

248
11 сентября 2013 года
Dmitry2064
590 / / 06.12.2006
То есть имеется длинная простыня текста и его надо разместить в площади экрана (читалки какой-то). Как происходит вычисление количества знаков (или слов, чтобы не переносить), которые смогут поместиться на экране?
8
11 сентября 2013 года
mfender
3.5K / / 15.06.2005
у каждого экрана есть размер в пикселях, и у шрифтов есть размеры , которые пересчитываются в пиксели. Дальше объяснять?
248
12 сентября 2013 года
Dmitry2064
590 / / 06.12.2006
Ага, интересно. Но получается, что программы-читалки - это как бы самостоятельные программы верстки? (потому что надо все время переверстывать текст на новое количество помещающихся на данной площади символов? То есть силами VBA такую авторазбивку прописать мягко говоря не легко?
8
12 сентября 2013 года
mfender
3.5K / / 15.06.2005
не знаю что такое VBA, но посчитать количество символов определённого размера на определённую площадь - это я ещё в прошлом веке при помощи PHP3 делал.
7
12 сентября 2013 года
@pixo $oft
3.4K / / 20.09.2006
Цитата: mfender
не знаю что такое VBA

Был несколько удивлён :)
По идее, не так уж и сложно должно быть. Зависит от придирчивости к реализации, конечно. Для моноширинного шрифта будет очень просто, для немоноширинного, да ещё и с переносами — гораздо сложнее. А зачем перевёрстывать текст, я не понимаю. Поясни, а то вдруг я действительно не вижу реальной проблемы.

248
12 сентября 2013 года
Dmitry2064
590 / / 06.12.2006
"А зачем перевёрстывать текст, я не понимаю"
Да я тоже не очень понял. Но, видимо, хотят на экране повторить типа читалку. То есть чтобы был определенный объем текста на одной странице. Идея, мне кажется в том, чтобы по типу подачи материала было что-то похожее на презентацию - стандартные куски информации в стандартных окнах. Ну может быть, чтобы книжный текст не сильно бы отличался от какого-то материала, сделанного в виде презентации (в PowerPoint, например).
Пока вручную это представляется как нарезка сплошного HTML-текста на страницы. Причем, если в стандартной книге страниц 500, резать придется каждую страницу не меньше чем на две. Итого таких отрезов-вырезок придется сделать 1000 раз и получить, соответственно, 1000 html файликов (0001.html,0002.html, ... 1000.html) со ссылками на предыдущий и последующий (чтобы листать стрелками). Ну и содержание, само собой. Но содержание уже есть (почти))). А вот нарезка - тут надо попотеть/подумать.
Входные данные такие: экран (площадь, выделенная под сам текст в окне браузера) например задать как 900 на 600 (то есть примерно как площадь iPad'a) за вычетом верхней шапки и подвала. И шрифт с засечками (типа Times) - 26 px. Но вообще интересно, как примерно это реализуется в программах-читалках? Какой там может быть алгоритм, когда программа решает, что надо переводить каретку и когда - что надо перекидывать текст (строку/слово) на сл. страницу?
8
13 сентября 2013 года
mfender
3.5K / / 15.06.2005
То есть ты туда ещё словари прицепляешь, которые переносы осуществляют посредством синтаксического процессора?
248
13 сентября 2013 года
Dmitry2064
590 / / 06.12.2006
нет, словари пока не подключал. Но в идеале, чтобы все совсем красиво и ровно, надо бы (но это уже потом, если дойдут руки )))
8
13 сентября 2013 года
mfender
3.5K / / 15.06.2005
А что говорит CSS3 по этому поводу?
Вообще, интересная тема в плане реализации для различных устройств. Зацепило.
248
14 сентября 2013 года
Dmitry2064
590 / / 06.12.2006
Цитата: mfender
А что говорит CSS3 по этому поводу?
Вообще, интересная тема в плане реализации для различных устройств. Зацепило.



Все это делают обычные читалки: они берут html-текст (вроде бы основной формат e-книг: epub, fb2, mobi и пр.) и режут его на "экраны" в зависимости от размера экрана и величины выбранного шрифта.

CSS3 вроде по этому поводу ничего не говорит, так как нарезка предполагает (как я понимаю) наличие отдельного HTML-документа, с заданной площадью окна. А все CSS'ы работают с содержимым окна, а не с набором окон. И смысл именно в динамической нарезке/создании как бы временных html'ов в соответствии умещаемостью данного текста в заданную площадь. не понятно, можно ли это вообще реализовать в рамках стандартного браузера, не прибегая к изготовлению нового приложения для чтения электронных книг?

То есть задача стоит так: как сделать, что бы перемещаться по некоторому объему текста без прокручиваний страницы, а просто листая текст определенными порциями. Ведь эта проблема уже ж решенная (кем-то и когда-то))) [см., опять же, все программы-читалки].

326
14 сентября 2013 года
sadovoya
757 / / 19.11.2005
Проще написать свой мини-браузер, на движке WebKit, например. Без полосы прокрутки, но с кнопками, которым привязать PageDown/Up. Настройка "порции" ап-дауна наверняка в движках есть, по крайней мере на размер уже выведенного текста (?)

P.S. По поводу собственной реализации верстки (качественной) -- Кнуту в TeX-е удалось, но даже ему не так скоро, как надеялся. :)
248
18 сентября 2013 года
Dmitry2064
590 / / 06.12.2006
Свой браузер. Интересно, но на данный момент ума не хватит точно))) Порежу пока руками, потом будет видно. Спасибо.
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог