通过命令行将文档转换为文本格式

29

我们正在寻找一款程序,可以将doc或docx文档转换为txt文件。我们正在使用Linux,并希望启动一个网站来转换用户上传的doc文件。我们不想使用开放办公套件/自由办公套件,因为我们有不好的经验。Pandoc无法处理doc文件:/

有人有什么想法吗?

4个回答

28

如果你要处理的是 .doc 或者 .docx 格式的文件,需要使用两个不同的命令行工具。

对于 .doc 文件,请使用 catdoc 命令:

catdoc foo.doc > foo.txt

对于.docx文件,请使用docx2txt:

docx2txt foo.docx

后者将在与原文件相同的目录中生成名为foo.txt的文件。

我不确定您使用的是哪个Linux发行版,但是catdoc和docx2txt都可以从Ubuntu存储库中获取,例如:

apt-get install docx2txt

或者在 Mac 上使用 Homebrew:

brew install docx2txt

谢谢提供的信息,不幸的是对我来说,brew install docx2txt无法工作,'catdoc'命令不可用,我需要使用'docx2txt.sh'而不是'docx2txt'。 - Barney Szabolcs
原来catdoc已经被委派到了垃圾场,但是可以从源代码构建它,详见:https://apple.stackexchange.com/a/294259/36790 - Barney Szabolcs

1

这里有一个声称可以做到的Perl项目。我也手动完成了很多工作,使用XSLT在document.xml上操作。Docx文件本身只是一个压缩文件,您可以解压缩并检查元素。我会说,对于特定文件来说,这并不难做到,但在一般情况下非常困难,因为Word内部存储事物的文档缺乏说明,并且内部表示的差异很大。


1

你也可以使用pandoc

保持布局(换行符与文档可视化中的相同):

pandoc -s mydocument.docx  -o ouput.txt

只有当原始文本有换行命令时才换行:

pandoc --wrap=none -s mydocument.docx  -o ouput.txt

0

对于doc文件,您可以使用antiword,它在Homebrew和Ubuntu上都可用。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接