CFDocument Images

У меня проблема с отображением изображений в cfdocument. Я безуспешно пробовал несколько разных вариантов (см. тестовый код ниже).

Кажется, что cfdocument распознает, что там есть файл изображения, потому что размер ячейки таблицы меняется. Тем не менее, он не отображает содержимое изображения. Буду признателен за любую помощь.

    <cfdocument format="PDF" localURL = "yes">
    <p style="background-color:#006633">

    <table border="1">
    <tr><td><cfoutput>
            output from "file:///#ExpandPath('CEUCertificate_ABondy3.jpg')#" 
            </cfoutput>
        </td>
        <td style="background-color:white">
        <cfoutput>
           <image src="file:///#ExpandPath('CEUCertificate_ABondy3.jpg')#"> 
        </cfoutput>
        </td>
    </tr>
    <tr><td><cfoutput> output from #ExpandPath('CEUCertificate_ABondy3.jpg')#  </cfoutput> </td>
        <td>
        <cfoutput>
            <image src="#ExpandPath('CEUCertificate_ABondy3.jpg')#"> 
        </cfoutput>
        </td>
    </tr>
    <tr><td style="background-color:red">
            Output from: img src="CEUCertificate_ABondy3.jpg"
        </td>
        <td style="background-color:red"> 
            <img src="CEUCertificate_ABondy3.jpg"/>
        </td>
    </tr>
    <tr>
        <td style="background-color:white">
            output from image src="CEUCertificate_ABondy3.jpg"
        </td>
        <td>
            <cfoutput>
            <image src="CEUCertificate_ABondy3.jpg">
            </cfoutput>
    </tr>
    <tr>
        <td>Output from local url</td>
        <td>
             <cfoutput>
             <img src=#localUrl("CEUCertificate_ABondy3.jpg")#>
             </cfoutput>
        </td>
    </tr>
    </table>
    </p>
    </cfdocument>

    <cffunction name="localUrl" >
      <cfargument name="file" />

      <cfset var fpath = ExpandPath(file)>
      <cfset var f="">
      <cfset f = createObject("java", "java.io.File")>
      <cfset f.init(fpath)>

      <cfreturn f.toUrl().toString()>
    </cffunction>

person Janusz Chudzynski    schedule 14.05.2013    source источник
comment
Что произойдет, если вы используете <img src="/cde/mobileweb/CEUCertificate_ABondy3.jpg"/> ?   -  person Miguel-F    schedule 14.05.2013
comment
Сколько оперативной памяти вы выделили экземпляру CF? Пробовали увеличить?   -  person Henry    schedule 15.05.2013
comment
Генри, я не могу это контролировать.   -  person Janusz Chudzynski    schedule 15.05.2013


Ответы (2)


Для вашего первоначального вопроса вам нужно сослаться на изображения в вашем теге cfdocument, как и на любой другой HTML-странице; <img src="url-to-the-image" />. Так что это должно сработать для вас.

<img src="/cde/mobileweb/CEUCertificate_ABondy3.jpg"/>

Теперь, когда вы внесли это изменение, страница истекает по тайм-ауту. Вероятно, это связано с тем, как создавалось изображение. см. эту страницу здесь. Которое я нашел на странице Чарли здесь.

Попробуйте открыть это изображение в редакторе и пересохранить. Затем посмотрите, уменьшается ли время обработки.

Я нашел еще несколько обсуждений по этому поводу на странице блог Бена Наделя здесь.

person Miguel-F    schedule 14.05.2013
comment
Спасибо! Я уже пытался пересохранить и даже изменить размер, но попробую еще раз с другим редактором. - person Janusz Chudzynski; 15.05.2013
comment
Я не смог заставить его работать. Я использовал библиотеку mpdf для создания pdf. - person Janusz Chudzynski; 23.05.2013
comment
Если вы нашли другое решение своей проблемы, опубликуйте его как ответ на вопрос, чтобы другим было легче найти его, чем в этих комментариях. Рад, что у тебя получилось. - person Miguel-F; 26.05.2013

Вместо того, чтобы возиться с ExpandPath() и file://, кодируйте его как обычный html и сначала убедитесь, что он работает. Затем используйте localUrl="true" в своем <cfdocument>

person Henry    schedule 14.05.2013
comment
Он также используется в моем коде. ‹img src=CEUCertificate_ABondy3.jpg/› Ничего не появляется. - person Janusz Chudzynski; 15.05.2013
comment
@JanuszChudzynski, это из-за того, как cfdocument работает с изображениями. Ваш код ищет изображение в корневом каталоге, но его там нет. Вы пробовали пример из моего комментария? - person Miguel-F; 15.05.2013
comment
да. И я получаю следующую ошибку: Обработка содержимого этого документа занимает более 60000 миллисекунд. - person Janusz Chudzynski; 15.05.2013
comment
Что является признаком прогресса... по крайней мере, cfdocument что-то обрабатывает. - person Janusz Chudzynski; 15.05.2013
comment
Вы используете дополнительный код, чем тот, которым вы поделились с нами? - person Miguel-F; 15.05.2013