Windowsプラットフォームに.doc拡張子の付いたファイルがあるとすると、C ++のofstreamオブジェクトを使用して、その内容を画面に出力するためにファイルを開くにはどうすればよいですか?オブジェクトを使用して、テキストモードとバイナリモードでファイルを開くことができることを認識しています。しかし、.doc(または.pdf)ファイルを開いてその内容を読み取ることができるかどうかを知りたいのですが。
2 に答える
私はこれまで実際にこれを行ったことはありませんが、それを読んだ後、提案があるかもしれないと思います. .docx 形式は、実際には圧縮された単なる XML です。解凍後、ファイルは word/document.xml にあります。プログラムでこれを行うのが楽しいところです。
2 つのオプション: C++ CLR (.NET) を使用している場合、Microsoft には SDK があります。Office ドキュメントを簡単に開くことができます。
それ以外の場合、通常の C++ を使用しているだけの場合は、追加の作業が必要になる場合があります。
- ファイルを開き、zlibなどのライブラリを使用して解凍します。
- 内部の document.xml ファイルを見つけます
- XML ドキュメントを解析します。おそらく、これにはある種の XML 解析ライブラリを使用する必要があります。必要なテキストを取得する方法を理解するには、XML の仕様を調べる必要があります。
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 ) が役立つかもしれません。