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

» WinDjView

Автор: nonnus
Дата сообщения: 18.03.2006 02:39
Kiljes
Букмарки делаются, в notepad без проблем со всеми от сюда вытекающими последствиями.

Добавлено:
Если Вы имели в виду, что букмарков в windjview нет? Так я только что их прикручивал к одной своей дежавухе. Последння версия 0.4.1 рулит, хоть и работать есть над много чем. Классная прога, мне нравиться.
Автор: AndyZ
Дата сообщения: 18.03.2006 14:51
nonnus
Цитата:
реализовать поддержку букмарков (bookmarks) или содержания также из внешнего файла
Идея хорошая. Нужно только выбрать формат этого файла .toc.

Цитата:
если идентифицировать как-то дежавушки, например, по хэшам или другим подписям плюс имя файла
Per-document settings уже есть в моём todo. У меня есть ещё несколько других идей, как их можно использовать. Так что когда-нибудь будут реализованы.

Цитата:
хоть и работать есть над много чем
Список, пожалуйста. На мой взгляд, в текущей версии реализована вся функциональность, которая может понадобиться 95% пользователей.
Автор: Sky2003
Дата сообщения: 18.03.2006 16:30
AndyZ
Скажите, а можно сделать так, чтобы в режиме Continuous Layout при нажатии PgDn пролистывалось всё содержимое окна, как это сделано в MS Office и IE? Я имею в виду, чтобы тот текст, который находится в самом низу экрана, после нажатия PgDn уже не появлялся, а вверху экрана было только продолжение. Сейчас новый текст начинается не с самого верха экрана, а где-то с 1/4, до этого идёт предыдущая страница. Прощу прощения за путанное объяснение
Автор: nonnus
Дата сообщения: 18.03.2006 16:46
AndyZ

Цитата:


Цитата: реализовать поддержку букмарков (bookmarks) или содержания также из внешнего файла
    
Идея хорошая. Нужно только выбрать формат этого файла .toc.
Автор: mramor
Дата сообщения: 18.03.2006 21:23
если в программе открыть неполный файл (например, недокачаный), то WinDjView генерирует ошибку и завершает работу. но, как я понимаю, формат djvu позволяет программам-просмотрщикам открывать такие файлы. может стоит все-таки при открытии неполного файла обрабатывать такую ситуацию и спокойно показывать имеющиеся страницы, возможно сообщив пользователю о неполноте файла.
Автор: monday2000
Дата сообщения: 20.03.2006 16:57
mramor

Цитата:
но, как я понимаю, формат djvu позволяет программам-просмотрщикам открывать такие файлы.

Я тоже такое видел (недокаченные DjVu-файлы) - но, вроде бы, WinDjView их нормально показывает.

Добавлено:
AndyZ

Цитата:
Идея хорошая. Нужно только выбрать формат этого файла .toc.

Может, давайте лучше .htm ? Чтобы руками тоже можно было править.
nonnus

Цитата:
Есть предложение реализовать поддержку букмарков (bookmarks) или содержания также из внешнего файла (кроме как только из самой дежавушки),

Это типа indirect-режима для многостраничных дежавюшек? Он так и задумывался - имеем index-файл со ссылками и россыпь одностраничных дежавюшек, на которые он ссылается.
Автор: nonnus
Дата сообщения: 21.03.2006 11:50
monday2000

Цитата:

Цитата:
но, как я понимаю, формат djvu позволяет программам-просмотрщикам открывать такие файлы.

Я тоже такое видел (недокаченные DjVu-файлы) - но, вроде бы, WinDjView их нормально показывает.
Автор: AndyZ
Дата сообщения: 21.03.2006 12:54
nonnus
Цитата:
Вообще-то djvu формат потоковый, и не то что бы он не докачанный, а должен просматриваться программным обеспечением постранично не скачивая весь файл целиком. Вообще, было бы неплохо, чтобы и WinDjView так умел с url читать документы.
Библиотека DjVuLibre, к сожалению, имеет внутренние баги, из-за которых при открытии с диска недокачанных документов программа иногда падает. В версии 0.4.1 такие ситуации отлавливаются, WinDjView об этом сообщает и предлагает перезапустить программу. Что касается открытия прямо по url, то я не вижу в этом смысла. Лучше закачать документ, а потом открыть его локально.

Цитата:
Сообщите в ПМ куда слать, и я пришлю.
zhezherun AT users DOT sourceforge DOT net

Sky2003
Цитата:
Скажите, а можно сделать так, чтобы в режиме Continuous Layout при нажатии PgDn пролистывалось всё содержимое окна, как это сделано в MS Office и IE?
Мне нравится текущий вариант. Он даёт возможность увидеть конец предыдущей страницы при перелистывании, что упрощает чтение документа. Так работают Adobe Reader и Preview.
Автор: nonnus
Дата сообщения: 21.03.2006 13:29
AndyZ

Цитата:
Библиотека DjVuLibre, к сожалению, имеет внутренние баги, из-за которых при открытии с диска недокачанных документов программа иногда падает. В версии 0.4.1 такие ситуации отлавливаются, WinDjView об этом сообщает и предлагает перезапустить программу.

Не могу не выразить своё почтение за Ваш труд

Цитата:
Что касается открытия прямо по url, то я не вижу в этом смысла. Лучше закачать документ, а потом открыть его локально.

Конечно, лучше скачать документ целиком Но часто это не представляется возможным, и вообще говоря желательно просмотреть выборочно страницы перед закачкой чтобы убедиться, что именно этот документ который нужен. Вот такой смысл.
Но с другой стороны, на сколько я понимаю, WinDjView не предназначается для такого рода действий.
Автор: monday2000
Дата сообщения: 22.03.2006 09:44
nonnus

Цитата:
Вообще, было бы неплохо, чтобы и WinDjView так умел с url читать документы.

Да, я тоже давно уже об этом подумал. Но, по-видимому, тут надо сделать специальную файлокачалку, чтобы она скачивала задаваемую порцию файла (djvu-файла, в данном случае). Однако, нужно, чтобы файл был так и выложен как есть, не запакован в архив - что, впрочем, имеется на том же хоумлинуксе.

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

Цитата:
А xml у Вас руками править не получается?

Давайте xml - ещё лучше.
AndyZ

Цитата:
zhezherun AT users DOT sourceforge DOT net

Кстати, обратите внимание - Yahoo-ящик не стоит использовать - см. http://forum.ru-board.com/topic.cgi?forum=29&bm=1&topic=8025&start=80#10


Добавлено:

Цитата:
Нет, тут речь идеёт о дежавушке одним файлом, а сам файл содержания отдельно.

Что-то не пойму смысл - а что, нельзя в просто htm-файле понаделать ссылки на внутренние страницы djvu-файла? Для чего предлагаемая фича и что она такое есть?
Автор: nonnus
Дата сообщения: 22.03.2006 12:55
monday2000

Цитата:
Однако, нужно, чтобы файл был так и выложен как есть, не запакован в архив - что, впрочем, имеется на том же хоумлинуксе.

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


Цитата:
Что-то не пойму смысл - а что, нельзя в просто htm-файле понаделать ссылки на внутренние страницы djvu-файла? Для чего предлагаемая фича и что она такое есть?

Простые штмл с сылками внутри файла, по идее, не правильно использовать, так как они имееют не определённый формат (надо писать полноценный разборщик html, a если уж мы говорим об html, то нужно учесть и что надо обрабатывать ситуации когда не все теги закрыты, т.е. предпочтительнее использовать тогда уже xhtml), тут речь идёт о конкретных форматах содержаний.

Автор: nsinel
Дата сообщения: 28.03.2006 11:08
По поводу русификации версии 0.4.1.
Скачал WinDjView-0.4.1-RU.dll, положил как рекомендуется в папку с WinDjView-0.4.1.exe, однако выбор языков не расширился. Переименование в WinDjView-0.4.1.dll, WinDjView.dll и даже в WinDjView-RU.dll не помогает.
Может быть кто-то разобрался?
Автор: docck
Дата сообщения: 28.03.2006 11:25
nsinel
Не знаю даже, у меня никаких проблем не возникло, ничего я не переименовывал, программа сразу показала наличие другого языка.
Автор: AndyZ
Дата сообщения: 28.03.2006 16:36
nsinel
После того, как Вы положили новую dll, нужно перезапустить программу. Переименовывать файлы не требуется.
Автор: nhleb
Дата сообщения: 30.03.2006 12:37
У меня не получается откомпилировать lib для WinDjView. Программа nmake, скопированная в папку libdjvu и запущенная из командной строки (согласно рекомендациям из этого форума) не делает ничего (сообщения тоже не выводит), возможно проблема в непрописанных папках в makefile, но я не знаю как это сделать.

Соответственно, VC++ 6.0 выводит сообщение: LINK : fatal error LNK1104: cannot open file "libdjvu/libdjvud.lib"
Error executing link.exe.

Если не затруднит, подскажите, что делать, т.к. в этой среде программирования я новичок.
Автор: AndyZ
Дата сообщения: 30.03.2006 17:04
nhleb
nmake никуда копировать не нужно. По-видимому, у Вас не настроены переменные среды PATH, INCLUDE и LIB. Это делает инсталлятор студии. Или Вы можете воспользоваться файлом vcvars32.bat, который также прописывает эти переменные.
Автор: nhleb
Дата сообщения: 31.03.2006 10:53
vcvars32.bat запускал - никакого эффекта, пишет The system cann't find path specified.

Хотелось бы уточнить, как работать с nmake yне копируя его в папку libdjvu.

Кстати, если его скопировать и запустить он выдает falal error U1073: 'don't know how to make 'Arrays.cpp' Stop.

Добавлено:
Разобрался с vcvars32.bat, терперь все указанные директории прописаны верно (проверено с спомощью nmake.exe /P). Но все равно осталась проблема: при запуске из bat- файла:

"%MSVCDir%\bin\nmake.exe" -f C:\WinDjView\libdjvu\makefile


выдается ошибка: falal error U1073: 'don't know how to make 'Arrays.cpp' Stop.

Где рыть дальше, может быть я что-то неправильно делаю?

Добавлено:
Кстати, если это поможет, то при попытке компиляции версий 0.4 и 0.3.6 возникают ошибки:

--------------------Configuration: WinDjView - Win32 Debug--------------------
Compiling...
stdafx.cpp
C:\WinDjView-0.3.6\libdjvu/GRect.h(401) : 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.



Как в debug, так и в release конфигурациях.
Автор: AndyZ
Дата сообщения: 31.03.2006 14:19
Порядок сборки такой:
1. Открыть командную строку
2. "%MSVCDir%\bin\vcvars32.bat" (если нужно)
3. cd c:\Path\To\WinDjView\libdjvu
4. nmake "UNICODE=1"
5. Из студии собрать конфигурацию Release Unicode
У меня на компьютере стоит VC6, проверялось также в VC .NET 2003
Автор: nhleb
Дата сообщения: 03.04.2006 11:53
Огромное спасибо за помощь. По вашим рекомендациям все прекрасно собралось.

В процессе появился еще один вопрос: как просмотреть связи в ClassWizard? При его первом запуске он спрашивает: взять информацию из выбранных классов? Я отвечаю да, выбираю все классы в коневой папке WinDjView, но они не появляются в спписке классов. Может быть все гораздо хитрее и надо идти лбходными путями, если это возможно, подскажите как это сделать.

Автор: AndyZ
Дата сообщения: 03.04.2006 21:25
nhleb
В ClassWizard посмотреть не получится, потому что изначально проект писался в студии дот нет, в которой ClassWizardа нет, и соответственно она не пишет специальных комментариев, которые для него нужны. Сейчас я сижу на шестой студии, поэтому добавляю все обработчики событий вручную; это не так сложно и не так медленно, как может показаться.
Автор: nhleb
Дата сообщения: 03.04.2006 21:56
Весь вопрос в том, что хотелось бы проследить те связи, которые вы создали в данной программе, т.к. в противном случае достаточно трудно соориентироваться и, соответственно, модифицировать программу. А в .NET возможно просмотреть связи или как-нибудь по-другому?
Автор: AndyZ
Дата сообщения: 04.04.2006 20:47
nhleb
Насколько я понимаю, под связями Вы имеете в виду message maps и dialog data exchange. Первые находятся между макросами BEGIN_MESSAGE_MAP и END_MESSAGE_MAP, вторые - внутри функций DoDataExchange. В студии .NET события можно привязывать к функциям из окна Properties для класса, а вот список связанных с контролами переменных в UI посмотреть нельзя - можно только добавить новые.
Автор: nhleb
Дата сообщения: 05.04.2006 16:49
Спасибо за помощь, буду пытаться проникнуться.
Автор: nonnus
Дата сообщения: 06.04.2006 12:30
AndyZ
Вот такие предложения:
1) А трудно ли сделать панель с закладками содержания и образов страниц размещаемыми также справа?
2) Добавить в эту панель также закладки: открытые документы и история открытых документов, ну, про закладки на страницы в каждом документе уже речь шла вроде.
Автор: Griefin
Дата сообщения: 11.04.2006 10:00
Недавно собирал для себя и нашел несколько небольших ошибок:

diff -u -r WinDjView-0.4.1/DjVuView.cpp WinDjView-current/DjVuView.cpp
--- WinDjView-0.4.1/DjVuView.cpp    2006-02-25 17:49:58.000000000 +0300
+++ WinDjView-current/DjVuView.cpp    2006-03-12 18:27:19.859375000 +0300
@@ -4244,7 +4244,7 @@
        strURL = strURL.substr(0, nPos);
    }

-    CString strPathName = (const char*)strURL;
+    CString strPathName = (CString)strURL;
    TCHAR szDrive[_MAX_DRIVE + 1] = {0};
    TCHAR szDir[_MAX_DIR + 1] = {0};
    TCHAR szExt[_MAX_EXT + 1] = {0};
diff -u -r WinDjView-0.4.1/MyToolBar.cpp WinDjView-current/MyToolBar.cpp
--- WinDjView-0.4.1/MyToolBar.cpp    2006-02-10 21:13:58.000000000 +0300
+++ WinDjView-current/MyToolBar.cpp    2006-03-12 17:31:03.312500000 +0300
@@ -130,7 +130,7 @@
        rctBk.top = rect.top;
        rctBk.bottom = rect.bottom;

-        HTHEME hTheme;
+        HTHEME hTheme = NULL;
        if (XPIsAppThemed() && XPIsThemeActive())
            hTheme = XPOpenThemeData(m_hWnd, L"TOOLBAR");
diff -u -r WinDjView-0.4.1/ProgressDlg.cpp WinDjView-current/ProgressDlg.cpp
--- WinDjView-0.4.1/ProgressDlg.cpp    2006-01-18 17:55:56.000000000 +0300
+++ WinDjView-current/ProgressDlg.cpp    2006-03-12 13:41:40.375000000 +0300
@@ -83,8 +83,8 @@
    return (InterlockedCompareExchange(&m_nCancelled, 1, 1) == 1);
#else
    long nCancelled = 1;
-    return (InterlockedCompareExchange((void**)&m_nCancelled,
-        (void*)nCancelled, (void*)nCancelled) == (void*)nCancelled);
+    return (InterlockedCompareExchange(&m_nCancelled,
+        nCancelled, nCancelled) == nCancelled);
#endif
}

Есть предложение немного повысить приоритет рендеринга:

diff -u -r WinDjView-0.4.1/RenderThread.cpp WinDjView-current/RenderThread.cpp
--- WinDjView-0.4.1/RenderThread.cpp    2006-02-23 23:56:36.000000000 +0300
+++ WinDjView-current/RenderThread.cpp    2006-03-13 21:10:54.375000000 +0300
@@ -42,7 +42,7 @@

    DWORD dwThreadId;
    m_hThread = ::CreateThread(NULL, 0, RenderThreadProc, this, 0, &dwThreadId);
-    ::SetThreadPriority(m_hThread, THREAD_PRIORITY_BELOW_NORMAL);
+    ::SetThreadPriority(m_hThread, THREAD_PRIORITY_ABOVE_NORMAL);
}

При сборке в VS7 с конфигурациями Debug или Debug Unicode появляется куча повторно определенных символов. Т.е. приходится линкеру добавлять опцию /FORCE:MULTIPLE. В Release все нормально.
Автор: AndyZ
Дата сообщения: 11.04.2006 14:57
Griefin
Спасибо, исправлю. Есть несколько комментариев:
1) Тогда уж не (CString) strURL, а MakeCString(strURL). Хотя вроде и так всё работает.
2) Да, точно.
3) А Ваш вариант компилируется в оригинальном VC6, без дополнительного Platform SDK? Я не могу это сейчас проверить, поэтому оставлю пока свой вариант, который точно работает.
4) Не согласен, потому что рендеринг - это именно background задача, которая не должна тормозить UI. Поэтому приоритет ниже.
5) Я сейчас работаю в VC6, а релиз собираю компилятором от студии 2003 через makefile, поэтому не могу сказать, в чём дело.

Добавлено:
nonnus
1) Сделать опцию слева/справа наверно можно, а вот возиться с доканием не хочу. С размещением справа есть проблема, когда строчки длинные - тогда тултип не будет умещаться на экран.
2) Не понимаю, зачем дублировать меню - Window и Recent Files. Кроме того, эти 2 вещи привязаны к приложению, а панель слева привязана к документу. Закладки - это другое дело. В какой-то момент они появятся.
Автор: chupakabra
Дата сообщения: 11.04.2006 15:44
AndyZ, сделай пожалуйста чтобы при запуске программа восстанавливала последний открытый файл и позицию в нем, а то книжки читать неудобно - каждый раз надо вручную позицию восстанавливать. Ну и если программа научится запоминать позицию для десятка последних файлов - вообще хорошо будет!

Заметил что ты используешь CreateThread, вот что MS пишет по этому поводу:

Цитата:
A thread in an executable that is linked to the static C run-time library (CRT) should use _beginthread and _endthread for thread management rather than CreateThread and ExitThread. Failure to do so results in small memory leaks when the thread calls ExitThread. Another work around is to link the executable to the CRT in a DLL instead of the static CRT.
Автор: Griefin
Дата сообщения: 11.04.2006 17:37
Еще вспомнил такую вещь. В Акробате есть удобная фишка: Word wrapping для длинных закладок. Видел уже готовую реализацию: http://www.codeproject.com/treectrl/StaticTreeControl.asp
Автор: AndyZ
Дата сообщения: 12.04.2006 14:15
chupakabra
Цитата:
чтобы при запуске программа восстанавливала последний открытый файл и позицию в нем
Это уже есть в todo и будет со временем реализовано.
Про CreateThread - вроде если memory leak и есть, то он несущественный. Когда-нибудь разберусь.

Griefin
Про это здесь уже говорилось. Занесено в todo.

P.S. Некоторые пожелания повторяются по пятому разу. Пожалуйста, перед тем как что-то написать, проверяйте в этом форуме и на страничке проекта на sourceforge, что такого пожелания ещё не было!
Автор: nonnus
Дата сообщения: 12.04.2006 14:23
AndyZ

Цитата:
2) Не понимаю, зачем дублировать меню - Window и Recent Files. Кроме того, эти 2 вещи привязаны к приложению, а панель слева привязана к документу. Закладки - это другое дело. В какой-то момент они появятся.

Бывает, что часто работаю с очень большим количеством книг открытых одновременно, удобно когда у тебя окно с выбором этих документов висит стационарно, а ещё круче было бы, если бы эти документы в виде дерева также включали закладки, например:

+ документ 1
+ документ 2
- документ 3
закладка 1
закладка 2

+ документ 4

Что касается последних открытых файлов, то история всего c 10 последними файлами, как мне кажется, маловата, а помещение большего количества в меню Recent Files это слишком много.



Страницы: 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556

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


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