Page 2 of 8

Re: Смотрелка pdf

Posted: Fri May 25, 2012 8:26 am
by SoUrcerer
Вернулся к pdf через полгода. Думал сначала, повешусь. Ан нет, оказывается, я сделал валидный make-файл, и все собирается по одной-единственной команде. Выпилил все шрифты кроме одного, сжатый бинарник теперь занимает не 2,5 мегабайта, а всего 800 килобайт. Смысла выкладывать его пока что не вижу. Через пару дней поковыряюсь с gui для этого дела. 800-килобайтную версию можно и на CD-maximal включать.

Re: Смотрелка pdf

Posted: Fri May 25, 2012 10:49 am
by SoUrcerer
Большой прогресс. Программа рисует окно и выводит в него первую страницу. Цвета почему-то обрабатываются неправильно (не BGR?!), и прокрутка не работает (потому что blit).

Re: Смотрелка pdf

Posted: Fri May 25, 2012 12:25 pm
by SoUrcerer
Свежая версия:
Screenshot-64.png
Screenshot-64.png (85.01 KiB)
Viewed 6596 times
ftp://ftp.kolibrios.org/users/SoUrcerer/updf

Хотел сначала использовать SDL-версию nuPDF (чем по сути этот порт и является), но в итоге психанул и написал всё целиком, основываясь на версии для X11.
Запускать так:
updf [путь_к_pdf]
Листать страницу - h,j,k,l. Следующая/предыдущая страницы - [,]. Поворот страницы - a,s, L, R. Масштаб + и -.
В qemu перерисовка безумная. На реальной машине, наверное, тоже, что очень печально. Изменение размеров окна пока не поддерживается, и многое другое - тоже.

Данную версию updf легко превратить в то, что я хотел сделать с webby. Причем даже с ссылками мучиться не надо - где-то "внутри" себя updf обрабатывает нажатия на ссылки в pdf-ках. Один вечер, подъем сервера - и можно будет смотреть красивые странички. Правда, без js и возможности отправки данных в поля ввода. Предвижу, что это никому не нужно.

Re: Смотрелка pdf

Posted: Fri May 25, 2012 12:29 pm
by Leency
Сейчас потестим)

Re: Смотрелка pdf

Posted: Fri May 25, 2012 1:34 pm
by SoUrcerer
ftp://ftp.kolibrios.org/users/SoUrcerer/updf1
Выпилил еще больше поддержки китайского-корейского-японского. Если кому-то надо будет, впилю назад. Все остальное такое же, как было. Теперь занимает не 828 килобайт, а 473. Если заменить шрифт на что-нибудь полегче, то можно еще килобайт 50 выиграть.

Re: Смотрелка pdf

Posted: Fri May 25, 2012 1:50 pm
by Mario
Я так понимаю это упакованный вариант бинарника?

Re: Смотрелка pdf

Posted: Fri May 25, 2012 2:01 pm
by SoUrcerer
Конечно, без упаковки больше мегабайта.

Re: Смотрелка pdf

Posted: Fri May 25, 2012 2:34 pm
by SoUrcerer
Внимание, тревога: файлы, в чьем имени используется пробел, открываться не могут из-за моей тупой ошибки.

Re: Смотрелка pdf

Posted: Fri May 25, 2012 3:23 pm
by SoUrcerer
Тревога отменяется. Исправленная версия: ftp://ftp.kolibrios.org/users/SoUrcerer/updf1

Re: Смотрелка pdf

Posted: Fri May 25, 2012 8:23 pm
by Serge
Потестил в реале. Работает шустро, но заметны повторяющиеся перерисовки (два или три раза) при смене страницы и при каждом обновлении полная перерисовка окна с заливкой фона.

Re: Смотрелка pdf

Posted: Fri May 25, 2012 9:18 pm
by SoUrcerer
Я вообще удивлен, что оно сегодня заработало. Я писал морду с нуля, заглядывая в версию для X11. Если нужно, могу выложить исходники, но для сборки нужна куча всякой всячины. zlib, libjpeg, libopenjpeg, libpng, freetype2 и, возможно, что-то ещё. make-файл предназначен для menuetlibc.
Можно добавить прокрутку, меню, поиск по файлу, переход к странице, выделение текста, копирование текста, прокрутку мышью, разные курсоры мыши, гиперссылки в документе - все это поддерживается библиотекой.
Почему перерисовка происходит два раза - видимо, какой-то флаг я не учитываю (подозреваю, это флаг shrink, который заставляет окно pdf-просмотрщика подстраиваться под размер документа). Заливку фона я пытался убрать, но был слишком устал для того, чтобы правильно определить координаты, которые нужно заливать (хотя почти все готово).
В целом работает не хуже, чем nuPDF на моей приставке Ritmix RZX-50.

Re: Смотрелка pdf

Posted: Fri May 25, 2012 11:03 pm
by Serge
SoUrcerer
Выкладывай, может что дельное в голову придёт по опыту FPlay.
zlib, libpng и freetype242 есть, последнюю я кстати не стал заливать на свн, думал ты это сделаешь.

Re: Смотрелка pdf

Posted: Fri May 25, 2012 11:09 pm
by SoUrcerer
Содержимое папки ftp://ftp.kolibrios.org/users/SoUrcerer/uPDF/ нужно накатить на исходники mupdf-0.9. Для компиляции необходимо, чтобы в папке scripts лежали скомпилированные версии fontdump и cmapdump. Так же необходимо иметь файл snprintf, потому что snprintf/fnprintf в menuetlibc не реализованы.Все cmaps можно заменить на пустышки, а лишние шрифты - выпилить. Если все файлы имеются, то для сборки достаточно ввести make.

Re: Смотрелка pdf

Posted: Fri May 25, 2012 11:11 pm
by Serge
Посмотрю. Хорошо бы это сразу на свн.

Re: Смотрелка pdf

Posted: Fri May 25, 2012 11:15 pm
by SoUrcerer
Мне стыдно такое на SVN выкладывать. Куча отладочной информации, куча косяков и совершенно непричесанный код. Хотя бы мерцание убрать.