2

Я играл с программным обеспечением Linux OCR, и мне очень нравится Tesseract, особенно в сочетании с gsan2pdf. Tesseract v3 или более поздней версии поддерживает вывод в формате hocr, и gscan2pdf может использовать его для создания отсканированных документов PDF с возможностью поиска.

Иногда, однако, я также хотел бы получить текстовую версию. pdftotext в доступном для поиска pdf, сгенерированном gscan2pdf, как описано выше, не так хорош для этого, так как даже с опцией -raw компоновка вывода плохо копирует исходную физическую компоновку. Я могу настроить пользовательскую команду в gscan2pdf, которая будет вызывать tesseract для исходного отсканированного изображения без опции hocr, так что генерируется только простой текст, однако ocr оказывается довольно трудоемким, чтобы сделать это дважды для каждой страницы. Разве нет рабочего способа преобразования из hocr в обычный текст (с тем же макетом, что и сгенерированный tesseract при вызове без параметра hocr), или способ заставить tesseract одновременно выводить как простой текст, так и hocr?

https://github.com/jbrinley/HocrConverter выглядит многообещающе, но для меня это не работает.

1 ответ1

0
<?php 
/**
 * Cli process that gets as 1st argument the output of tesseract ... hocr and dumps 
 * its text nodes
 * Usage: script.php in.tif.html out.txt
 */
$inFile = $argv[1];
$outFile = $argv[2];
$stream = file_get_contents($inFile);
$dom = DOMDocument::loadHTML($stream);
$out = array();
foreach ($dom->getElementsByTagName('p') as $tag) {
    $out[] = $tag->nodeValue;
}

file_put_contents($outFile, implode("\n", $out));

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .