からの指示に従ってこれページ
djvu文書をdjvulibreで開いて破損の兆候がないか確認すると、問題ありませんでした。それをテストフォルダにコピーして名前を変更します。
実行する
djvu2hocr test.djvu | sed 's/ocrx/ocr/g' > test.html
ddjvu -format=tiff test.djvu test.tif
evince を使用して tif を開き、すべてのページが表示可能であることを確認します。
pdfbeadsを実行する
pdfbeads -o test.pdf
次のエラーが発生します。
/usr/lib/ruby/1.9.1/rubygems/custom_require.rb:36:in `require': iconv will be deprecated in the future, use String#encode instead. Prepared data for processing test.tif Warning: test.tif contains multiple images, but only the first one is going to be used JBIG2 compression complete. pages:1 symbols:2080 log2:12 Processed test.tif
PDF は正常に開きますが、1 ページのみで、OCR は機能します。
助言がありますか?
答え1
pdfbeads は、ドキュメント内の各ページに対して、1 ページの TIFF ファイルと 1 ページの html hOCR ファイルを想定しています。TIFF ファイルが 1 つしか見つからない場合は、1 ページのみが出力されます。
TIFFファイルをtiffsplit
.hocrsplit
で分割します。hocrツールHTML を分割できるかもしれません。私自身は、それを使用する必要がありませんでした。
iconv の警告については心配する必要はありません。Ruby は pdfbeads では常にこれを行います。理由は次のとおりです。Ruby 1.9.3 での iconv 非推奨警告 - Stack Overflow
答え2
上で投稿された手順に次の変更を加えたのか、それともどこか別の場所で見つけたのかはもう思い出せませんが (Google 検索では関連する結果は得られませんが)、以下は私が何ヶ月も前から djvu ファイル全体を pdf 形式に変換するために使用しているものです。
f='file.djvu'
pg=$(djvused -e 'n' $f)
for i in $(seq 1 $pg)
do
djvu2hocr -p $i $f | sed 's/ocrx/ocr/g' > `printf "pg%04d.html" $i`
ddjvu -format=tiff -page=$i $f `printf "pg%04d.tiff" $i`
done
pdfbeads -o ${f/djvu/pdf};
これにより、ページごとに個別の tiff (および対応する html ファイル) が作成され、pdfbeads を使用してすべてが結合されます。何らかの理由で djvu に 9999 ページ以上ある場合は、%04 のインスタンスを %05 などのより大きな値に変更する必要があることに注意してください。