如何将.epub文件转换为纯文本?

我可以在okular等软件中查看epub文件,选择所有文本并复制粘贴到文本编辑器中。我想知道是否有命令行方法可以实现这个功能?

我建议您使用一些Firefox的EPUB阅读扩展,而不是Okular。 - Adobe
5个回答

我不知道Calibre是否值得为你的工作安装,但如果你有它,你可以使用强大的电子书转换器:
ebook-convert input.epub output.txt
输出格式根据输出文件扩展名自动推断。
我想可能有一些XML工具/脚本(XSLT)可以将epub转换为文本,因为epub基本上是ZIP存档中的XHTML。

1Calibre(以及它的“ebook-convert”)确实是一个非常强大的工具!谢谢! - drevicko
1如果您在OS X上安装了calibre,可以在这里找到命令行工具:/Applications/calibre.app/Contents/MacOS/ebook-convert - funroll
如果您使用命令行工具,可能需要配置或设置选项以获得正确的输出,否则在从epub转换为纯文本时可能会出现错误的编码。使用应用程序界面,默认设置似乎可以正常工作。 - lacostenycoder
从文档中翻译过来的内容是:"选项和默认值会根据输入和输出格式而变化,所以你应该始终使用 ebook-convert input.format output.format -h 命令进行检查"(参见:https://manual.calibre-ebook.com/generated/en/ebook-convert.html) - michael

另一种选择是由Kevin Boone开发的epub2txt, 可在Github上获取。

epub2html是一个简单的命令行实用程序,用于从EPUB文档中提取文本,并可选择重新排列以适应特定列数的文本显示。它完全使用ANSI标准的C语言编写。

使用示例:

epub2txt input.epub > output.txt

1请注意,此版本的epub2txt已经过时。它已被完全重新实现为一个新项目,称为epub2txt2。您可以在以下链接找到最新版本:https://github.com/kevinboone/epub2txt2 - michael

MuPDF 可以将 epub 转换为 htmltxt。安装它的方法如下:

sudo apt install mupdf mupdf-tools

使用它的方法:
mutool convert -o somefilename.txt somefilename.epub 

它假设从-o选项输出的txt内容。
有关更多信息,请参阅mutool convert documentation


3虽然这个回答在理论上可能是正确的,但最好还是在这里包含回答的关键部分,并提供链接作为参考。 - hhlp

使用终端将epub文档转换为纯文本的方法如下:
pandoc input.epub | lynx --stdin --dump > output.txt

假设已经安装了 pandoclynx