10

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

谢谢

4

3 回答 3

9

假设 djvu 文件包含 OCR-ed 文本,在 Linux 上快速获取该文本的方法是使用 Popen 运行djvutxt并获取输出。

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

无耻的自我推销:我为Calibre贡献了来自 OCR-ed 的转换.djvu,它djvutxt以这种方式使用。但是,如果不可用,它会退回到我的纯 python 解码器实现(sloooow)djvutxt。因此,如果您不能使用djvutxt.

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

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

相关文件是djvu_input.py,djvu.pydjvubzzdec.py

于 2013-03-12T18:28:45.860 回答
3

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

于 2009-10-08T15:39:16.613 回答
1

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

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

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

于 2009-12-11T04:29:44.277 回答