web-dev-qa-db-fra.com

convertir djvu en problème de pdf avec ce code de conservation OCR

Je veux convertir djvu en pdf tout en préservant l'OCR. Cette page décrit comment procéder, mais je reçois un fichier html vierge.

Dans/home/steven/Documents/djvu2pdf/1 /, djvu2hocr -p 1 Intro.djvu Donne moi:

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

menant à un fichier html vierge, donc quand je lance

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

il fonctionne simplement sur une boucle indéfinie.

J'ai également un programme secondaire appelé djvu2pdf que j'ai trouvé sur http://0x2a.at/s/projects/djvu2pdf , mais

djvu2pdf Intro.djvu

donne moi

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

Le fichier OCR s'ouvre correctement.

1
user140393

J'ai corrigé le fichier /home/steven/Documents/djvu2pdf/1/Intro.djvu. Il s'avère que tous mes fichiers djvu n'avaient pas d'extensions, mais Linux les ouvrait quand même.

Test avec un document d'une seule page

J'ai d'abord couru cd /home/steven/Documents/djvu2pdf/1/

Puis a couru: 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'

La commande: djvu2hocr -p 1 1.djvu > tmp.html A fait la même chose 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

J'ai un html & tmp.html disant ceci

http://Pastebin.com/APwUPwk4

Je devais le poster là b/c pour une raison absurde, ce site ne me permettra pas de poster ce code, en utilisant du HTML, du code, des balises pré, ça n'a pas fonctionné. ? Je suis nouveau sur le terminal sous Linux, j'apprends juste par les recherches Google

1
user140393

Tout d'abord, essayez d'exécuter le programme avec le chemin d'accès complet au fichier. Exécutez la commande suivante pour vous assurer que votre fichier existe

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

puis essayez

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

Deuxièmement, il y a un problème avec la commande suivante sur elle-même:

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

Cela ne fonctionnera pas "dans une boucle infinie" mais attendra simplement l'entrée standard (clavier dans votre cas), car vous n'exécutez pas sed avec un argument ou en tant que partie d'un canal. sed ne sait pas quel fichier vous souhaitez traiter.

La page à laquelle vous vous référez spécifie clairement que vous devez l'exécuter en tant que partie d'un tuyau. Alternativement, vous pouvez le faire comme suit:

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