Что может вызвать правильное отображение изображений при генерации PDF?
Я использую ColdFusion 8.
У меня есть отлично отформатированная HTML-страница, которую я хочу преобразовать в PDF. ColdFusion требуется около 250 миллисекунд для создания этого контента. Код проверен и верен и работает во всех отношениях без проблем, за исключением создания PDF.
Я создаю переменную PageContent следующим образом:
<!--- CREATE PAGE AS CONTENT --->
<cfsavecontent variable="PageContent">
<html>
<head></head>
<body>
<cfoutput>
// PAGE CONTENT IS HERE
<cfoutput>
</body>
</html>
</cfsavecontent>
Я могу отлично отобразить этот PageContent в виде HTML в браузере, открыть его в Word или Excel. Я пытаюсь создать PDF как это:
<cfdocument format="pdf">
<cfoutput>
#PageContent#
</cfoutput>
</cfdocument>
Содержимое страницы имеет встроенные стили, изображения, элементы div и таблицы. Если я удаляю путь к изображению и файл с пустой строкой, документ работает. Вот
Я думаю, что генератор PDF задыхается от пути изображения, хотя пути кажутся мне идеальными и хорошо отображаются везде. Тег img получает полный HTTP-путь, который полностью действителен. Вот тот, который не работает:
http://dev.iqcatalogs.com/avcat/IMAGES/products/spotlight/ef17_40_4lu_c2_186x279.gif
Что может вызвать правильное отображение изображений в PDF?
2 ответа
(Из комментариев выше) Я предполагаю, что вы уже изучили обычных подозреваемых?
т.е. 2) Если ваш сервер находится за брандмауэром. Как мы упоминали ранее, CF-сервер должен отправить HTTP-запрос на изображения. Если брандмауэр запрещает любое исходящее соединение с сервера, CF не сможет их получить и вместо них будет отображаться красный крестик. Вам необходимо настроить брандмауэр таким образом, чтобы сервер мог отправлять HTTP-запрос самому себе.
Помните, что для работы Cfdocument не имеет значения, можете ли вы открыть изображение в браузере. Это имеет значение, только если сервер может это сделать. Наиболее вероятной причиной этого является просто разрешение домена - когда сервер не может получить правильный IP-адрес - или когда он заблокирован для получения содержимого. Смотрите этот пост.