0

こんにちは、次のような Word 文書を作成しています。

    Dim oApp As Word.Application
    Dim oDoc As Word.Document

    oApp = CreateObject("Word.Application")


    oDoc = oApp.Documents.Add


    Dim rng As Word.Range = oDoc.Range(0, 0)
    rng.Font.Name = "Verdana"
    rng.Font.Size = 16


    .......
    ...............



    oApp.Visible = True

    oDoc = Nothing
    oApp = Nothing

これは私のローカルマシンで完璧に機能します。しかし、コードを Web サーバーに配置すると、もちろん機能しません。

私の質問は: 私がしなければならないことは、Word ドキュメントがサーバー上で作成され、作成されたドキュメントをダウンロードとしてクライアントに提供することです。

誰かがそれを手伝ってくれますか?ありがとう!!

4

2 に答える 2

0

現在これを行っている方法では、これを許可するためにサーバーに Microsoft Word (または少なくとも相互運用コンポーネント) が存在する必要があると思います。

おそらく、より良いアプローチは、その場で PDF を作成し、それをクライアントに提供することです。

あるいは、おそらくこのアプローチはうまくいくでしょうか、それともこれでしょうか?

編集:

また、how-to-generate-word-documentdoc-docx-in-asp-netも参照してください。

編集:

このコード スニペットを使用すると、ファイルをクライアントにストリーミングできます

using (MemoryStream mem = new MemoryStream())
        {
            // Create Document
            using (<declare document>))
            {
               //create your document here


                // Stream it down to the browser

            Response.ContentType = "application/vnd.openxmlformats-officedocument.wordprocessingml.document";
            Response.AppendHeader("Content-Disposition", "attachment;filename=HelloWorld.docx");
            mem.Position = 0;
            mem.CopyTo(Response.OutputStream);
            Response.Flush();
            Response.End();
            }

        }
于 2012-12-18T06:58:08.533 に答える
-1

これを見ただけで...

サーバー (Apache) で Word を実行することができました。Word を実行できるユーザー アカウントで Apache を実行する必要があります。また、Office 32 ビットを使用する場合は、Apache 32 ビットを実行する必要があります。一度に実行できる Word のインスタンスは 1 つだけです。ただし、Word では複数のドキュメントを同時に開くことができます。各ドキュメントで使用できるように、Word のスタートアップ ディレクトリにアドインを作成しました。AutoExec マクロでは、ジョブ キューを読み取り、ドキュメントを生成するコードをトリガーします。これはすべて、AJAX と PHP を使用して Web から実行されます。

于 2014-12-31T17:43:52.873 に答える