Qtを使ってプログラムを書いています。フォーマットを保持するために.docに出力したいのですが、Qtでサポートされているのはプレーンテキスト、ODF、およびHTMLフォーマットだけです。ODFとHTMLはフォーマットを保持しますが、これをコピーして.docファイルに貼り付ける必要があります。
.docファイルを保存できるようにしたいので、これを行うことを心配する必要はありません。私はこれを何度もグーグルで検索しましたが、解決策が見つかりませんでした。
有効な .doc ファイルを作成する唯一の方法は、Microsoft Office を使用することです。これは、プログラムから OLE オートメーションを使用して実行できます (この問題の詳細については、こちら - なぜ Microsoft Office ファイル形式が複雑なのか (およびいくつかの回避策) )。
Qt は、COM オブジェクトを操作するための ActiveQt フレームワークを提供します。そのため、COM インターフェイスを使用して Word をロードし、.html を .doc に変換できます。もちろん、MS Office がインストールされている必要があります。
これに代わる別の方法があります...実際にはハッキングと呼ぶことができますが、私が自分で見つけたので、それは一種の簡単な方法です.
ほら; .doc ファイルがあります。
あなたが述べたように、QTextDocumentWriter
プレーンテキスト、ODF、および HTML 形式のみをサポートします。
Windows でドキュメントのみを読む必要がある場合は、.doc を作成する代わりに PDF を作成できます。
QPrinter printer;
QTextDocument document;
//TODO: Put stuff to print in your 'document'
printer.setOutputFormat(QPrinter::PdfFormat);
printer.setOutputFileName("/foobar/nonwritable.pdf");
document.print( printer );
もう 1 つの解決策として、Word で文書を変更する必要がある場合は、Word 2003 の ODF アドオンを試して ODF ファイルを開きます。
「.doc」形式と言うときは、Microsoft Word で使用される「Word 97-2003 ドキュメント」形式を意味していると思います。Microsoft Office は .html ファイルを問題なく開くことができるので、その方法を使用できます。プログラムを実行しているコンピューターに Word がインストールされている場合は、データをクリップボードにコピーし、自動化を使用して Word に貼り付けて .doc 形式で保存することができます。
具体的にどのフォーマットを使用していますか?