按照以下指示这页
我拿了一个 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 可以正常打开,但只有一页并且 OCR 可以正常工作。
有什么建议么?
答案1
pdfbeads 要求文档中的每一页都有一个单页 TIFF 文件和一个单页 html hOCR 文件。如果只能找到一个 TIFF 文件,则它只会输出一页。
使用分割 TIFF 文件tiffsplit
。hocrsplit
hocr-工具也许可以分割你的 html。我自己从来不用它。
我不会担心 iconv 警告。Ruby 总是对 pdfbeads 发出警告。原因如下:ruby 1.9.3 中的 iconv 弃用警告 - 问答 - 云+社区 - 腾讯云
答案2
我已经记不清我是否对您上面发布的说明进行了以下修改,或者是否在其他地方找到了它们(尽管谷歌搜索没有给出相关结果),下面是我几个月来一直使用的方法,将整个 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。