convertendo djvu para problemas de pdf com este código de preservação de OCR

1

Eu quero converter o djvu para pdf preservando o OCR. Esta página descreve como fazer isso, mas estou obtendo um arquivo html em branco.

Em / home / steven / Documents / djvu2pdf / 1 /, djvu2hocr -p 1 Intro.djvu me dá:

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

levando a um arquivo html em branco, então quando eu corro

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

ele é executado em um loop indefinido.

Eu também tenho um programa secundário chamado djvu2pdf que encontrei no link , mas

djvu2pdf Intro.djvu

me dá

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

O arquivo OCR abre bem.

    
por user140393 25.03.2013 / 09:34

2 respostas

1

Eu consertei o arquivo /home/steven/Documents/djvu2pdf/1/Intro.djvu. Acontece que todos os meus arquivos djvu não tinham extensões, mas o linux os abria de qualquer maneira.

Teste com um documento de uma única página

Primeiramente, executei cd /home/steven/Documents/djvu2pdf/1/

Em seguida, executei: 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'

O comando: djvu2hocr -p 1 1.djvu > tmp.html fez a mesma coisa 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

Eu tenho um html & tmp.html dizendo isso

link

Tive que postar lá b / c por qualquer razão absurda que este site não me permitisse postar esse código, usando html, code, pre tags nenhum funcionou Também o que exatamente é um tubo, mais ainda onde eu perdi naquele post? Eu sou novo no terminal no linux, apenas aprendendo por pesquisas no google

    
por user140393 27.03.2013 / 02:46
0

Primeiro, tente executar o programa com o caminho completo para o arquivo. Execute o seguinte comando para ter absoluta certeza de que seu arquivo existe

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

e tente

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

Em segundo lugar, há um problema com o seguinte comando em si:

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

Isso não será executado "em um loop infinito", mas apenas aguardará a entrada padrão (teclado no seu caso), já que você não está executando o sed com um argumento ou como parte de um canal. sed não sabe qual arquivo você deseja processar.

A página a que você se refere claramente especifica que você deve executá-la como parte de um canal. Como alternativa, você pode fazer da seguinte maneira:

 djvu2hocr -p 10 /home/steven/Documents/djvu2pdf/1/Intro.djvu > tmp.html
 sed 's/ocrx/ocr/g' tmp.html > pg10.html
    
por January 25.03.2013 / 11:50