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

» PDF & DjVu Bookmarker

Автор: StanFreeWare
Дата сообщения: 15.12.2009 16:52
denver 22

Можно добавить режим - "подготовить к ускоренному листанию" и программно извлечь все тифки на диск перед листанием. На среднем компьютере и средней книжке полчаса работы и пол-гига свободного места на винте.

WinDjView использует фоновое извлечение соседних страниц в отдельных потоках. Произвольные он - заметьте - тоже не очень быстро листает.
Автор: denver 22
Дата сообщения: 15.12.2009 17:13
StanFreeWare
ОК, я лишь описал замеченное неудобство. Думаю, на малых и средних по объему книгах просмотр будет довольно быстрым. Так что вопрос закрываю.
Автор: monday2000
Дата сообщения: 17.12.2009 09:02
StanFreeWare
Посмотрел я Ваше руководство http://tinyurl.com/yzsj78y .

Некоторые замечания:

1. Я опять ничего не понял. В пункте "Более сложный способ создания djvu-файла" описан алгоритм после слов "Вкратце алгоритм таков:". Так вот - я в этом алгоритме ничего не понял. Не могли бы Вы там изъясниться более понятно?

2.
Цитата:
Прогоняем вывод ST в родном разрешении скана (обычно 300 dpi), только изображения, результат в result\gray - избавились от увеличения разрешения в ST

Это только ради ресемплинга? Если да - то ИМХО это проще сделать в IrfanView.

3.
Цитата:
Для группового переименования файлов удобно использовать соответствующие инструменты программ Free Commander или Total Commander (для запуска инструмента выделите в Commander'е несколько файлов и нажмите Ctrl+M).

ИМХО это проще сделать в IrfanView - которая входит в обычный набор программ DjVu-книгосканировщика (Total Commander - не бесплатная программа, заметьте).

4.
Цитата:
Для борьбы с растром можно использовать, например, фильтр гаусса в gimp.

Это, конечно, недурно - но ИМХО без этого можно прекрасно обойтись. Достаточно лишь включить и уменьшить параметр Качество задн. фона в DjVu Imager - это размылит сканы до любой желаемой степени (не спорю, что по качеству, может и немного хуже гауссового размытия, но зато это уже встроено в DjVu Imager - т.е. никакие дополнительные приблуды не требуются).

5.
Цитата:
Corel Smooth в Corel PhotoPaint
и
Цитата:
Sattva Descreen для Photoshop
- это коммерческие программы, так что сюда не подходит (Вы же описываете бесплатные варианты).

6.
Цитата:
Однако лидером в данном вопросе является FineReader, и именно под него "заточена" программа DjvuOCR

FineReader - это коммерческая программа. Пробная версия FineReader имеет ограничение по времени её испробования 15 дней, по истечении которого её нельзя использовать (в соответствии с лицензионным соглашением) - см. http://abbyy.ru/download/finereader_pro .

То есть, какое-либо (любое, хоть просто для пакетного сканирования) использование пробной версии FineReader после этих 15 дней нарушает лицензию. Об этом я, кстати, узнал от Джима Райли, автора JRA Publish (когда тот критиковал DjVuOCR).

Добавлено:
Не говоря уже, что использование DjVu Small также не попадает по смыслу в категорию "Создание DjVu без использования коммерческого софта".

Добавлено:
На сегодняшний день полный цикл создания DjVu-книги с использованием исключительно некоммерческого софта возможен (minidjvu + CuneiForm), но вряд ли целесообразен.
Автор: VadimirTT
Дата сообщения: 17.12.2009 11:58
Решился сделать оглавление к одному справочнику (оглавление занимает почти 40 стр. ), так там оно с 4-мя уровнями вложенности, может быть сделать кнопки раскрыть/скрыть один(следующий/предыдущий) уровень?

Добавлено:
monday2000
мне понравилось как в скантейлоре обсуждалась лицензионная чистота иконки!
Автор: StanFreeWare
Дата сообщения: 17.12.2009 12:44
monday2000
Написал я ответ на ваши замечания вам в личку. Здесь прошу не отклоняться от темы - обсуждение Djvu Bookmarker.

VadimirTT
имеете в виду раскрыть все ветви 1, 2, 3 и так далее уровней? Типа кнопки раскрыть дальше?
Автор: VadimirTT
Дата сообщения: 17.12.2009 13:21
StanFreeWare
да, нажал и раскрылся следующий уровень и т.д.

У меня вопрос, если номер страницы заключен в скобки - это как нибудь обрабатывается, или надо в ручную их предварительно убирать?
Автор: StanFreeWare
Дата сообщения: 17.12.2009 13:57
VadimirTT
Закрывающую скобку номера нужно убивать заранее. Открывающую можно отфильтровать на этапе денойза.

Добавлено:
Удобнее всего в ворде поиском
)^p
и заменой на
^p
Автор: monday2000
Дата сообщения: 17.12.2009 17:12
StanFreeWare

Цитата:
Здесь прошу не отклоняться от темы - обсуждение Djvu Bookmarker.

Как у меня дойдут руки испробовать Вашу программу - я сразу же размещу на неё ссылку на моём сайте. Просто в последнее время немного некогда.
Автор: StanFreeWare
Дата сообщения: 17.12.2009 20:21
0.9.6rc5

http://www.onlinedisk.ru/file/295824/

1. Кнопка +1. заменена на кнопку +=. Спасибо VladimirTT за идею. Ну а реализация мне самому понравилась, надеюсь вам тоже))

2. Для кнопки развернуть все ветви курсор остается на прежнем месте, и дерево скроллируется на него.

3. Изменение режима сглаживать отображается сразу после смены режима.

4. В режиме сдвига заменяется иконка на кнопках вверх и вниз на страницу.

5. Ограничения на допустимый диапазон страниц работают и в режиме просмотра отдельно от оглавления.

Добавлено:
Как считаете, будет ли полезным добавить в текстовый этап кнопку "Задать такой же номер страницы, как у следующей строки"? И если да, то на какую кнопку (комбинацию кнопок)?
Автор: NME
Дата сообщения: 17.12.2009 21:07
StanFreeWare

Цитата:
Как считаете, будет ли полезным добавить в текстовый этап кнопку "Задать такой же номер страницы, как у следующей строки"?

а в каких случаях он будет необходим? можно пример?
Автор: StanFreeWare
Дата сообщения: 17.12.2009 21:56
NME
Бывает, что главы и разделы не имеют номеров страниц. Правда также бывает, что им отводится отдельная страница (когда на всю страницу - только надпись Раздел ХХ)

Добавлено:
[more=Пример подготовки сложного оглавления к вставке в Djvu Bookmarker]

Пример подготовки в MS Word к вставке в Djvu Bookmarker сложных оглавлений в том числе и с номерами страниц, обрамленных скобками

Работаем на следующем примере (он еще сложнее, чем типовые подобные оглавления):
djvu (11 Мб):
http://www.onlinedisk.ru/file/291252/

zipped doc (20 Кб)
http://www.onlinedisk.ru/file/296396/

' удалил все переносы строк
Replace "^p", ""
' заменил длинный дефис переносом строк
Replace "^+", "^p"
' добавил перенос строк после закрывающихся скобок
Replace ")", ")^p"
' удалил сокращения страница, страницы
Replace "(pp.", ""
Replace " p. ", " "
' удалил лишние пробелы
For i = 1 To 4
Replace " ", " "
Next
' удалил запятые перед нумерацией
For i = 1 To 9
Replace ", " & i, " " & i
Next
' выделил главы в отдельную строку
Replace "Chapter", "^pChapter"
' удалил вторую часть диапазонов страниц в конце строки
Replace "-^#^#^#)^p", "^p"
Replace "-^#^#)^p", "^p"
Replace "-^#^#^#^p", "^p"
Replace "-^#^#^p", "^p"

Разумеется, Replace в данном случае означает возможность как ручной замены с помощью соответствующей команды Word, так и возможность автоматической замены, если Replace - это функция VBA, например такая:

Sub Replace(what As String, than As String)
Selection.Find.ClearFormatting
Selection.Find.Replacement.ClearFormatting
With Selection.Find
.Text = what
.Replacement.Text = than
.Forward = True
.Wrap = wdFindContinue
.Format = False
.MatchCase = False
.MatchWholeWord = False
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
End With
Selection.Find.Execute Replace:=wdReplaceAll
End Sub[/more]

Добавлено:
Анти-баг-релиз 0.9.6rc6
В очередной раз спасибо NME за вдумчивое тестирование

http://www.onlinedisk.ru/file/296004/

1. Исправлена ошибка, препятствующая импорту текста содержащему чисто числовые строки.
2. В окне предпросмотра денойзера удалены лишние копии строк.
3. Появилась возможность склеить строку со соседкой без номера.

NME

Последний баг не смог воспроизвести. Нужна подробная последовательность действий. Можно с примером текста оглавления на каждом из этапов.
Автор: NME
Дата сообщения: 17.12.2009 22:59
StanFreeWare
понятно..
ИМХО ради этой маловостребованной фичи интерфейс загромождать не стоит.. если таки решишь ее реализовать, сделай лучше это только на хоткеях..


Цитата:
Пример подготовки в MS Word

нет желания выбросить MS Word из процесса вставки оглавления? (в смысле, реализовать поиск и замены в своей программе?)
Автор: StanFreeWare
Дата сообщения: 17.12.2009 23:06
NME

Цитата:
поиск и замены в своей программе

Если что и реализовывать, так это то чего в ворде нету - например, регулярные выражения
Автор: NME
Дата сообщения: 17.12.2009 23:19

Цитата:
Последний баг не смог воспроизвести

[more]1. скопируй строки типа:
ляляля........1
траляля........2
2. запусти программу, вставь из буфера, выбери шум - точки, нажми крестик..
3. замени точки запятой, проверь
4. в окне удаления шума будет отображаться
ляляля........
траляля........
пока не выберешь запятую..
это только косметический баг, не влияющий на работоспособность программы..[/more]
Автор: ghosty
Дата сообщения: 17.12.2009 23:42
Ничего себе, какой прогресс за несколько дней - так держать! А что ж в топике по сканированию/обработке не проанонсировали?

Посмотрел пока в качестве знакомства интерфейс работы с DJVU. Жаль, что нет undo.

Спасибо!
Автор: StanFreeWare
Дата сообщения: 18.12.2009 05:13
ghosty


Цитата:
А что ж в топике по сканированию/обработке не проанонсировали?

Жду релиза 1.0. Или когда благодарные пользователи сами начнут анонсировать программу)

Добавлено:
0.9.7rc1
http://www.onlinedisk.ru/file/296124/

1. Для элементов оглавления вида

Глава 1.1
П1.1

добавлен шаблон
<начало строки>#<разделитель чисел>

примеры шаблонов для указанных выше случаев:
Глава#.
П#.
пробелы допустимы, т.е.
Глава #.
П #.
тоже должны работать

2. Очищаю список образцов шумных строк при вызове окна денойза (баг, выловленный NME)
3. Строка в окне "по шаблону" не затирается при последующих вызовах окна
4. При нажатии "отмена" в окне "по шаблону" выделенной остается текущая строка дерева оглавления
Автор: monday2000
Дата сообщения: 18.12.2009 08:21
StanFreeWare

Цитата:
например, регулярные выражения

А это не пойдёт:
http://www.rsdn.ru/article/alg/regular.xml#EFNAC
Автор: StanFreeWare
Дата сообщения: 18.12.2009 08:32
monday2000
Я и сам сегодня с утра давал ссылку на статью в rsdn в соседнем топике по программированию.

Больше интересны не способы реализации, а вопрос о достаточности квалификации пользователей для использования этих самых регулярных выражений. Хотя, конечно, можно поступить как обычно делают в таких случаях - вынести возможность RegEx в отдельный чекбокс..
Автор: U235
Дата сообщения: 18.12.2009 11:48
StanFreeWare

Цитата:
так это то чего в ворде нету - например, регулярные выражения

Немножко есть: http://artefact.lib.ru/design/text_khozyainov.shtml
Автор: StanFreeWare
Дата сообщения: 18.12.2009 12:41
U235
Спасибо за примечание, фича удобная. Как говорится, знал, но забыл.
[more=Пара примеров использования данной фичи ворда в контексте рассмотренного выше примера]

' удалил лишние пробелы
For i = 1 To 4
Replace " ", " "
Next

можно заменить на

ReplaceSubstituted " {1;}", " "


' удалил запятые перед нумерацией
For i = 1 To 9
Replace ", " & i, " " & i
Next

можно заменить на

ReplaceSubstituted ", ([0-9])", " \1"

Ну и по остальным пунктам тоже можно придумать более оптимальные варианты
(хотя с наскоку заменить
Replace "-^#^#^#)^p", "^p"
Replace "-^#^#)^p", "^p"
Replace "-^#^#^#^p", "^p"
Replace "-^#^#^p", "^p"
одним выражением не удалось)


[/more]
Автор: basilio_ef
Дата сообщения: 18.12.2009 18:56
StanFreeWare

Ниже, наверое, знакомый контекст, обработанного Вами оглавления:


Цитата:
<li><a href="#17">CHAPTER I PLATO AS A LOGICIAN</a>
<ul>
<li><a href="#17">Progress of logic questioned</a>
<li><a href="#18">Mill against Plato and Kant</a>


Здесь при вызове страницы из файла DJVU, скрывается от пользователя информация,
какой истинный номер вызываемой страницы. Оглавление передается искаженно, с купюрами. Но это полбеды.
Главный недостаток в том, что при этом нельзя различить, есть ли ссылки на страницу в данном контексте или нет.
Строка оглавления со ссылкой на страницу и строка оглавления без ссылки на страницу
оформляются одинаково, как гиперссылка. Поэтому при наведении курсора на такую строку bookmarks во вьювере мы получим одинаковую реакцию.
Пользователь должен будет "путем тыка" перебирать пустые строки, пока не найдет строку со ссылкой.
Выход из этого положения - отображение номеров строк, которые вызываются.

В цитируемомм примере смещение в книге первого номера страницы в файле Djvu равно 16, поэтому этот фрагмент должен выглядеть так:


Цитата:
<li><a href="#17">CHAPTER I PLATO AS A LOGICIAN 1 </a>
<ul>
<li><a href="#17">Progress of logic questioned 1 </a>
<li><a href="#18">Mill against Plato and Kant 2 </a>


Вот пример оглавления книги:


Цитата:
ЛЕКЦИЯ ПЕРВАЯ.Основные понятия химической кинетики 9
Химическая реакция, константы скорости реакции. Элементарный акт,
адиабатическое приближение, поверхность потенциальной энергии,
потенциальные ямы. Молекула водорода, путь реакции, потенциальный барьер, тепловой
эффект реакции, сечение элементарного акта, активированный комплекс,
микроскопическая и макроскопическая неравновесность. Закон Аррениуса,
стерический фактор. Возбужденные электронные состояния, фотохимия.
Закон квантовой эквивалентности, квантовый выход фотохимической
реакции. Химическая связь.
Задача 22
ЛЕКЦИЯ ВТОРАЯ. Поглощение света 24


Конечно, здесь выбрасывание строк недопустимо. Это учебник !
Автор: StanFreeWare
Дата сообщения: 18.12.2009 19:20
0.9.7rc2
http://www.onlinedisk.ru/file/296689/

После неудачной попытки загрузить действительно большое оглавление столкнулся с ограничениями текстового поля, первоначально используемого для вставки из буфера обмена.
Поэтому заменил его на другой, не имеющий таких ограничений компонент, и т.к. он работал медленнее, оптимизировал скорость механизма поиска предыдущей - последующей ошибок.
Ну и изменил немного представление ошибок в нижнем текстовом поле.

basilio_ef
Не особо вижу смысла. Логика программы заставляет все ветки дерева указывать на конкретные djvu-страницы. Для djvu-книги информация о том, какой номер данная ветка имела в бумажном виде imho бессмысленна.

Кроме того, предложенный вами вариант будет плохо смотреться в дереве, воспринимаясь как визуальный шум. Не зря же номера страниц в книгах как правило выравниваются по правому краю.

За образец я беру скорее bookmark-оглавления для чисто электронных pdf.

Добавлено:
0.9.7rc3
http://www.onlinedisk.ru/file/296786/

Поправлены баги
Автор: StanFreeWare
Дата сообщения: 19.12.2009 08:01
0.9.7rc4
http://www.onlinedisk.ru/file/297131/

1. Исправлена старая ошибка позволяющая после сдвига ветки выбирать с Ctrl ветви иного с ней уровня. (Карма NME)++
2. Пришлось откатиться от RichTextEdit к TextEdit: наряду с полезными хоткеями в RichTextEdit (например, очень нужная Отмена - Ctrl+Z) есть и ненужные - Ctrl+"+" - нижний регистр, и т.д. Пока не найду полный лист хоткеев и не придумаю, как отфильтровать ненужные, придется работать без Undo в текстовом окне.
3. В текстовом редакторе при автоматической склейке со следующей строкой если последний символ текущей строки это дефис, то он считается символом переноса строки и удаляется при склейке (возможно, данную фичу нужно разрешить выключать).
4. В текстовом редакторе добавил хоткей Ctrl+"+" для задания строке без номера такого же номера страницы, как у следующей строки. Случаи применения обсуждались ранее. Типичное применение - Разделы и Главы не имеющие ссылок на бумажные страницы.
Автор: basilio_ef
Дата сообщения: 19.12.2009 08:27
StanFreeWare

Цитата:
визуальный шум

Извините, такого понятия я не знаю. В приведенном примере нормальный осмысленный текст.
Повидимому, с Вашей точки зрения, всякая строка в оглавлении, не имеющая ссылки на страницу, и есть "визуальный шум".

Цитата:
Логика программы заставляет все ветки дерева указывать на конкретные djvu-страницы.

Для пользователя до лампочки, наша с Вами логика построения программы, он знает, что такое оглавление.
И если мы взяли за основу оглавление, то должны ему и следовать в смысле содержания. Конечно, форму можно и изменить, например, удалить отточия. Хотя даже и их можно оставить, если во вьювере не использовать инструмента "Wrap long bookmarks"
Вообще там, где Вам удобно, Вы аппелируюте к книжному варианту, если это защищает Вашу позицию, идет ссылка на электронные варианты pdf. Кстати, в pdf bookmarks создаются на основе книжного контекста, а не на основе оглавления. А это еще и означает, что в таком случае не существует проблемы "вставленных и пропущенных страниц".

Я не собираюсь переубеждать в чем-либо, ответил на Вашу реплику лишь потому, что мне не понятно, почему нормальный текст считается визуальным шумом.
Автор: StanFreeWare
Дата сообщения: 19.12.2009 08:42
basilio_ef
По-видимому вы меня недопоняли.
Я не считаю визуальным шумом
Цитата:
всякую строку в оглавлении, не имеющую ссылки на страницу

Я лишь не вижу ничего зазорного в том, чтобы дать такой строке ссылку на страницу в djvu-книге.
Хотя упомянутый несколькими постами ранее перечень авторов в bookmark-оглавлении скорее всего и будет воспринят как визуальный шум. Здесь трудно судить без примера - нужно делать и смотреть.

В контексте моего предыдущего поста я назвал визуальным шумом номера бумажных страниц.
Сравните две строки
Глава 1
и
Глава 1 3
(специально поясняю для вас: во втором случае 3 - это номер бумажной страницы)

Я не собираюсь переубеждать в чем-либо, ответил на Вашу реплику лишь потому, что вы неправы.

P.S.
У меня закралось сомнение, что уважаемый basilio_ef вообще не вставляет оглавления в виде bookmark в djvu. Все ссылки на результат его метода представлены в виде html-страниц на сайте vvef.narod.ru, формат которых, в частности, не соответствует формату Bookmark Tool 2.0, согласно которому ссылкой является текст элемента оглавления полностью, а не только номер страницы. Это равносильно тому, что на кнопке ОК в диалоговом окне нужно целиться именно в слово ОК, а не жать в любое место кнопки. Usablilty -> 0.
Пример оглавления - результата обработки программой DJVUmark
Автор: basilio_ef
Дата сообщения: 19.12.2009 14:00
StanFreeWare

Цитата:
У меня закралось сомнение, что уважаемый basilio_ef вообще не вставляет оглавления в виде bookmark в djvu.

Чтобы не подозревать, надо сначала ознакомится с работой оппонента. Для этого достаточно зайти на мою страницу прочесть введение к моей программе.

Там черным по белому написано: "Кроме того, программа создает структурированный файл bookmarks.htm для программы Andrew Zhezherun EmbedBookmarks-1.0, которая внедряет его в djvu файл"
Я не стану описывать разницу между программой EmbedBookmarks-1.0 и Bookmark Tool 2.0. Это уже общеизвестно.

Прошу не путать html-интерфейс и Bookmarks. В данном случае html-интерфейс только для отладки синхронизации страниц.
О сравнении "целиться именно в слово ОК" я промолчу. Надеюсь, это сказано в пылу спора.

Практически во всех примерах , приведенных на моей странице, можно посмотреть, как выглядят и как работают внедренные Bookmarks.
Для этого кликните правой клавишей мыши по любой странице и выберите опции Layout - Outline.
Bookmarks внедрены и в многотомные энциклопедии. К сожалению, многотомные файлы с внедренными bookmarks нельзя просматривать с помощью Интернет броузера с плагином, так как адрес типа book.djvu#nnn плагин не обрабатывает.
Откройте в примерах книгу "SIGNAL PROCESSING FOR MOBILE COMMUNICATIONS HANDBOOK, Mohamed Ibnkahla", чтобы убедится, что bookmarks внедрен для того примера, html-страницу которого вы привели в конце своего поста.
Автор: StanFreeWare
Дата сообщения: 19.12.2009 15:35
basilio_ef
Согласен, что своим постсриптумом я добавил ненужного флейма в топик, чем дал вам возможность вместо извиняющейся стороны превратиться в нападающую. Впредь буду аккуратней. Тем не менее, если бы вместо ссылки на вашу страничку вы дали ссылку на реальный djvu, например, на onlinedisk.ru,
Цитата:
знакомится с работой оппонента
стало бы намного проще. Далеко не у всех установлен djvu browser plugin.

Насчет сравнения с ОК.
Согласен в контексте bookmarks оно было несколько неуместным - это была оценка удобства пользования разработанного вами веб-интерфейса для доступа к djvu страницам. Imho - если строка может сама по себе работать как гиперссылка, зачем ее делать простым текстом, при этом делая гиперссылкой только номер страницы.

Предлагаю закончить наш спор на следующем: я буду продолжать вести линию "чистых" pdf-style букмарков. Вы, если есть желание, можете воспользоваться моими исходниками и добавить в строки оглавления любую информацию, какая вам заблагорассудится.

Я же правильно вас понял, что за исключением отсутствия в результирующем оглавлении нужных вам зачем-то номеров бумажных страниц вы признаете удобство работы в Djvu Bookmarker?
Автор: ghosty
Дата сообщения: 19.12.2009 15:52
basilio_ef

Цитата:
Там черным по белому написано: "Кроме того, программа создает структурированный файл bookmarks.htm для программы Andrew Zhezherun EmbedBookmarks-1.0, которая внедряет его в djvu файл"
А я вот, кстати, тоже был уверен в том, что Вы специализируетесь именно на создании html-интерфейсов.

На самом деле, все "просто" - тот, кто сможет предложить наиболее быстрый способ создания DJVU-оглавления без ошибок, тот и прав
Автор: VadimirTT
Дата сообщения: 19.12.2009 18:27
При выборе нескольких пунктов меню, для сдвига, после сдвига на одну позицию теряется групповое выделение (если нужно сдвинуть больше чем на один уровень).
Автор: StanFreeWare
Дата сообщения: 19.12.2009 19:10

Цитата:
При выборе нескольких пунктов меню, для сдвига, после сдвига на одну позицию теряется групповое выделение (если нужно сдвинуть больше чем на один уровень).


Делалось нарочно для борьбы с глюком, предположительно исправленном в 0.9.7rc4.

Восстановил логику сохранения множественного выделения:
0.9.7rc5
http://www.onlinedisk.ru/file/297596/

Страницы: 12345678910111213141516171819202122232425262728293031323334

Предыдущая тема: Нужна бесплатная альтернатива Acronic


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