преобразование djvu в PDF-проблему с этим кодом сохранения OCR

1

Я хочу преобразовать djvu в pdf, сохраняя OCR. Эта страница описывает, как это сделать, но я получаю пустой html-файл.

В / home / steven / Documents / djvu2pdf / 1 /, djvu2hocr -p 1 Intro.djvu дает мне:

Converting 'Intro.djvu':
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  <meta name="ocr-system" content="djvu2hocr 0.7.9" />
  <meta name="ocr-capabilities" content="ocr_carea ocr_page ocr_par ocrx_block ocrx_line ocrx_word" />
  <title>DjVu hidden text layer</title>
</head>
<body>
*** [1-11711] Failed to open 'Intro.djvu': No such file or directory.
*** (ByteStream.cpp:693)
*** 'DJVU::GUTF8String DJVU::ByteStream::Stdio::init(const DJVU::GURL&, const char*)'


</body>
</html>
Traceback (most recent call last):
  File "/usr/bin/djvu2hocr", line 7, in <module>
    _.main(sys.argv)
  File "/usr/share/ocrodjvu/lib/cli/djvu2hocr.py", line 325, in main
    djvused.wait()
  File "/usr/share/ocrodjvu/lib/ipc.py", line 114, in wait
    raise CalledProcessError(return_code, self.__command)
subprocess.CalledProcessError: Command 'djvused' returned non-zero exit status 10

, приводящий к пустому html-файлу, поэтому, когда я запускаю

sed 's/ocrx/ocr/g' > pg1.html

он просто работает в неопределенном цикле.

У меня также есть вторичная программа под названием djvu2pdf, которую я нашел в ссылке , но

djvu2pdf Intro.djvu

дает мне

-e Error: /usr/bin/djvu2pdf: File 'Intro.djvu' not found

Файл OCR открывается нормально.

    
задан user140393 25.03.2013 в 09:34
источник

2 ответа

1

Я установил файл /home/steven/Documents/djvu2pdf/1/Intro.djvu. Оказывается, все мои файлы djvu не имеют расширений, но linux все равно их открывал.

Тестирование с помощью документа с одной страницей

Сначала я побежал cd /home/steven/Documents/djvu2pdf/1/

Затем побежал: djvu2hocr -p 1 1.djvu

DjVu hidden text layer - Page #1 Traceback (most recent call last): File "/usr/bin/djvu2hocr", line 7, in _.main(sys.argv) File "/usr/share/ocrodjvu/lib/cli/djvu2hocr.py", line 323, in main process_page(page_zone, options) File "/usr/share/ocrodjvu/lib/cli/djvu2hocr.py", line 263, in process_page result = process_zone(None, page_text, last=True, options=options) File "/usr/share/ocrodjvu/lib/cli/djvu2hocr.py", line 238, in process_zone parent.append(child) AttributeError: 'NoneType' object has no attribute 'append'

Команда: djvu2hocr -p 1 1.djvu > tmp.html сделали то же самое Converting '1.djvu': - Page #1 Traceback (most recent call last): File "/usr/bin/djvu2hocr", line 7, in _.main(sys.argv) File "/usr/share/ocrodjvu/lib/cli/djvu2hocr.py", line 323, in main process_page(page_zone, options) File "/usr/share/ocrodjvu/lib/cli/djvu2hocr.py", line 263, in process_page result = process_zone(None, page_text, last=True, options=options) File "/usr/share/ocrodjvu/lib/cli/djvu2hocr.py", line 238, in process_zone parent.append(child) AttributeError: 'NoneType' object has no attribute 'append'

sed 's/ocrx/ocr/g' tmp.html > pg1.html

У меня есть html & amp; tmp.html, говоря это

Ссылка

Должен был опубликовать его там b / c по какой-то абсурдной причине, этот сайт не позволит мне опубликовать этот код, используя html, code, pre tags none work Также, что такое труба, тем более, где я пропустил ее в этом посте? Я новичок в терминале в Linux, просто изучая поисковые запросы Google

    
ответ дан user140393 27.03.2013 в 02:46
0

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

file /home/steven/Documents/djvu2pdf/1/Intro.djvu

, а затем попробуйте

djvu2hocr -p 1 /home/steven/Documents/djvu2pdf/1/Intro.djvu

Во-вторых, есть проблема со следующей командой:

sed 's/ocrx/ocr/g' > pg1.html

Это не будет работать «в бесконечном цикле», но будет просто ждать стандартного ввода (клавиатура в вашем случае), так как вы не используете sed с аргументом или как часть канала. sed не знает, какой файл вы хотите обработать.

На странице, на которую вы ссылаетесь, четко указано, что вы должны запускать ее как часть канала. В качестве альтернативы вы можете сделать это следующим образом:

 djvu2hocr -p 10 /home/steven/Documents/djvu2pdf/1/Intro.djvu > tmp.html
 sed 's/ocrx/ocr/g' tmp.html > pg10.html
    
ответ дан January 25.03.2013 в 11:50