Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Программы » Закладки » WinDjView

Модерирует : gyra, Maz

 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96

Открыть новую тему     Написать ответ в эту тему

AndyZ

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
WinDjView
 

WinDjView - это быстрая и компактная программа для просмотра файлов формата DjVu под Windows с вкладками для документов, непрерывной прокруткой страниц и расширенными возможности печати. Она основана на свободно распространяемой библиотеке DjVuLibre. Формат DjVu позволяет сохранять документы и картинки с высоким качеством в файлы малого размера. Программа WinDjView является свободным программным обеспечением. Вы вправе распространять её и/или модифицировать, соблюдая условия Открытого лицензионного соглашения GNU (GPL), опубликованного Free Software Foundation; либо версии 2 Соглашения, либо (по вашему выбору) любой более поздней версии.
 
Сайт: http://windjview.sourceforge.net/ru/
История изменений: http://windjview.sourceforge.net/version-history
 
Текущая версия: 2.1
Скачать WinDjView 2.1
 
Текущая версия для Win 98/ME: 1.0.3
Скачать WinDjView 1.0.3
Скачать WinDjView 1.0.3 archive-repack

WinDjView Extended 3.4 - WinDjView с дополнительными возможностями
Зеркало
Что нового? (17.01.2023)

В этом топике вы можете задавать вопросы по программе и сообщать об ошибках. На SourceForge.net есть страница проекта со своим форумом и базой ошибок и пожеланий, но если пользуетесь сервисами SF.net, то лучше использовать английский язык.
Если у вас имеется проблема, то сначала проверьте, не исправлена ли она в последней версии. Если нет, то опишите подробно по шагам ваши действия, полученный результат и ожидаемый результат. Также имеет значение версия операционной системы. Если проблемы проявляются только на некоторых документах, дайте линк на эти документы.
 
Как "подкрасить" фон страниц (для улучшения читабельности) (реализовано в WinDjView Extended)
Как оптом стереть все пользовательские аннотации/закладки (реализовано в WinDjView Extended)
Как пакетно декодировать все страницы многостраничного DjVu-файла (реализовано в WinDjView Extended)
Программа для отображения линии чтения в WinDjView (реализовано в WinDjView Extended)
 
Диалоги о WinDjView-subpix (форк программы с другой технологией рендеринга, для ЖК дисплеев; в версии 2.0 оригинальной программы так же появилась возможность настройки использования данной технологии):
[0], [1], [2], [3], [4], [5]

WinDjView в Википедии: http://ru.wikipedia.org/wiki/WinDjView

Всего записей: 214 | Зарегистр. 23-01-2006 | Отправлено: 19:33 24-01-2006 | Исправлено: NME, 23:32 19-01-2023
ozioso



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
С Windows 7 x64 нет проблем?

Всего записей: 2228 | Зарегистр. 23-09-2004 | Отправлено: 21:48 30-07-2009
Nicorn



Junior Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
у меня отлично работает

Всего записей: 57 | Зарегистр. 20-10-2008 | Отправлено: 22:59 30-07-2009
monday2000

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
AndyZ

Цитата:
Начните смотреть отсюда: CDjViewApp::LoadDocSettings().

Ничего я там не смог понять.
 
Мне лишь интересует формат параметра settings. Пример:

Цитата:
Windows Registry Editor Version 5.00
 
[HKEY_CURRENT_USER\Software\Andrew Zhezherun\WinDjView\Documents\1135F7FF78B88852620E61152AEFE7E4]
"settings"=hex:ff,ff,1f,fa,ce,8c,a3,72,fe,94,6b,85,48,c3,09,8d,02,64,2d,ba,7e,\
  0c,95,25,62,df,91,79,ff,2e,6f,39,c6,c1,4d,d4,29,92,42,f6,cb,38,c1,51,b8,32,\
  d6,1f,ed,df,57,4a,91,0f,74,31,42,95,9c,67,4a,e5,6d,fa,30,93,18,26,fd,2c,b1,\
  8a,d6,82,b5,5a,f9,47,b2,f2,2c,65,97,7e,e9,6b,27,93,8d,02,b3,82,8a,1a,ae,f6,\
  42,17,48,bc,1b,da,a5,34,83,cd,2b,c1,2f,3b,94,66,8c,30,aa,7a,29,24,43,4e,e1,\
  f2,0f,ae,52,bd,e7,a0,88,3a,88,bd,4f,ee,ad,77,e8,4b,83,03,66,07,91,a5,0e,c0,\
  6a,8e,b9,53,28,ec,0b
"last-known-location"="С:\\1.djvu"

 
Из всего этого settings мне нужно вытянуть лишь 5 параметров:
 
"номер страницы" (многостраничного DjVu-файла), "номер аннотации" (на странице DjVu-файла), "координаты аннотации" (относительно верхнего левого угла страницы), "длина и ширина аннотации", "цвет аннотации").  
 
У Вас же где-то должен быть записан формат параметра settings? Код чтения-разбора мне проще самому написать.
 
Добавлено:
Правда, непонятно - ввиду ограниченности длины параметра settings количество таких аннотаций в DjVu-файле ограничено? Хотелось бы, конечно, неограниченное количество подобных аннотаций.

Всего записей: 2841 | Зарегистр. 13-01-2005 | Отправлено: 11:52 31-07-2009 | Исправлено: monday2000, 11:55 31-07-2009
monday2000

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
AndyZ
Эта ли функция читает WinDjView-специфичные аннотации или нет?

Цитата:
GUTF8String Annotation::GetXML() const

Или это для чтения cтандартных DjVu-аннотаций?
 
 
Добавлено:
Или вот это оно:

Цитата:
GUTF8String DocSettings::GetXML(bool skip_view_settings) const
?

Всего записей: 2841 | Зарегистр. 13-01-2005 | Отправлено: 11:41 03-08-2009 | Исправлено: monday2000, 11:42 03-08-2009
AndyZ

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
monday2000
Я Вам уже написал про функцию, которая загружает связанные с документом данные. Если Вы прочитаете её первые 12 строк, даже не углубляясь дальше, то сразу поймёте, что формат хранения - это сжатый xml. На мой взгляд, там всё прозрачно и понятно.

Всего записей: 214 | Зарегистр. 23-01-2006 | Отправлено: 14:47 04-08-2009
juvaforza

BANNED
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
AndyZ
Прошу прощения, но вы наверное упустили из внимание это сообщение. Спасибо.

Всего записей: 2895 | Зарегистр. 26-11-2005 | Отправлено: 15:13 04-08-2009
AndyZ

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
juvaforza
Могу добавить испанскую локализацию в CVS, хотя не знаю, смотрит ли туда кто-нибудь По поводу истории - действительно, логичнее будет сделать её раздельной для каждого документа. Это будет более похоже на реализацию истории в браузере, тем более что вкладки для документов уже сделаны.

Всего записей: 214 | Зарегистр. 23-01-2006 | Отправлено: 17:24 04-08-2009
monday2000

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
AndyZ

Цитата:
то сразу поймёте, что формат хранения - это сжатый xml

Я понял следующее:
 
Ветка реестра представляется как XML-узел и дальше из этого узла всё считывается.
В функции bool CDjViewApp::LoadDocSettings(const CString& strKey, DocSettings* pSettings) вроде бы нужная мне строка - pSettings->Load(*parser.GetRoot());
Смотрю дальше void DocSettings::Load(const XMLNode& node). Вроде бы нужное мне место - data.Load(child);
Смотрю дальше void PageSettings::Load(const XMLNode& node).
Вроде бы нужное мне место - annotation.Load(child);
Смотрю дальше void Annotation::Load(const XMLNode& node).
Тут уже ничего не понятно.

Всего записей: 2841 | Зарегистр. 13-01-2005 | Отправлено: 18:09 04-08-2009
AndyZ

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
monday2000
Гм, ну там просто подряд извлекаются атрибуты тэга и записываются в поля объекта.

Всего записей: 214 | Зарегистр. 23-01-2006 | Отправлено: 18:32 04-08-2009
monday2000

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
AndyZ

Цитата:
Гм, ну там просто подряд извлекаются атрибуты тэга и записываются в поля объекта.

"Там" - это в void Annotation::Load(const XMLNode& node)? По-моему, это больше похоже на стандартную DjVu-аннотацию. А мне же нужны исключительно WinDjView-специфичные аннотации (которые видны только в WinDjView). Что это за класс - "Annotation"? Это стандартные DjVu-аннотации или же WinDjView-специфичные аннотации?
 
Где же всё-таки осуществляется непосредственное считывание из реестра и парсинг по переменным ветки реестра http://forum.ru-board.com/topic.cgi?forum=5&topic=18322&start=1020#4 ?
 
А сам формат параметра settings у Вас нигде, что ли, не записан? Мне бы проще всего узнать этот формат и всё. И сколько может быть максимально WinDjView-специфичных аннотаций в DjVu-файле?

Всего записей: 2841 | Зарегистр. 13-01-2005 | Отправлено: 13:14 05-08-2009
AndyZ

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
monday2000
Я Вам уже написал и про считывание, и про формат, а Вы мне почему-то не верите Повторяю ещё раз: вся функциональность собрана в методе CDjViewApp::LoadDocSettings. Считывание выполняет функция CDjViewApp::GetProfileCompressed, парсинг xml - функция XMLParser::Parse, а анализ распарсенного - DocSettings::Load.
 
Добавлено:

Цитата:
И сколько может быть максимально WinDjView-специфичных аннотаций в DjVu-файле?
Неограничено (то есть сколько поместится в память).

Цитата:
Что это за класс - "Annotation"
Это внутреннее общее представление всех аннотаций, и пользовательских, и встроенных.

Всего записей: 214 | Зарегистр. 23-01-2006 | Отправлено: 14:22 05-08-2009 | Исправлено: AndyZ, 14:23 05-08-2009
ghosty



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
monday2000
AndyZ
Эти вопросы можно решить и в ПМ - запутываете только друг друга и всех остальных

----------
пропадет-растает

Всего записей: 6808 | Зарегистр. 21-09-2002 | Отправлено: 18:22 05-08-2009
monday2000

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
AndyZ

Цитата:
а анализ распарсенного - DocSettings::Load.  

По-видимому, мне нужно это. Но я затрудняюсь понять, как именно она это делает. Как я понимаю, в ветке реестра HKEY_CURRENT_USER\Software\Andrew Zhezherun\WinDjView\Documents хранятся узлы, каждый из которых соответствует одному DjVu-документу. Имена этих узлов - некий тарабарский набор букв-цифр (MD5-сумма?).
 
Каждый такой узел содержит 3 ключа:
-(по умолчанию)
-last-known-location
-settings
 
Я предполагаю, что вся информация о "пользовательских" (WinDjView-специфичных) аннотациях любого DjVu-документа хранится в этом ключе settings - не так ли? Правда, неясно - а что тогда в HKEY_CURRENT_USER\Software\Andrew Zhezherun\WinDjView\Annotations? И неясно, как может быть
Цитата:
Неограничено (то есть сколько поместится в память).
- если длина ключа settings - ограниченная величина?

Всего записей: 2841 | Зарегистр. 13-01-2005 | Отправлено: 14:19 06-08-2009
AndyZ

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
monday2000
Цитата:
Я предполагаю, что...
Вы можете легко проверить свои предположения, прочитав код.

Цитата:
Имена этих узлов - некий тарабарский набор букв-цифр (MD5-сумма?)
Да.

Цитата:
а что тогда в HKEY_CURRENT_USER\Software\Andrew Zhezherun\WinDjView\Annotations?
Последние использованные настройки аннотаций (будут использованы при создании новой).

Цитата:
если длина ключа settings - ограниченная величина?
А почему Вы решили, что она ограничена? Это сжатый xml, как я уже написал выше.

Всего записей: 214 | Зарегистр. 23-01-2006 | Отправлено: 15:02 06-08-2009 | Исправлено: AndyZ, 15:02 06-08-2009
monday2000

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
AndyZ

Цитата:
сжатый xml

В первый раз слышу такое понятие. Это бинарные данные (типа XML, заархивированный каким-нибудь архиватором)?
 
Добавлено:
Я надеялся, что смогу написать простейшую консольную утилиту, чтобы задаёшь ей имя DjVu-файла - а она чтобы выдёргивала из реестра и выдавала в виде текстовых данных простейшую информацию о его "пользовательских" аннотациях.
 
Но раз там какой-то хитроумный XML (просто XML мне знаком вполне), да и вообще - я, сколько Ваш код не пытаюсь сейчас читать - не могу понять в нём ровно ни хрена , то, пожалуй, на сей раз мне прийдётся оставить свои попытки...
 
Просить Вас сделать фичу экспорта данных о "пользовательских" аннотациях - вроде бы нецелесообразно (это мало кому нужно).
 
Остаётся сожалеть, что эти аннотации - не есть стандартные DjVu-аннотации. C ними я бы легко справился.

Всего записей: 2841 | Зарегистр. 13-01-2005 | Отправлено: 16:05 06-08-2009 | Исправлено: monday2000, 16:31 06-08-2009
monday2000

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Вместо WinDjView пришлось применить СканКромсатор:
 
http://www.djvu-soft.narod.ru/scan/sel_mask_color.htm
 
А жаль...

Всего записей: 2841 | Зарегистр. 13-01-2005 | Отправлено: 17:26 07-08-2009
AndyZ

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
monday2000
В WinDjView начиная с версии 1.0 есть встроенная возможность экспорта аннотаций в файл: File->Export Bookmarks (пользовательские закладки и аннотации экспортируются вместе). На выходе получается тот же самый xml, только без компрессии.

Всего записей: 214 | Зарегистр. 23-01-2006 | Отправлено: 19:52 07-08-2009 | Исправлено: AndyZ, 03:34 08-08-2009
monday2000

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
AndyZ
Вот это да! Гениально. А я тут голову морочаю... Это же именно то, что нужно. Большое спасибо за наводку!
 
Разумеется, это будет в сто раз удобней, чем использовать СканКромсатор для такой цели.
 
Не подскажете ли - как бы максимально попроще программно парсить простой XML в MS VC++ 6.0 ?
 
И ещё вопрос: а как бы потом оптом удалить из DjVu-файла всю эту понаставленную кучу "пользовательских" аннотаций? Нет ли в WinDjView такой фичи? Можно, конечно, залезть в реестр и просто удалить узел, соответствующий данному DjVu-файлу - но это как-то грубовато.

Всего записей: 2841 | Зарегистр. 13-01-2005 | Отправлено: 21:45 08-08-2009
monday2000

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Я придумал, как "подкрасить" фон страниц (для улучшения читабельности).
 
Можно просто расставить на каждой странице по 1 пользовательской аннотации - но размером "на всю страницу".
 
Это даже можно сделать пакетно - достаточно сформировать в сторонней программе XML-файл и импортировать его через "Импорт закладок..."
 
Кстати, "Импорт закладок..." и "Экспорт закладок..." - явно неудачные названия. Они не отражают тот факт, что там ещё и пользовательские аннотации.
 
Добавлено:
AndyZ
Странно - оказывается, координаты при этом могут быть отрицательными.

Всего записей: 2841 | Зарегистр. 13-01-2005 | Отправлено: 09:51 11-08-2009 | Исправлено: monday2000, 09:52 11-08-2009
djdtyfhu



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
AndyZ
 
А можно ли включить в программу функцию добавления, редактирования оглавления (bookmarks в терминологии Adobe Acrobat) c подобной же идеологией работы:
 
1. При нахождении на определенной странице нажимаем Ctrl+B - вставляется пункт оглавления, причем на том же уровне вложенности, что и предыдущий.
 
2. Фокус ввода текста перемещается на пункт оглавления, и можно вводить свой текст.
 
3. После нажатия Enter оглавление сохраняется
 
4. При перемещении по оглавлению по нажатию на F2 можно редактировать пункты.

Всего записей: 422 | Зарегистр. 28-12-2004 | Отправлено: 18:31 12-08-2009
Открыть новую тему     Написать ответ в эту тему

Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96

Компьютерный форум Ru.Board » Компьютеры » Программы » Закладки » WinDjView


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru