NME

Advanced Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору FR11 DjVu Text Layer Crutch v0.3.2 СИСТЕМНЫЕ ТРЕБОВАНИЯ 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) не удаляются не удаляются (отключено с версии 0.3.2) - Объединить слова с дефисом "-" - разделенные в конце строки дефисом части слова объединяются по аналогии со знаком переноса "¬" - Не ставить дополнительный символ перевода строки в конце страницы - в связи с тем, что наиболее (имхо) популярный просмотрщик DjVu-файлов WinDjView имеет особенность игнорировать разделители зон в конце страницы (за исключением зон Line) при разбиении текста на параграфы в файлах ФР11+ и отсутствии разделителей для зон Line - при последующем копипасте такого текста из данного просмотрщика начало новой страницы сливается с концом предыдущей. Поэтому для корректного копирования текста после последней на странице зоны Line по умолчанию устанавливается знак перевода строки (0x0А) - Исправить старый метод переноса слов DjVuOCR (для слоя "не ФР11+") на новый - до версии 0.3.2 данный метод был по умолчанию включен без возможности отключения, что могло приводить к потере отдельно стоящих дефисов в конце строки, а также некоторых частей слов в конце строки, оканчивающихся дефисом и попадающих под признаки старого метода переноса слов DjVuOCR (версии ниже 2.1). Рекомендуется устанавливать только если переносы слов реализованы старым методом DjVuOCR, например, в таких случаях: "эта функция интегри¬" "руема на отрезке..." перенесено как "эта функция интегри-" "интегрируема на отрезке..." (а современные методы переноса делают так) "эта функция " "интегрируема на отрезке..." ---------- Разделители зон - символы, устанавливаемые в тексте после каждой зоны. Диапазон значений - от 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] - не удалять табы (отключено с версии 0.3.2) [-m2] - исправить старый метод переноса слов DjVuOCR на новый (для слоя "не ФР11+") [-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" (с версии 0.3.2 не включается по умолчанию) пример 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.3 1) поворот текстового слоя на страницах, повернутых после кодирования 2) корректная обработка страниц со словарями, имена которых не в utf8-кодировке -------------------------------------------------------------------------------- v 0.3.2 1) поддержка одностраничных DjVu 2) отключена возможность сохранения в тексте зон Char с символами табуляции 3) убираются пробелы и символы табуляции в начале некоторых слов (нет двойных пробелов) 4) работавшее ранее автоматическое исправление устаревшего метода переноса слов DjVuOCR ("метод 2" на "метод 1") теперь по умолчанию отключено и может быть включено пользователем принудительно (при необходимости) -------------------------------------------------------------------------------- v 0.3.1 1) исправлены ошибки, возникающие в некоторых случаях при предварительных правках текста в файнридере -------------------------------------------------------------------------------- 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.2.1 1) исправлена ошибка, возникающая при наличии в тексте слова "\n" -------------------------------------------------------------------------------- v 0.2 1) возможность сохранения измененного текстового слоя в другой DjVu-файл 2) возможность быстрого копирования текстового слоя из одного файла в другой 3) другие мелкие изменения -------------------------------------------------------------------------------- v 0.1 первый релиз | Всего записей: 1397 | Зарегистр. 26-07-2007 | Отправлено: 00:59 15-01-2013 | Исправлено: NME, 00:57 02-03-2022 |
|