Я сделал консольную программу:
hocr2djvuxmlВерсия: v1.0.
Скачать:
http://www.djvu-soft.narod.ru/soft/hocr2djvuxml_v1_0.rar (123 КБ)
Синтаксис:
hocr2djvuxml <hOCR_path> <DjVuXML_path>
Эта программа делает из одностраничного hOCR-файла, полученного в CuneiForm, соответствующий DjVu XML-файл, который можно затем подать на вход djvuxmlparser, и таким образом вставить OCR от CuneiForm в DjVu.
Программа написана на С++ STL и использует pugixml. Она является полностью кроссплатформенной. Лицензия - "GPL 2 and later". Программа работает полностью на UTF-8 - на входе и на выходе имеем UTF-8.
Я решил не делать преобразование hOCR -> hxml (а уже потом hxml->dxml), поскольку это оказалось довольно непросто (особенно в плане перекодировок).
И ещё я сделал демо-набор для демонстрации работы этой утилиты:
Скачать:
http://www.djvu-soft.narod.ru/scan/hocr2djvuxml_demo.rar (322 КБ)
Там один hOCR-файл и соответствующий ему DjVu-файл без OCR-слоя.
Пока что hocr2djvuxml ещё очень примитивен. Он способен обрабатывать только самый простейший hOCR-синтаксис. Формируемая в DjVu XML OCR-информация разбита лишь построчно - даже не пословно (не говоря уже о побуквенном разбиении). Я пока точно не знаю, делает ли CuneiForm более точное разбиение, чем просто построчное. Если делает, то я тоже сделаю.
С моей точки зрения hocr2djvuxml более прост, чем hocr2djvused от Jakub Wilk. Всего одна утилита - и полностью кроссплатформенная. Не требующая для своей работы никакой дополнительной хрени вроде Java, Python, .NET и т.д. и т.п.
В дальнейшем буду в случае необходимости совершенствовать эту утилиту. Для этого мне нужны неординарные примеры hOCR-файлов от CuneiForm.