Как я могу вставлять изображения в файл Word, сгенерированный ASP.NET - PullRequest
4 голосов
/ 12 декабря 2008

У меня довольно распространенная проблема, как я видел в различных группах пользователей, но не смог найти подходящий ответ.

Я хочу создать на своем веб-сайте страницу ASP.NET, которую можно будет экспортировать в формат Microsoft Word .doc.

Я использовал следующий метод:

Response.Clear();
Response.AddHeader("content-disposition", "attachment;filename=Test.doc");
Response.Charset = "";
Response.Cache.SetCacheability(HttpCacheability.NoCache);
Response.ContentType = "application/msword";

StringWriter sw = new StringWriter();
HtmlTextWriter htmlWrite = new HtmlTextWriter(sw);
Page.RenderControl(htmlWrite);
Response.Write(sw.ToString());
Response.End();

Однако это событие, хотя оно генерирует слово doc, изображения представляют собой примечания, встроенные в документ, а не в виде ссылок. Я искал способ сделать это, но не нашел то, что действительно сработало.

Буду признателен за любую помощь, которую смогу получить, поскольку это требование "в последнюю минуту" (говорить о типичном)

Спасибо

1 Ответ

6 голосов
/ 19 декабря 2008

Краткий ответ: Необходимо указать абсолютные URL-адреса источника изображений на вашей странице.

Более длинный ответ:

Microsoft Word откроет документ HTML, если вы переименуете его с расширением * .doc. Это то, что делает код, который вы предоставили. В этом случае изображения не внедряются в документ, как если бы вы создали документ в реальном формате Word. Если ваши изображения используют относительные URL-адреса, Word не будет знать, где их искать, поэтому необходимо указывать абсолютные URL-адреса.

ПРИМЕЧАНИЕ. Это означает, что любой, просматривающий документ без подключения к Интернету, не увидит изображения, так как они запрашиваются с сервера при каждом открытии документа.

Более элегантным решением было бы создание документа в реальном формате Word. Отличная библиотека для этого - Aspose.Words . Используя эту библиотеку, вы сможете вставлять изображения непосредственно в документ, чтобы они не зависели от сервера.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...