【发布时间】:2012-02-28 01:19:35
【问题描述】:
我知道关于这个主题还有很多其他问题,但我需要更多信息。我的要求分为两部分:从 HTML 动态生成 MS Word 文档并提示下载。
Q1) 从我读到的内容看来,Microsoft.Office.Interop 似乎不是为服务器自动化而设计的,因为这只是应用程序的包装,需要安装 Office网络服务器。它是否正确?
我已经完成了其中的一些工作,系统提示我下载,Word 文档正确保存,但文档将我的标记显示为文档的内容,而不是呈现的 HTML 作为内容。从我所读到的,应该可以像这样简单地将 HTML 导出到 MS Word,而不需要 3rd 方工具或组件。我还想避免使用 Open XML 格式,因为我无法保证我的用户使用的是哪个版本的 Word。
Q2) 为了让我的 HTML 出现在 MS Word 输出文件中,我缺少什么? doc.DocumentBody 是一个包含整个 HTML 文档的 string 类型。
public FileStreamResult DownloadDocument(string id)
{
/* pseudo-code here to fetch my custom "Document" object from DB */
Document doc = DocumentService.FindById(id);
var fileName = string.Format("{0}.doc", doc.Title);
Response.AddHeader("Content-Disposition", "inline;filename=" + fileName);
return new FileStreamResult(WordStream(doc.DocumentBody), "application/msword");
}
private static Stream WordStream(string body)
{
var ms = new MemoryStream();
byte[] byteInfo = Encoding.ASCII.GetBytes(body);
ms.Write(byteInfo, 0, byteInfo.Length);
ms.Position = 0;
return ms;
}
【问题讨论】:
标签: c# html asp.net-mvc-3 ms-word download