我正在创建一个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文档在服务器上创建,并将创建的文档作为下载提供给客户端。
有人可以帮我吗?谢谢!
答案 0 :(得分: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();
}
}
答案 1 :(得分:-1)
刚看到这个......
我设法让Word在服务器上运行(Apache)。您必须在可以运行Word的用户帐户下运行Apache。此外,如果您使用Office 32位,则必须运行Apache 32位。一次只运行一个Word实例。但是,Word可以同时打开多个文档。我开发了一个插件,我放在Word的启动目录中,因此它可用于每个文档。在AutoExec宏中,我触发读取作业队列并生成文档的代码。所有这些都是使用AJAX和PHP从Web运行的。