TurnTheText
Утилита TurnTheText предназначена для устранения несоответствия графического и текстового слоев в DjVu-книгах, возникающего при использовании FineReader версии 8 (и ниже) для распознавания текста..
Может быть использована, например, перед внедрением оглавления в DjVu-книгу с помощью программы DjVu Hyperlinks Editor..
[more=Описание]TurnTheText v1.0
НАЗНАЧЕНИЕ И ОПИСАНИЕ ПРОГРАММЫ
программа предназначена для устранения несоответствия графического и текстового слоев в DjVu-книгах, возникающего при использовании FineReader версии 8 (и ниже) для распознавания текста..
для правильной работы программы текстовый слой FR8 после внедрения его с помощью DjVuOCR не должен подвергаться изменениям..
для автоматического определения необходимого направления и угла поворота текстового слоя программа использует информацию о координатах графических символов из чанка Sjbz, что позволяет правильно поворачивать текст практически в 100% случаев..
программа также автоматически определяет необходимость поворота текстового слоя на +/- 90 градусов.. есть теоретическая вероятность того, что при большом количестве графики и малом количестве текста угол поворота будет определен неверно, но пока с такими случаями не сталкивался..
если требуется повернуть текст на 180 градусов (что не является нормальным для обычных книг), то это можно сделать вручную при помощи DjVu Text Mover'а..
для проверки результатов работы программы рекомендуется использовать WinDjView Extended, т.к. в этой модификации просмотрщика есть возможность быстрого выделения текста на всех страницах - нажал Ctrl+A и листаешь страницы, визуально проверяешь совпадение..
единственный параметр в программе - минимальный угол - нужен для ускорения работы программы, чтобы страницы с углом поворота меньше указанного не подвергались раскодированию/кодированию.. значение по умолчанию 0,1 градуса выбрано исходя из того, что при данном значении и ниже текст практически полностью совпадает с графикой..
СИСТЕМНЫЕ ТРЕБОВАНИЯ
Windows XP+
.NET Framework 2.0
ПАРАМЕТРЫ КОМАНДНОЙ СТРОКИ
общий формат команды (в квадратных скобках - необязательные части):
имя_программы имя_исходного_файла_djvu [-s имя_сохраняемого_файла_djvu или суффикс] [-p номер_страницы или диапазон] [-a значение_минимального_угла]
примечания:
1) имя редактируемого файла необходимо записывать сразу после названия программы.. расположение остальных блоков - произвольное
2) синтаксис диапазона страниц - см. в описании интерфейса
3) если параметр "-p" не указан - обрабатываются все страницы
4) если параметр "-s" не указан, то имя сохраняемого файла будет складываться из имени исходного файла и суффикса "_1"
5) для указания произвольного суффикса после "-s" вместо имени сохраняемого файла необходимо слитно написать знак плюс "+" и произвольный суффикс, например, "+_нов"
6) для сохранения файла под тем же именем после "-s" необходимо записать имя исходного файла
7) если параметр "-a" не указан или значение не является положительным либо равным нулю числом, то устанавливается значение по умолчанию 0,1 градуса..
пример 1:
TurnTheText.exe "d:\temp\мой файл.djvu" -s "d:\temp\мой файл.djvu" -p -5,10,22 -a 0,05
в файле "мой файл.djvu" на страницах с 1 по 5, 10 и 22 поворачивается текст при условии, что угол поворота больше 0,05 градуса
пример 2:
TurnTheText.exe myfile.djvu -s +_new
при наличии файла "myfile.djvu" рядом с программой, создается файл "myfile_new.djvu" с повернутым текстом на всех страницах при условии, что угол поворота больше 0,1 градуса
пример 3:
TurnTheText.exe "d:\temp\мой файл.djvu" -a 0
создается файл "мой файл_1.djvu" с повернутым текстом на всех страницах при любом несовпадении размеров текстового слоя и страницы (угол поворота больше 0 градусов)
ОПИСАНИЕ ИНТЕРФЕЙСА
Открыть
Сохранить
RU/EN - переключение интерфейса на русский/английский язык
----------
Область редактирования - область документа (страницы), к которой применяются изменения
Весь документ
Страницы (отдельные - через запятую, диапазон - через тире.. пример:
"-4,7,10-12,55-" - редактирование страниц 1,2,3,4,7,10,11,12,55 и до конца документа)
----------
Минимальный угол (град.) - см. описание программы
----------
Статусбар - email разработчика / информация о действиях, совершаемых программой.. при работе программы двойной клик по полю вызывает диалоговое окно с запросом о прерывании обработки документа
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
История версий TurnTheText
--------------------------------------------------------------------------------
v 1.0
1) значительно повышен процент правильного определения направления и угла поворота текстового слоя
2) исключена необходимость использования DjVuToy и djvused
3) упрощена работа по проверке результатов работы программы в WinDjView Extended
4) исключена возможность ручного указания направления поворота текста на страницах
5) добавлен английский интерфейс
6) поддержка Drag & Drop
7) поддержка параметров командной строки
8) другие мелкие изменения и исправления
--------------------------------------------------------------------------------
v 0.1
первый релиз
[/more]
Скачать v1.0
DjVu Annotations Editor
Программа для редактирования гиперссылок (annotations/hyperlinks) в файлах формата djvu, преимущественно, после создания оглавлений в книге при помощи DjVu Hyperlinks Editor'а..
Выполняет сдвиг, выравнивание, изменение размеров, цвета, свойств и др..
Описание
Скачать
Видео скачать, посмотреть - Создание оглавления (TOC) в файлах формата DjVu
HeadWorder
Программа для полуавтоматического извлечения заголовков словарных статей из DjVu-словарей, энциклопедий и т.п. и последующего внедрения их в книгу в виде закладок DjVu или WinDjView (с позиционированием)..
может быть в будущем, когда описание сделаю..
FR11 DjVu Text Layer Crutch
Программа для исправления текстового слоя в файле DjVu, созданного посредством ABBYY FineReader билд 11.0.102.583 и выше (в т.ч. ФР12)..
Выполняет следующие действия:
- удаляет блоки Char;
- создает зоны Line и Paragraph;
- объединяет две половинки слова, разделенного знаком переноса, в одно;
- позволяет переносить текстовый слой из одного файла в другой..
[more=Описание]FR11 DjVu Text Layer Crutch v0.3
СИСТЕМНЫЕ ТРЕБОВАНИЯ
Windows XP+
.NET Framework 2.0
ОПИСАНИЕ ИНТЕРФЕЙСА
Открыть файл DjVu с текстовым слоем
-
RU/EN - переключение интерфейса на русский/английский язык (не реализовано в текущей версии программы)
-
Сохранить исправленный текстовый слой в редактируемом файле DjVu
-
Скопировать текстовый слой без изменений в другой файл DjVu
-
Сохранить исправленный текстовый слой в другой файл DjVu - при выборе корректного файла DjVu (многостраничный, в одном файле [bundled multi-page document]) исправленный слой переносится в него. Если файл не существует - сохраняется копия изначального DjVu-файла с измененным текстовым слоем
-
Сохранить текст в файл *.txt или буфер обмена (не реализовано в текущей версии программы)
-
Создавать зоны "Параграф" - для книг, созданных с помощью ABBYY FineReader билд 11.0.102.583 и выше (далее - ФР11+)..
-
из файла *.bookmarks WinDjView - возможность создания зон "Параграф" вручную с помощью WinDjView в файлах не ФР11+ (не реализовано в текущей версии программы)
-
Не удалять символы табуляции - зоны Char с символами табуляции (0x09) не удаляются
-
Объединить слова с дефисом "-" - разделенные в конце строки дефисом части слова объединяются по аналогии со знаком переноса "¬"
-
Не ставить дополнительный символ перевода строки в конце страницы - в связи с тем, что наиболее (имхо) популярный просмотрщик DjVu-файлов WinDjView имеет особенность игнорировать разделители зон в конце страницы (за исключением зон Line) при разбиении текста на параграфы в файлах ФР11+ и отсутствии разделителей для зон Line - при последующем копипасте такого текста из данного просмотрщика начало новой страницы сливается с концом предыдущей. Поэтому для корректного копирования текста после последней на странице зоны Line по умолчанию устанавливается знак перевода строки (0x0А)
----------
Разделители зон - символы, устанавливаемые в тексте после каждой зоны. Диапазон значений - от 0x01 до 0x20 (в шестнадцатеричном виде), а также 0 (ничего) и -1 (без изменений, для документов не ФР11+)
Некоторые часто встречающиеся разделители (подсказка также доступна в программе при наведении на надпись "Разделители зон"):
0x0A - Перевод строки (Line feed (LF))
0x0B - Вертикальная табуляция (Line tabulation (vertical tabulation))
0x0C - Смена страницы (Form feed (FF))
0x1D - Разделитель групп (Information separator three (group separator))
0x1F - Разделитель полей (Information separator one (unit separator))
Для справки - при вставке в файл текста с помощью djvused из DjVuLibre принудительно будут установлены следующие разделители зон (фрагмент кода из файла DjVuText.cpp)
const char DjVuTXT::end_of_column = 013; // VT: Vertical Tab - 013(восьм.)=0x0B(шестн.)
const char DjVuTXT::end_of_region = 035; // GS: Group Separator - 035(восьм.)=0x1D(шестн.)
const char DjVuTXT::end_of_paragraph = 037; // US: Unit Separator - 037(восьм.)=0x1F(шестн.)
const char DjVuTXT::end_of_line = 012; // LF: Line Feed - 012(восьм.)=0x0А(шестн.)
...
case WORD: sep = ' ';
При распознании текста в Document Express Editor 6 - после зон Column, Region, Paragraph и Line стоит перевод строки 0x0A
----------
Удалить зоны - для документов, созданных не ФР11+ (например, Document Express Editor) или измененных после их создания в ФР11+
----------
ПАРАМЕТРЫ КОМАНДНОЙ СТРОКИ
общий формат команды (в квадратных скобках - необязательные части):
имя_программы название_исходного_файла_djvu - исправление текстового слоя с параметрами по-умолчанию и сохранение в исходный файл
[-s название_сохраняемого_файла_djvu] - сохранение текстового слоя в другой файл или создание копии изначального DjVu-файла с измененным текстовым слоем
[-c название_сохраняемого_файла_djvu] - сохранение точной копии текстового слоя в другой файл
[-t] - не удалять табы
[-rp] - удалять/не создавать зоны Paragraph
[-rr] - удалять зоны Region
[-rc] - удалять зоны Column
[-mh] - объединять слова с дефисом "-"
[-nlf] - не ставить дополнительный символ перевода строки в конце страницы
[-l] - создавать лог (при необходимости). Файл log.txt будет создан рядом с книгой. Если книга не будет найдена - лог сохранится рядом с программой
[-lo] - то же, что и в предыдущем пункте, плюс после выполнения программы лог автоматически откроется
[-dlin11 значение в hex] - задается отличное от дефолтного значение разделителей зон Line для файлов ФР11+. По-умолчанию -dlin11 0 (ничего) или -dlin11 0x0A в случае, если параграфы не создаются (применен параметр "-rp")
[-dpar11 значение в hex] - то же для зон Paragraph. По-умолчанию -dpar11 0x0A
[-dpag11 значение в hex] - то же для зон Page. По-умолчанию -dpag11 0
[-dlin8 значение в hex] - отличное от дефолтного значение разделителей зон Line для файлов НЕ ФР11+. По-умолчанию все параметры для файлов не ФР11+ установлены на -1 (без изм.)
[-dpar8 значение в hex] - то же для зон Paragraph
[-dreg8 значение в hex] - то же для зон Region
[-dcol8 значение в hex] - то же для зон Column
[-dpag8 значение в hex] - то же для зон Page
примечания:
1) название исходного файла необходимо записывать сразу после названия программы.. расположение остальных блоков - произвольное
2) значения для параметров -dlin11 ... -dpag8 записываются в шестнадцатеричном виде и устанавливаются в диапазоне от 0x01 до 0x20. Также значения могут быть равны 0 (ничего) и -1 (без изменений, для документов не ФР11+). При записи "0x" указывать не обязательно - достаточно написать 1F, a, 0d и т.п.
3) если установлен параметр "-c имя_файла" (точная копия), то все остальные параметры, за исключением -l и -lo, учитываться не будут
пример 1:
fr11DTLcrutch03.exe "d:\temp\мой файл.djvu" -mh
в текстовом слое файла "мой файл.djvu" (как ФР11+, так и любых других) удаляются зоны Char (пробелы и табы); объединяются слова с переносами "¬" и "-";
если файл ФР11+ - создаются зоны Line (без разделителя в конце) и Paragraph (с переводом строки в конце зоны), а также доп. перевод строки в конце последней зоны Line на странице;
если файл НЕ ФР11+ - новые зоны не создаются, если слияние слов было реализовано по "методу 2", оно будет скорректировано на "метод 1"
пример 2:
fr11DTLcrutch03.exe myfile1.djvu -s myfile2.djvu -rp -lo
при наличии файла "myfile1.djvu" рядом с программой, в его текстовом слое удаляются зоны Char; объединяются слова только с переносами "¬"; при возникновении ошибки создается и открывается файл log.txt; при наличии рядом с программой корректного файла "myfile2.djvu" текстовый слой сохраняется в него, при отсутствии такого файла - под именем "myfile2.djvu" создается копия "myfile1.djvu" с откорректированным слоем;
если исходный файл ФР11+ - создаются зоны Line (с переводом строки 0x0А в конце зоны), зоны Paragraph не создаются;
если НЕ ФР11+ - удаляются (при наличии) зоны Paragraph; конвертация из метода 2 в 1 (при необходимости)
пример 3:
fr11DTLcrutch03.exe myfile1.djvu -s myfile2.djvu -dpar8 0 -dlin8 A
по аналогии с описанием и примерами выше, плюс если файл НЕ ФР11+, то при наличии параграфов разделители зон для них не применяются, для строк применяется разделитель 0x0А
КОММЕНТАРИИ
1) В ФР11+ появилась возможность разбивки текста не только на строки, но и на параграфы. Вероятно, эту информацию и раньше (в ФР8) можно было извлечь из файлов проекта, но уважаемый Gencho для программы DjVuOCR это реализовывать не стал. Преимущество деления на параграфы в том, что при копировании и последующей вставке текст в пределах параграфа вставляется в одну строку - нет необходимости в удалении лишних переводов строки в конце каждой строчки. Недостаток - немного увеличившийся размер файла (т.к. появляется доп. информация).
2) По умолчанию для файлов ФР11+ программа выполняет разбивку на параграфы. Если это не нужно - достаточно снять чекбокс "Создавать зоны "Параграф" (или указать параметр -rp при консольном запуске) - результат будет аналогичен DjVuOCR.
3) Если после обработки в crutch'е (с созданием параграфов) текстовый слой был откорректирован и вставлен обратно при помощи djvused из DjVuLibre, то в качестве разделителей зон установятся значения 0x1F для параграфов и 0x0A для строк. Вернуть исходные значения можно установив в столбце "не ФР11+" значение 0x0A для параграфов и "Ничего" для строк (параметры -dpar8 A -dlin8 0 из ком. строки).
Вообще, разные просмотрщики в плане копирования текста ведут себя по-разному.. WinDjView игнорирует некоторые окончания зон в конце страницы, в неоткорректированных файлах ФР11+ несколько страниц выделить/скопировать не может.. DjView из DjVuLibre плевать хотел на окончания зон, которые указаны в файле - он лепит свои собственные, скопировать несколько страниц также проблематично - копируется только то, что выведено на экране, приходится сильно уменьшать масштаб станиц.. Плагин к ИЕ только одну страницу способен скопировать, Document Express Editor - максимум две.. В связи с этим планирую в дальнейшем добавить в программу функционал для корректного копирования/сохранения текста из DjVu-файла (кнопка "Сохранить текст в файл *.txt или буфер обмена")..
Планируемая функция "Создавать зоны "Параграф" из файла *.bookmarks WinDjView" наврядли будет широко востребована (это все-таки ручное редактирование), но мне она интересна в плане взаимодействия с WinDjView и реестром.
Касательно английского фейса - кнопки, диалоги я таки переведу, а вот с описанием могут возникнуть проблемы, ибо нихт фершнейн.. У кого есть возможность - помогайте..
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
История версий FR11 DjVu Text Layer Crutch
--------------------------------------------------------------------------------
v 0.3
1) кодирование/декодирование текста происходит в самой программе, djvused более не требуется, временные файлы не создаются
2) поддержка параметров командной строки
3) поддержка Drag & Drop
4) возможность создания зон Paragraph
5) возможность объединения частей слова с переносом в виде дефиса "-"
6) возможность сохранения в тексте зон Char с символами табуляции
7) возможность изменения разделителей зон
8) возможность удаления зон Column, Region, Paragraph
9) "метод 2" склеивания слов с переносом более не поддерживается. При редактировании файлов с переносом слов по "методу 2", переносы будут автоматически исправлены на "метод 1"
--------------------------------------------------------------------------------
v 0.21
1) исправлена ошибка, возникающая при наличии в тексте слова "\n"
--------------------------------------------------------------------------------
v 0.2
1) возможность сохранения измененного текстового слоя в другой DjVu-файл
2) возможность быстрого копирования текстового слоя из одного файла в другой
3) другие мелкие изменения
--------------------------------------------------------------------------------
v 0.1
первый релиз
[/more]
Скачать v0.3
DjVu Chunk Remover
Программа для удаления блоков (чанков), а также страниц из файлов формата DjVu.. может удалять фон (BG44, BGjp), закладки (NAVM), аннотации (ANTa, ANTz), текст (TXTa, TXTz), информацию о цвете маски(FG44, FGbz) и др.. запрещено удаление блоков INFO, Sjbz, Djbz и INCL, содержащих ссылки на Djbz-словари символов..
Описание
Скачать v0.5
Зеркало
DjVu Text Mover
Программа позволяет поворачивать и двигать текстовый слой в файлах DjVu..
Скачать v0.1
DjVu Title Maker
Программа для создания заголовков страниц (переименования страниц) в файлах DjVu..
Таким образом, страницы можно называть "Обложка", I, II, III, IV и т.п., автоматически или вручную переименовывать страницы со сдвинутой нумерацией (в т.ч. при удалении пустых страниц) для соответствия нумерации электронной книги её бумажному оригиналу..
[more=Описание]DjVu Title Maker v0.1
СИСТЕМНЫЕ ТРЕБОВАНИЯ
Windows XP+
.NET Framework 2.0
ОПИСАНИЕ ИНТЕРФЕЙСА
Открыть
Сохранить
----------
Диапазон страниц - страницы, к которым будет применен шаблон (см. ниже).. Отдельные страницы записываются через запятую, диапазон - через тире.. Например:
"-4,7,10-12,55-" - редактирование страниц 1,2,3,4,7,10,11,12,55 и до конца документа)
Если необходимо указать всю книгу, достаточно в данном поле записать знак тире "-"..
Префикс+Нумерация+Суффикс - шаблон, по которому устанавливаются заголовки для указанного диапазона страниц.. Предварительный результат можно увидеть в нижней таблице..
- - удалить текущую строку..
+ - добавить строку после текущей..
Переименовать остальные страницы - страницам, не указанным в полях "Диапазон страниц" будут присвоены заголовки в виде арабских цифр с увеличивающейся на 1 нумерацией, за исключением цифр, указанных в поле "Пропустить страницы"..
Пропустить страницы - отсутствующие в книге "бумажные" страницы (например, удаленные пустые страницы).. При автоматической нумерации страниц (см. предыдущий пункт) данные цифры (или диапазон) будут пропускаться.. Синтаксис аналогичен полю "Диапазон страниц"..
Ручная правка заголовков - при необходимости внести изменения вручную.. Изменения проводятся в соответствующих ячейках таблицы..
Удалить заголовки в текущем документе - доступно при "ручной правке..."
----------
Таблица "Номер страницы/Заголовок страницы" - отображает заголовки, которые будут вставлены в книгу при сохранении.. Обновление страницы в некоторых случаях происходит автоматически.. Для ручного обновления необходимо кликнуть по заголовку таблицы - "Номер страницы/Заголовок страницы"..
ПРИМЕР
В книге есть обложка, страницы I-VII, а затем страницы 1-352, кроме отсутствующих пустых страниц 48, 112 и 264..
Устанавливаем следующие значения:
Диапазон страниц | Префикс | Нумерация |Суффикс
1 | Обложка | Без нумерации |
2-8 | | Римскими |
v - Переименовать остальные страницы
48, 112, 264 - Пропустить страницы
Сохранить
[/more]
Скачать v0.1
DjVu Clean Page Inserter
Программа для быстрого создания и внедрения в книгу пустых страниц.. Нужна для восстановления соответствия бумажной и электронной нумерации, что облегчает навигацию по книге..
Описание
Скачать v0.1
Зеркало
DjVu Blits Merger
Программа для добавления на страницы djvu-книги графических изображений (mask-слоя) из другого djvu-файла.. Может применяться для добавления в книгу номеров страниц, колонтитулов, другой необходимой информации без перекодирования файла, а также для объединения графики с двух страниц, закодированных с разной степенью сжатия (например, aggressive и lossless)..
Описание
Скачать v0.1
Зеркало
DjVu Blits Hider
Программа для удаления со страниц djvu-книги графических изображений mask-слоя (blits).. может применяться для очистки страницы от "грязных пятен", лишних элементов маски и т.п. без перекодирования файла.. совместно с DjVu Blits Merger'ом позволяет редактировать mask-слой djvu-книги - Hider удаляет, а Merger вставляет на это место нужную графику..
Описание
Скачать v0.1.1
Программы, которых еще нет, но, возможно, когда-нибудь сделаю..
• аналог DjVu Hyperlinks Editor'у с бОльшим функционалом и предварительным просмотром..
• программа для создания и внедрения в книгу пустых страниц.. DjVu Clean Page Inserter
• программа для удаления страниц из книги.. DjVu Chunk Remover
• программа для удаления пустых чанков, типа CIDa.. DjVu Chunk Remover
• программа для добавления текста в нужное место на странице (+ к существующему)
• программа для удаления блитов со страницы DjVu Blits Hider
• программа для разделения разворотов на 2 страницы
• программа для добавления новых блитов на существующую страницу (объединение графики с двух страниц на одну) DjVu Blits Merger
• программа для перемещения блитов на странице
• программа для кодирования ч/б растра без потерь одним или несколькими большими по размеру шейпами
• еще что-то хотел сделать.. но забыл.. вспомню - запишу))
если найдутся желающие сделать эти программы - добро пожаловать)) мыслями и наработками с удовольствием поделюсь)) это относится и к следующему блоку тоже..
Программы, которых нет, и я, к сожалению, наврядли осилю((..
• визивиг-редактор текстового слоя..
• Hyperlinks-редактор, типа Document Express Editor, но с возможностью групповой правки гиперссылок..
• полноценный визивиг редактор графики DjVu с возможностью удаления, сдвига, правки шейпов в маске.. а может быть и корректировки фона тоже..
• WinDjView с поиском текста в закладках.. ну и некоторыми другими дополнительными возможностями.. таки осилил))
продолжение следует..