C++ 用C+编写的程序中的RTF/doc/docx文本提取+/Qt
我正在用/C++编写一些程序,需要从//docx文件中读取文本 我正在寻找一些命令行程序来进行提取。它可能是几个程序 我发现的最接近的东西是,但是它有几个bug,所以我不能使用它。 我也在电脑上安装了Microsoft Word。也许有某种方法可以使用它来阅读文本(不知道如何使用)?我建议不要使用COM,因为这首先会破坏像Qt这样的便携式库的使用 您可能希望使用classic或类似的工具,例如C++ 用C+编写的程序中的RTF/doc/docx文本提取+/Qt,c++,windows,qt,C++,Windows,Qt,我正在用/C++编写一些程序,需要从//docx文件中读取文本 我正在寻找一些命令行程序来进行提取。它可能是几个程序 我发现的最接近的东西是,但是它有几个bug,所以我不能使用它。 我也在电脑上安装了Microsoft Word。也许有某种方法可以使用它来阅读文本(不知道如何使用)?我建议不要使用COM,因为这首先会破坏像Qt这样的便携式库的使用 您可能希望使用classic或类似的工具,例如 请注意,尽管catdoc作者声称catdoc在Windows下不工作,但有一个。尝试读取.doc文件,
请注意,尽管catdoc作者声称catdoc在Windows下不工作,但有一个。尝试读取.doc文件,您可以使用。doc基本上是一个结构化存储库,具有与文档的各个部分相对应的各种流。
请注意,这是一个非常复杂的API,即使使用此API,.doc文件也可能看起来非常混乱。
当然,这仍然只是windows,但至少不是COM。只是一个普通的旧C API。现在,这非常难看,非常粗糙,但对于基本的文本提取,它似乎对我有用。显然,要在Qt程序中使用此命令,您必须为其生成一个进程,等等,但我所破解的命令行是:
unzip -p file.docx | grep '<w:t' | sed 's/<[^<]*>//g' | grep -v '^[[:space:]]*$'
解压-p file.docx | grep'这可能会有所帮助。它是跨平台的,具有API
否则,如果这只是windows,iFilter方法就是最好的选择。它将允许您解析系统中具有iFilter的任何内容。下面是一些例子。我经常使用C端的iFilter。我正在尝试独立于平台进行操作。我认为有几个程序可以做这些事情,但需要找到。无论如何谢谢这对docx文件有用。。。但这取决于您对OpenXMLSDK的了解程度。。。如果你只是想要文本而不是太复杂。。。这也行,你可以试试wvLib。它被Abiword使用,正是我想要的,可以将.doc和.docx转换为纯文本。