Сгенерированный документ HTML word не отображает изображение правильно - PullRequest
8 голосов
/ 19 марта 2010

Я пытаюсь добавить изображение в сгенерированный документ HTML, который встроен в классическую страницу ASP. Код выглядит примерно так:

<%
    Response.ContentType = "application/msword"    
%>

<html xmlns:v="urn:schemas-microsoft-com:vml"
xmlns:o="urn:schemas-microsoft-com:office:office"
xmlns:w="urn:schemas-microsoft-com:office:word">

...

<v:shape id="_x0000_s1030" type="#_x0000_t75" style='position:absolute;
 left:0;text-align:left;margin-left:0;margin-top:17.95pt;width:7in;height:116.85pt;
 z-index:2;mso-position-horizontal:center;mso-position-horizontal-relative:page;
 mso-position-vertical-relative:page'>
 <v:imagedata src="http://xxx/image001.gif" o:title="image001"/>
 <w:wrap anchorx="page" anchory="page"/>
 <w:anchorlock/>
</v:shape><![endif]--><![if !vml]><span style='mso-ignore:vglayout;position:
absolute;z-index:0;left:0px;margin-left:0px;margin-top:24px;width:672px;
height:156px'><img width=672 height=156
src="http://xxx/image001.gif" v:shapes="_x0000_s1030"></span><![endif]>

URL-адрес изображения правильный и может быть просмотрен через браузер, однако при открытии документа word изображение имеет красный крестик с сообщением об ошибке:

Изображение не может быть отображено. Ваш компьютер может не иметь достаточно памяти для откройте изображение, или изображение может быть поврежден. Перезагрузите компьютер и затем снова откройте файл. Если красный х появляется, возможно, вам придется удалить изображение, а затем вставьте его снова.

Если я скопирую HTML-код и попытаюсь открыть документ Word на моем локальном компьютере, изображение будет отображаться правильно. Это просто не работает при получении документа с сервера. Это происходит с любыми изображениями, которые я пытаюсь добавить. Есть ли другой способ добавления изображений в текстовые документы, созданные в формате html, которые можно выводить со страницы asp?

Спасибо.

Обновление:

Что я заметил, так это то, что при копировании кода word doc со страницы asp, вставке его в файл и переименовании в word doc, я получаю следующее приглашение при его открытии:

Некоторые файлы на этой веб-странице не находятся в ожидаемом месте. Вы все равно хотите их скачать? Если вы уверены, что веб-страница получена из надежного источника, нажмите Да.

Если я нажимаю Да, изображение отображается нормально, если я нажимаю Нет, я получаю ту же ошибку, что и описанная выше. Я думаю, что, поскольку слово doc происходит от страницы ASP, по умолчанию используется параметр безопасности, чтобы не отображать внешние элементы. Я попытался добавить URL-адрес сайта (это локальный сайт в интрасети) на мои доверенные сайты и в качестве надежного местоположения в слове, но все равно не повезло.

Ответы [ 7 ]

3 голосов
/ 05 октября 2010

Зайдите в Options, Web Options (которые могут быть в Advanced), снимите флажок «Положиться на VML для отображения графики в браузерах»

3 голосов
/ 31 марта 2010

Вы можете попробовать удалить тег o: title. Я обнаружил, что если этот тег есть, слово пытается встроить изображение, но сделает это только в том случае, если оно находится в нужном месте. При удалении тега o: title слово просто обрабатывает его как ссылку.

0 голосов
/ 05 января 2013

Заменить следующую строку

"<v:imagedata src="............" o:title="image001"/>"

с простой строкой кода

"<img src="............"/>"

Я уверен, что вы получите результат. Я проверил это.

0 голосов
/ 25 марта 2010

Разрешено ли Word 2007 выходить в интернет? Может быть, есть правило брандмауэра, блокирующее его?

0 голосов
/ 25 марта 2010

Убедитесь, что URL-адрес изображения (местоположение) указан правильно и добавьте косую черту.Если это все еще не работает, проверьте, могут ли какие-либо другие изображения из того же каталога отображаться.Если они это сделают, то повторно загрузите изображение и попробуйте снова.Если другие изображения не отображаются и если вы уверены, что URL-адрес правильный, попробуйте изменить разрешения на чтение для каталога изображений и изображений.Я не могу себе представить, что это может быть вызвано правами доступа.

Если нет особой причины для создания HTML в MS Word, я бы посоветовал вам не делать этого.Даже для тех, кто никогда раньше не видел HTML или CSS, они очень просты и аккуратны в изучении и могут дать гораздо лучшие результаты, чем MS Word.

0 голосов
/ 24 марта 2010

Я знаю, что это глупая ошибка, но вы позаботились о том, чтобы поместить изображение в нужное место, чтобы оно было доступно на веб-странице? Если вы просто наберете http://xxx/image001.gif URL в вашем браузере, появится ли изображение? Если нет, я бы сказал, что это ваша проблема.

0 голосов
/ 24 марта 2010

Это весь код, сгенерированный Word 2007, или вы добавляете код вручную? Интересно, что у тега img нет косой черты, чтобы закрыть его.

...