如何从djvu和其他电子书格式中提取文本(可能在Python中)

时间:2009-10-08 15:28:38

标签: python pdf full-text-search djvu

我有djvu,pdf,chm格式的电子书集合,我正在寻找一种在内容中搜索关键字的方法。我一直在研究并找到解析pdf内容的几个建议,但似乎没有办法将djvu中的内容转换为文本。有任何机会,有没有人知道将djvu内容解码为文本的方法,以便我可以轻松搜索?

由于

3 个答案:

答案 0 :(得分:7)

假设djvu文件包含OCR文本,Linux上的一种快速方法就是使用Popen来运行djvutxt并获取输出。

.djvu文件中的文本使用djvu特定压缩算法bzz进行压缩,其中不存在可以作为Python中的共享对象加载的简单C接口。它是基于某种框架的C ++实现。

无耻的自我推销:我参与了Calibre来自OCR-ed .djvu的转换,该转换以这种方式使用djvutxt然而,如果djvutxt不可用,它会回到我的纯python解码器实现(sloooow)。因此,如果您无法使用djvutxt,则可以使用该代码。

我还没有从Calibre中单独推出Python源代码。但在下载并提取Calibre的源代码后:

curl -L http://status.calibre-ebook.com/dist/src | tar xvJ
find . | fgrep djvu

相关文件为djvu_input.pydjvu.pydjvubzzdec.py

答案 1 :(得分:3)

python-djvulibre是一组与djvulibre开源djvu实现的Python绑定 - 我没试过,但看起来它应该满足你的需求。

答案 2 :(得分:1)

当然,DjVuLibre SDK将允许访问文本层 - 如果它存在(并非所有DjVu文件都有文本层;许多​​都是纯粹的光栅图像)。

另一种解决方案可能是将您的索引建立在IIS技术的基础之上。 CamiNova有一个免费的IFilter,您可以使用它。

[http://dev.caminova.jp/beta/djvu-wic/][1]