Что может вызвать правильное отображение изображений при генерации PDF? - PullRequest
0 голосов
/ 27 марта 2012

Я использую 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 ]

4 голосов
/ 27 марта 2012

(из комментариев выше) Я предполагаю, что вы уже изучили обычных подозреваемых ?

т.е. 2) Если ваш сервер находится за брандмауэром.Как мы упоминали ранее, CF-сервер должен отправить HTTP-запрос на изображения.Если брандмауэр запрещает любое исходящее соединение с сервера, CF не сможет их получить и вместо них будет отображаться красный крестик.Вам необходимо настроить брандмауэр таким образом, чтобы сервер мог отправлять HTTP-запрос самому себе.

4 голосов
/ 27 марта 2012

Помните, что для работы Cfdocument не имеет значения, можете ли вы получить изображение в вашем браузере. Это имеет значение, только если сервер может его запустить. Наиболее вероятной причиной этого является простое разрешение домена - когда сервер не может получить правильный IP-адрес - или когда ему запрещено получать содержимое. Смотрите этот пост.

разрешение и документация

...