(Примечание: я также опубликовал этот вопрос на этом вопросе , но здесь это кажется уместным, поэтому, пожалуйста, извините за репост.)
Теперь, это довольно уродливо и довольно хакерски, но мне кажется, что это работает для базового извлечения текста. Очевидно, что для использования этого в программе Qt вам нужно будет запустить процесс для него и т. Д., Но командная строка, которую я взломал вместе:
unzip -p file.docx | grep '<w:t' | sed 's/<[^<]*>//g' | grep -v '^[[:space:]]*$'
Так вот:
распаковать -p file.docx : -p == "распаковать в стандартный вывод"
grep ': захватить только строки, содержащие ' - это XML-элемент Word 2007 для "text", насколько я могу скажите)
sed 's / <[^ <] </em>> // g' *: удалить все внутри тегов
grep -v '^ [[: space:]] $' *: удалить пустые строки
Вероятно, есть более эффективный способ сделать это, но мне кажется, что он работает для меня на нескольких документах, с которыми я его тестировал.
Насколько я знаю, у unzip, grep и sed есть порты для Windows и любого Unix, поэтому он должен быть достаточно кроссплатформенным. Несмотря на то, что я немного уродлив;)