Открытие существующего файла .doc с использованием ofstream в Stack Overflow

Предполагая, что у меня есть файл с расширением .doc на платформе Windows, как я могу открыть файл для вывода его содержимого на экран с помощью объекта ofstream в C ++? Мне известно, что объект можно использовать для открытия файлов в текстовом и двоичном режимах. Но я хотел бы знать, можно ли открыть файл .doc (или даже .pdf) и прочитать его содержимое.

3

Решение

Библиотека C ++ std имеет ifstream класс, который можно использовать для чтения простых текстовых файлов, а также для чтения двоичных файлов.

Это зависит от вас, чтобы интерпретировать эти байты в файле. Чтобы правильно интерпретировать двоичный файл, вам нужно знать формат файла.

Если вы думаете о файлах MS Word, то я бы начал отсюда: http://en.wikipedia.org/wiki/Office_Open_XML понять формат MS Word 2007.

Вы можете найти библиотеку Boost Iostreams ( http://www.boost.org/doc/libs/1_52_0/libs/iostreams/doc/home.html ) как-то полезно, если вы хотите сделать какой-то фильтр самостоятельно.

1

Другие решения

Я никогда не делал этого раньше, но после прочтения, я думаю, у меня может быть предложение. Формат .docx — это на самом деле просто XML, который заархивирован. После распаковки файл находится в word / document.xml. Делать это в программе — вот где это весело.

Два варианта: если вы используете C ++ CLR (.NET), то У Microsoft есть SDK для вас. Это должно облегчить открытие документов Office.

В противном случае, если вы просто используете обычный C ++, вам, возможно, придется проделать дополнительную работу.

  1. Откройте файл и разархивируйте его, используя такую ​​библиотеку, как Zlib
  2. Найдите файл document.xml внутри
  3. Разбор XML-документа. Возможно, вы захотите использовать какую-то библиотеку XML для разбора для этого. Вам нужно будет найти спецификации для XML, чтобы понять, как получить нужный текст.
1

По вопросам рекламы [email protected]