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

这在我的本地机器上完美运行。但是,如果我将我的代码放在网络服务器上,它当然不起作用。

我的问题是:我必须做的是,在服务器上创建 Word 文档并将创建的文档作为下载提供给客户端。

有人可以帮我吗?谢谢!!

4

2 回答 2

0

我认为您当前执行此操作的方式需要服务器上存在 Microsoft Word(或至少是 Interop 组件)以允许此操作。

也许更好的方法是动态创建 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

刚看到这个...

我设法让 Word 在服务器 (Apache) 上运行。您必须在可以运行 Word 的用户帐户下运行 Apache。此外,如果您使用 Office 32 位,则必须运行 Apache 32 位。一次只运行一个 Word 实例。但是,Word 可以同时打开多个文档。我开发了一个插件,放在 Word 的启动目录中,以便每个文档都可以使用它。在 AutoExec 宏中,我触发读取作业队列并生成文档的代码。所有这些都是使用 AJAX 和 PHP 从网络上运行的。

于 2014-12-31T17:43:52.873 回答