Ru-Board.club
← Вернуться в раздел «Программы»

» WinDjView

Автор: ghosty
Дата сообщения: 10.01.2007 13:53
AndyZ
Нашел глюк: если нажать на иконке сначала одной кнопкой мыши и сразу другой (порядок не имеет значения) WinDjView перестает отвечать.

Заметил, что в последнем плагине и в Акробат Ридере сглаживание теперь реализовано лучше. Читать стало намного приятнее. Можно ли в WinDjView реализовать сглаживание?
Автор: AndyZ
Дата сообщения: 10.01.2007 16:06
ghosty
Немного не понял. На какой иконке, в какой момент, что значит "сразу" (не отпуская предыдущую кнопку, или отпустив её)? Если имеется в виду тулбар, то см. выше по ветке - это уже обсуждалось, проблема не в WinDjView, а в Windows.

Насчёт сглаживания: здесь уже было обсуждение по поводу поиска лучшего алгоритма масштабирования, в результате был выбран pnmscale, который сейчас реализован в виде опции "Sharp scaling". Но если вам известны другие быстрые алгоритмы, дающее лучшее качество, то я готов их рассмотреть. Для WinDjView правильным словом будет всё-таки не сглаживание, а масштабирование, потому что DjVuLibre выдаёт страницу целиком в виде картинки, а Adobe Reader сглаживает векторные шрифты.
Автор: ghosty
Дата сообщения: 10.01.2007 16:47
AndyZ

Цитата:
Немного не понял. На какой иконке, в какой момент,

Имелось в виду, на любой иконке в тулбаре (других иконок, вроде, нет) в любой момент времени.
Цитата:
(не отпуская предыдущую кнопку, или отпустив её)?
Отпустив, и сразу нажав другую.
Цитата:
Если имеется в виду тулбар, то см. выше по ветке - это уже обсуждалось, проблема не в WinDjView, а в Windows.
Может быть, но воспроизводится она у меня только в WinDjView, после чего тулбар перестает работать совсем...

Проблема сглаживания обсуждалась здесь. Там кто-то даже решил уже пристроить свой алгоритм.

Добавлено:

Цитата:
а Adobe Reader сглаживает векторные шрифты.
Имелись в виду, конечно же, растровые PDF.
Автор: AndyZ
Дата сообщения: 10.01.2007 22:55
ghosty
Двойной Alt-Tab решает проблему. Наверно придётся просто заблокировать клик правой кнопкой по тулбару. Хотя вроде бы это всего второй случай, когда кто-то заметил этот глюк. Просто не надо нажимать лишние кнопки.
Автор: tukktukk
Дата сообщения: 12.01.2007 00:27
Хотел доложить, что WinDjView работает на ура под Линуксом (Сюзи 10.1) под Wine.
Автор: TCPIP
Дата сообщения: 12.01.2007 02:00
ghosty
17:47 10-01-2007
Цитата:
Имелось в виду, на любой иконке в тулбаре (других иконок, вроде, нет) в любой момент времени.

Так а пресловутое свернуть и развернуть не помогает?
Автор: F3GBJU
Дата сообщения: 12.01.2007 04:49
Имхо стоит реализовать вкладки как в DjVuReader, и по выбору многооконность.
Автор: kimserge
Дата сообщения: 12.01.2007 15:21
AndyZ
Простите, что опять спрашиваю, увидел, что Вы появились..
Как насчет поиска по диакритическим знакам? Возможно такое в принципе?
Кратко по-русски: чтобы сложная буква, зашитая в ОЦР слой подменялась при поиске простой, близкой по написанию.
Спасибо!
Автор: monday2000
Дата сообщения: 15.01.2007 07:27
AndyZ

Цитата:
Но если вам известны другие быстрые алгоритмы, дающее лучшее качество, то я готов их рассмотреть.

А Вы этот проект смотрели - http://filters.sourceforge.net/ - может там что-то есть подходящее.

У меня такие проблемы с WinDjView:

1. WinDjView 0.4.3 при просмотре DjVu-файлов под Win2000 Server отображает Unicode UTF8-текст как Windows 1251-текст. Я специально воспроизвёл эту ситуацию с обычным HTM-файлом в броузере и убедился в этом. Эта проблема даёт характерные крякозяблы в WinDjView 0.4.3 вместо русского текста как в букмарках, так и в аннотациях к гиперлинкам. А броузерный DjVu-плагин всё отображает как нужно - значит это глюк WinDjView.

Это старая и известная проблема - я Вам о ней уже ранее сообщал, и Вы её вроде тогда пофиксили.

Так вот - на WinXP (и на Win98 с WinDjView-0.4.3-Win98.exe) эта проблема не проявляется! Только на Win2000 Server выскочила.

2. Повторно обращаюсь с той же проблемой - совершенно не работает дерево-оглавление под Win98. Стоит лишь немного по этому дереву "понавигировать" - как оно тут же "сыплется" - и работа с ним становится совершенно невозможной.
Не могли бы Вы всё-таки как-нибудь установить на своём компьютере также и Windows 98? Хотя бы в виде виртуального компьютера под VMWare или Virtual PC? Раз Вы делаете версию WinDjView-***-Win98.exe - то ИМХО неплохо было бы иметь на компе Win98 - как раз для отладки. А так Вы "вслепую" делаете Win98-WinDjView версии - отсюда и такие проблемы.
Лично я постараюсь до последнего сидеть на Win98 - ИМХО это наиболее дружественная к пользователю операционка из всех виндов. Кроме того - в большинстве российских учреждений Windows 98 ещё в ходу на широкую ногу - и вряд ли это в ближайшие годы изменится - т.к. это требует покупки новых компов, а на это нет денег у них.
Автор: AndyZ
Дата сообщения: 15.01.2007 13:37
monday2000
http://filters.sourceforge.net/ - только что посмотрел. Resize там реализован самым примитивный образом. Естественно, не годится.

Unicode в Win 2000 - действительно, есть такой баг. Спасибо. Исправлю в следующей версии.

Оглавление - я проверял в Win98SE под VMWare. Всё работало без проблем. У меня, к сожалению, нет времени проводить полноценное тестирование программы. Судя по статистике, доля версии WinDjView под Win98 составляет менее 6% от всех закачек и снижается. К тому же Win98 более не поддерживается Microsoft. Если действительно эта проблема настолько острая, то Вы можете скачать исходники WinDjView и запустить отладку. Класс, реализующий дерево, находится в файле MyTreeCtrl.cpp, и почти не завязан на остальных частях программы.
Автор: monday2000
Дата сообщения: 18.01.2007 12:12
AndyZ

Цитата:
то Вы можете скачать исходники WinDjView и запустить отладку

Попробовал. Дайте, пожалуйста, пошаговую инструкцию - как скомпилировать программу из исходников? У меня MS VC++ 6.0.

В общем, скачал-распаковал исходники. Нажал мышью на "WinDjView.dsw", открылся MS VC++ 6.0 (на работе у меня WinXP Prof 2002 SP2 Rus).

Уже в MS VC++ 6.0 выбрал в меню: Build -> Rebuild All. Не скомпилировалось. Вылетела ошибка:

Compiling...
stdafx.cpp
C:\Documents and Settings\Administrator\Рабочий стол\WinDjView-0.4.3\libdjvu/GRect.h(345) : error C2678: binary '==' : no operator defined which takes a left-hand operand of type 'const class GRect' (or there is no acceptable conversion)
Error executing cl.exe.
Автор: AndyZ
Дата сообщения: 18.01.2007 12:45
monday2000
По-видимому, у Вас не установлен сервис пак к VC6. Без него действительно не собирается, потому что в компиляторе ошибка. Кроме того, перед тем как собирать проект, нужно собрать библиотеку libdjvu командой nmake "DEBUG=1" (предварительно запустив vcvars32.bat, если нужно).
Автор: monday2000
Дата сообщения: 18.01.2007 13:01
AndyZ

Цитата:
Оглавление - я проверял в Win98SE под VMWare. Всё работало без проблем. У меня, к сожалению, нет времени проводить полноценное тестирование

Вспомнил - дерево-оглавление под Win98 работает корректно в 0.3.5. Возьмите оттуда кусок кода и вставьте в новую версию.

Цитата:
По-видимому, у Вас не установлен сервис пак к VC6.

Точно. Сервис-пак 5 есть у меня, поставлю.

Цитата:
командой nmake "DEBUG=1"

Это место не понял. Каков точный синтаксис? Вы бы сделали какой-нибудь батничек для этого (прямо в составе дистрибутива исходников), а то и вообще - некую мини спец. программку - да хоть консольную - запускаешь её - и она все обэжэшки билдит, и не надо себе голову забивать.

Добавлено:
AndyZ
Вот - сейчас специально провёл натурный эксперимент - есть у нас тут на работе в сетке комп с Win98. В эксперименте участвовали:

1. WinDjView-0.3.6.
2. WinDjView-0.4.3-Win98.

На обе программы есть исходники на сайте DjVuLibre.

Итак:

1. Открываем WinDjView (под Win98).
2. Открываем в WinDjView любой DjVu-файл, где есть дерево-оглавление.
3. Кликаем мышкой на любой узел дерева - чтобы ветвь раскрылась.
4. Кликаем на любой лист дерева в раскрывшейся ветви.
5. Кликаем на этот же узел дерева - чтобы свернуть раскрытую ветвь.

Вот в этом самом месте и происходит глюк: раскрытая ветвь не сворачивается - в WinDjView-0.4.3-Win98 и успешно сворачивается в WinDjView-0.3.6.

То есть с WinDjView-0.3.6 не возникает никаких проблем при навигации по дереву-оглавлению под Win98, а вот WinDjView-0.4.3-Win98 абсолютно невозможно использовать для такой навигации.

Добавлено:
Я готов поковыряться в исходниках WinDjView, но толко если процедура компиляции экзешника будет простой - без этих там
Цитата:
перед тем как собирать проект, нужно собрать библиотеку libdjvu командой nmake "DEBUG=1" (предварительно запустив vcvars32.bat, если нужно).
- это слишком сложно, подумайте над созданием некоего батника (+ инструкция в 2 словах к нему), делающего эту работу. Я хотел бы "бездумно нажал 2-3 клавиши - получил готовый экзешник".
То есть, я-то ещё мог бы в принципе преодолеть свою лень и всё это выполнить - но другие - никогда - а значит, исходники WinDjView так и будут невостребованы и далее.

Добавлено:
А, вот заметил - некий файл "libdjvu\makeall.bat" - это, наверное, и есть такой батничек? Тогда что, запускаем его, потом WinDjView.dsw", и Build -> Rebuild All, и всё? (ну и плюс сервис-пак? - у меня 3-ий идёт прямо на дистре с VC - просто мне было его лень ставить , и ещё 5-ый отдельно есть скаченный).
Автор: AndyZ
Дата сообщения: 18.01.2007 16:09
monday2000
В версии 0.3.5/0.3.6 использовалось стандартное дерево из Windows. Сейчас (начиная с 0.4.2) используется собственное дерево, реализация которого находится в файле MyTreeView.cpp. Причина - стандартное дерево не умеет переносить длинные строчки. Именно для этой функциональности и было написано новое дерево.


Цитата:
исходники WinDjView так и будут невостребованы и далее.
Если кому-то действительно нужны исходники, то "запустить nmake" никак не может являться препятствием. Это не так сложно, как может показаться, и голова совершенно не забивается . И потом, компиляция WinDjView уже обсуждалась в этой ветке, ещё на второй странице.
Автор: monday2000
Дата сообщения: 19.01.2007 11:08
AndyZ

Цитата:
Если кому-то действительно нужны исходники, то "запустить nmake" никак не может являться препятствием.

Будет у меня время - посмотрю на исходники.

Цитата:
Это не так сложно, как может показаться, и голова совершенно не забивается

То есть я имел в виду "популяризовать" использование исходников WinDjView - с тем, чтобы и программисты-любители, даже и имея малый объём программистских знаний, всё равно смогли бы залезть в исходники и без лишних усилий скомпилировать прогу.

Добавлено:
AndyZ

Цитата:
Причина - стандартное дерево не умеет переносить длинные строчки.

Вот это было ИМХО замечательное нововведение - "заворачивать" длинные строки на 2 и далее "ряд" - я даже стал реально поэтому букмарками пользоваться - а ранее их из-за этой проблемы категорически отвергал - агитируя за концепцию гиперссылочного оглавления а-ля DjVu Hyperlinks Editor.

Добавлено:
Кстати - Ваша прога Bookmark Tool тоже имеет лёгкий недостаток - внедряемый HTM-файл с букмарками должен не содержать непечатный символ "перевод на новую строку" - а то он после внедрения отображается в букмарках квадратиками - как в броузерном DjVu-плагине, так и в WinDjView.
А я пользуюсь FrontPage98 как Htm-редактором - так он достаточно длинные строки в HTM-коде переносит на следующую строку HTM-файла (если его как текстовый файл рассматривать). Так что потом приходится вручную в Bred2r править внедряемый HTM-файл с букмарками после FrontPage98 - "сворачивать" "многострочные" строки в одну длинную строку.
Автор: AndyZ
Дата сообщения: 19.01.2007 13:02
monday2000

Цитата:
внедряемый HTM-файл с букмарками должен не содержать непечатный символ "перевод на новую строку" - а то он после внедрения отображается в букмарках квадратиками - как в броузерном DjVu-плагине, так и в WinDjView.
Я не знал об этой особенности. Спасибо, исправлю.
Автор: basilio_ef
Дата сообщения: 20.01.2007 11:42


[Posted by 172.23.8.95 via http://algart.net/ww This is added while posting a message to avoid misuse.
Try: http://webwarper.net/webwarper.exe Example of viewing: http://webwarper.net/ww/~av/forum.ru-board.com/topic.cgi?forum=5&topic=18322&start=300 ]

AndyZ

Программа EmbedBookmarks-1.0 имеет две ошибки.

1. Внедряет bookmarks в Djvu файл без проверки размера структурного блока.
Поэтому при размере блока более 255 строк, вьюверы неправильно отображают дерево
оглавления. Я уже об этом Вам сообщал. Но об ограничении многие не знают. Смотрите
переписку мою переписку с arienai в ветви http://webwarper.net/ww/~av/forum.ru-board.com/topic.cgi?forum=35&topic=32523&start=120

2. Неправильно именует файл-результат, если имя файла djvu представлено
кириллицей, а путь к этому файлу содержит только латиницу. В этом случае
имя файла программа записывает в Unicode, которое в Windows отображается
набором темных прямоугольников ( типа символов Full Block).
Например, K:\sxemo\russkij\название.djvu . Такое расположение файла дает ошибку.

Все правильно работает,когда кириллица присутствует и в пути к файлу, имя
которого представлено кириллицей.
Например, K:\sxemo\русский\название.djvu. Такое расположение файла ошибки не дает .

Теперь о об отходе от "стандартного дерева из Windows" в WinDjView-0.4.3.

С моей точки зрения решение не совсем удачное и вот почему:
1. До неприличия замедляет загрузку файлов с большими bookmarks.
Файл Encyclopedia_of_Computational_Mechanics_Vol.1-Fundamentals.djvu, о котором я
Вам писал, загружается более 10 секунд. Без bookmarks Вашей же программой он
загружается мгновенно. Ранние версии программы загружают существенно быстрее.
На это замедление жалуется и упомянтый выше arienai.
2. Внешний вид строки с "заворотами" выглядит не эстетично, а при больших размерах
bookmarks дерево становится слишком длинным.

Вообще, стандартное отображение дерева, когда при наведении курсора отображается
строка оглавления любой длины, подчеркиваю с моей точки зрения, вполне удачное
компромиссное решение. Не зря авторы plug-in, djvu fancy viewer используют стандартный
подход. Это относится и к ридерам pdf.

Djvu-копий книг с большими размерами bookmarks достаточно много - это
энциклопедии, справочники, словари и фундаментальные монографии.

Автор: AndyZ
Дата сообщения: 20.01.2007 15:40
basilio_ef

Цитата:
при размере блока более 255 строк, вьюверы неправильно отображают дерево
оглавления.
Проблема не в WinDjView, а в EmbedBookmarks. Версия 0.4.3 уже умеет отображать оглавление с размером блока более 255 строк. Следующая версия EmbedBookmarks сможет создавать правильное оглавление.

Цитата:
Неправильно именует файл-результат, если имя файла djvu представлено
кириллицей, а путь к этому файлу содержит только латиницу.
Исправлю в следующей версии.

Цитата:
замедляет загрузку файлов с большими bookmarks
Загрузка будет ускорена в версии 0.4.4

Цитата:
при больших размерах bookmarks дерево становится слишком длинным.
Сворачивание длинных строк можно отключить в настройках.
Автор: basilio_ef
Дата сообщения: 20.01.2007 16:50


[Posted by 172.23.8.95 via http://algart.net/ww This is added while posting a message to avoid misuse.
Try: http://webwarper.net/webwarper.exe Example of viewing: http://webwarper.net/ww/~av/forum.ru-board.com/topic.cgi?forum=5&topic=18322&start=300 ]

AndyZ

Вы обходите молчанием тему использования WinDjView для просмотра многотомников. Хотелось бы услышать Ваш комментарий.
Автор: monday2000
Дата сообщения: 22.01.2007 13:34
AndyZ

Цитата:
Я не знал об этой особенности. Спасибо, исправлю.

Может, Вы заодно и напишете программу, обратную EmbedBookmarks - т.е. выгоняющую дерево-оглавление из DjVu-файла в HTM-файл? Давно ИМХО нужна такая - да и с точки зрения логики - раз есть внедрение - так нужно и извлечение - а то у djvused этот дурацкий лисповский формат букмарков на нервы действует. Ну и стирание букмарков в DjVu-файле сделать бы - на закуску.
Кстати - само название EmbedBookmarks - длинновато - хорошо бы подсократить под досовский формат 8.3 - а то сейчас приходится писать 2 батника вместо одного - один для Win98 - типа "EmbedB~1 content.htm file.djvu", а второй - для Win2000/XP - вида "EmbedBookmarks content.htm file.djvu".

Все 3 функциональности - вставить, извлечь, стереть (букмарки) - иметь бы в некоей единой программе консольной - скажем, "bookmark.exe" (кажется, DjVu-софтины именно с таким именем не существует - файл Fancy Viewer 1.5'а называется "djvubookmark.exe" - я сейчас специально посмотрел).
Автор: foo
Дата сообщения: 24.01.2007 20:26
AndyZ
Нет ли у вас в планах добавления инструмента для копирования выделенного прямоугольника страницы в качестве растра в буфер обмена - нужная весчь для выдирания картинок?
Автор: monday2000
Дата сообщения: 30.01.2007 13:12
AndyZ
См. Установка Windows 9x поверх NT/2000/XP - теперь можно потестить WinDjView под Win98.
Автор: Kommunist
Дата сообщения: 31.01.2007 12:20
Эх, ещё бы добавили чтоб WinDjView помнила размер окна. А то при каждом открытии DjVu файла приходится выставлять.
Автор: terminat0r
Дата сообщения: 31.01.2007 18:09
foo

Цитата:
Нет ли у вас в планах добавления инструмента для копирования выделенного прямоугольника страницы в качестве растра в буфер обмена - нужная весчь для выдирания картинок?

поддерживаю, очень нужная.
Автор: LuckyStaRR
Дата сообщения: 02.02.2007 03:53
у меня такая проблема что файлы в WinDjView всегда открываются в новой копии программы, а не в одной и той же как по нормальному это делается. Но если в самой проге нажать "открыть" и выбрать файл то файл откроеться в той же копии. Почему так получается и что делать ?
Автор: monday2000
Дата сообщения: 02.02.2007 11:22
AndyZ
Как ни странно - но есть ещё люди, читающие книги при помощи броузерного DjVu-плагина.

Возникла идея: возможно, есть смысл сделать некую кнопку в опциях - "добавить в контекстное меню DjVu-файла пункт "Открыть с WinDjView"" - чтобы при этом сохранялась файловая ассоциация с броузерным плагином.
Автор: Griefin
Дата сообщения: 02.02.2007 12:15
monday2000
Это актуально только для Windows 98. Windows XP/2003 сама ведет список программ, с помощью которых можно открыть файл.
Автор: VovIK
Дата сообщения: 05.02.2007 10:10
monday2000

Цитата:
Как ни странно - но есть ещё люди, читающие книги при помощи броузерного DjVu-плагина

А что тут такого странного?
Каждый читает тем, что ему лично удобнее и привычнее

Автор: LuckyStaRR
Дата сообщения: 10.02.2007 12:05

Цитата:
файлы в WinDjView всегда открываются в новой копии программы, а не в одной и той же как по нормальному это делается. Но если в самой проге нажать "открыть" и выбрать файл то файл откроеться в той же копии. Почему так получается и что делать

когда же я выбираю в контекстном меню открыть с помощью WinDjView то открывается в той же копии. а когда просто Ентером нажимаю то открывается новая копия . почему так просходит ?
Автор: monday2000
Дата сообщения: 27.02.2007 09:37
Наконец, у меня оформилась идея по WinDjView, о которой я давно говорил:

Нужно взять исходники WinDjView, и из них скроить некую Dll-библиотеку с хорошим API и документацией - для отображения DjVu-файлов в своей программе.

Литература:
http://www.bhv.ru/books/book.php?id=1852 - на Натахаусе лежит с диском Натахаус.ру/2006/07/26/metody_i_algoritmy_kompjuternojj_grafiki_v_primerakh_na_visual_c.html.

Мне, увы не до этого - может, кто-то за это возьмётся?

Страницы: 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556

Предыдущая тема: Двухядерные AMD


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.