Я знаю, что на SO есть много других вопросов по этой теме, но мне нужно больше информации.Это вопрос из двух частей к моему требованию: динамически генерировать документ MS Word из HTML и запросить загрузку.
Q1) Из того, что я читаю, кажется, что Microsoft.Office.Interop
- этоне предназначен для использования для автоматизации серверов, так как это всего лишь оболочка для приложения, и для его установки потребуется установить Office на веб-сервере.Это правильно?
Я заставил кое-что из этого работать, мне предлагают загрузить, документ Word сохраняет должным образом, но документ показывает мою разметку в качестве содержимого документа, а не визуализированный HTML в качестве содержимого.Из того, что я прочитал, якобы возможно экспортировать HTML в MS Word просто так без необходимости использования сторонних инструментов или компонентов.Я также хотел бы избегать формата Open XML, так как не могу гарантировать, какая версия Word у моих пользователей.
Q2) Чего мне не хватает здесь, чтобы появился мой HTMLотображается в выходном файле MS Word?doc.DocumentBody
- это тип string
, который содержит весь HTML-документ.
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;
}