任何人都知道他们可以推荐什么,以便从.doc或.docx中提取纯文本?
我发现这个Best way to extract text from a Word doc without using COM/automation? - 想知道是否还有其他建议?
速度并不重要,我们甚至可以使用具有一些API的网站上传和提取文件,但我一直无法找到 .
谢谢
任何人都知道他们可以推荐什么,以便从.doc或.docx中提取纯文本?
我发现这个Best way to extract text from a Word doc without using COM/automation? - 想知道是否还有其他建议?
速度并不重要,我们甚至可以使用具有一些API的网站上传和提取文件,但我一直无法找到 .
谢谢
8 回答
如果你想要纯文本(我的要求),那么你需要的只是
我发现command line fu
它解压缩docx文件并获取实际文档,然后删除所有xml标记 . 显然所有格式都丢失了 .
LibreOffice
一种选择是无头模式下的libreoffice / openoffice(确保首先关闭libreoffice的所有其他实例):
有关详细信息,请参阅这个链接:http://ask.libreoffice.org/en/question/2641/convert-to-command-line-parameter/
有关libreoffice过滤器的列表,请参阅http://cgit.freedesktop.org/libreoffice/core/tree/filter/source/config/fragments/filters
由于openoffice命令行语法有点过于复杂,因此有一个方便的包装器可以使过程更容易:unoconv .
Apache POI
另一个选项是Apache POI - 一个支持良好的Java库,与antiword不同,它可以读取,创建和转换
.doc
,.docx
,.xls
,.xlsx
,.ppt
,.pptx
个文件 .以下是将
.doc
或.docx
文档转换为纯文本的最简单的Java代码:注意:您需要将apache poi库添加到类路径中 . 在ubuntu / debian上,可以使用
sudo apt-get install libapache-poi-java
安装库 - 这将在/usr/share/java
下安装它们 . 对于其他系统,您需要download库并将存档解压缩到您应该使用的文件夹而不是/usr/share/java
. 如果您使用maven / gradle(推荐选项),请包含org.apache.poi dependencies,如代码段所示 .相同的代码将适用于
.doc
和.docx
,因为将通过检查二进制流来选择所需的转换器实现 .编译上面的类(假设它在默认包中,并且apache poi jar在
/usr/share/java
下):运行转换:
docx2txt是为Debian打包的 .
我最喜欢的是反词:
http://www.winfield.demon.nl/
这是一个声称支持docx的类似项目:
https://github.com/rainey/antiword-xp-rb/wiki
试试Apache Tika . 它支持使用基于Java的库(以及其他,Apache POI)的大多数文档格式(每种Office格式,OpenOffice / LibreOffice格式,PDF等) . 它使用起来非常简单:
java -jar tika-app-1.4.jar --text ./my-document.doc
我发现wv比catdoc或antiword更好 . 它可以处理.docx并转换为text或html . 这是我添加到.bashrc中的一个函数,用于临时查看终端中的文件 . 根据需要进行更改 .
对于docx,如何http://libopc.codeplex.com/
我最近处理了这个问题,发现OpenOffice / LibreOffice命令行工具在 生产环境 中是不可靠的(处理了数千个文档,同时处理了几十个) .
最终,我构建了一个轻量级的包装器,它更加快速,并且无需格式化即可从.doc,.docx和.pdf中获取所有文本 . DocRipper利用Antiword,grep和pdftotext来抓取文本并将其返回 .