2

Qtを使ってプログラムを書いています。フォーマットを保持するために.docに出力したいのですが、Qtでサポートされているのはプレーンテキスト、ODF、およびHTMLフォーマットだけです。ODFとHTMLはフォーマットを保持しますが、これをコピーして.docファイルに貼り付ける必要があります。

.docファイルを保存できるようにしたいので、これを行うことを心配する必要はありません。私はこれを何度もグーグルで検索しましたが、解決策が見つかりませんでした。

4

4 に答える 4

1

有効な .doc ファイルを作成する唯一の方法は、Microsoft Office を使用することです。これは、プログラムから OLE オートメーションを使用して実行できます (この問題の詳細については、こちら - なぜ Microsoft Office ファイル形式が複雑なのか (およびいくつかの回避策) )。

Qt は、COM オブジェクトを操作するための ActiveQt フレームワークを提供します。そのため、COM インターフェイスを使用して Word をロードし、.html を .doc に変換できます。もちろん、MS Office がインストールされている必要があります。

于 2010-02-07T12:44:12.287 に答える
0

これに代わる別の方法があります...実際にはハッキングと呼ぶことができますが、私が自分で見つけたので、それは一種の簡単な方法です.

  1. ドキュメントに似た HTML テンプレートを作成する
  2. Microsoft Word を使用して HTML テンプレートを開く
  3. テンプレートを調整する(一部調整が間違っている可能性があります)
  4. データ/テキストを書きたい場所に、#offaddress# などのマーカーを置きます。
  5. ドキュメントを保存する
  6. ドキュメントの名前を HTML に戻す
  7. ドキュメントを開きます。ドキュメントには、多くの Microsoft Word ドキュメント コードなどが含まれます。心配するな。
  8. コード全体をコピーして Qt に貼り付けます
  9. Qt への出力を .doc ファイルとして設定する
  10. キーワード (#offaddress#) をコンテンツに置き換えます
  11. コンテンツを拡張子 .doc のファイルに保存します

ほら; .doc ファイルがあります。

于 2010-10-05T15:38:34.647 に答える
0

あなたが述べたように、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 ファイルを開きます。

于 2010-02-05T03:20:07.577 に答える
0

「.doc」形式と言うときは、Microsoft Word で使用される「Word 97-2003 ドキュメント」形式を意味していると思います。Microsoft Office は .html ファイルを問題なく開くことができるので、その方法を使用できます。プログラムを実行しているコンピューターに Word がインストールされている場合は、データをクリップボードにコピーし、自動化を使用して Word に貼り付けて .doc 形式で保存することができます。

具体的にどのフォーマットを使用していますか?

于 2010-02-04T02:58:36.083 に答える