Функция Coldfusion SpreadsheetAddImage не вставляет изображение

Я в настоящее время на CF версии 9.0.1, и у меня возникают проблемы с получением SpreadsheetAddImage функция, чтобы правильно вставить изображение в электронную таблицу, которую я генерирую. Я не получаю никаких сообщений об ошибках, просто изображение не отображается в электронной таблице. Я также исключил любые проблемы с нахождением изображения или его возвратом (проверено с использованием атрибута cfimage writetobrowser).

Я также удалил все свои данные и форматирование из электронной таблицы, чтобы исключить что-либо, перезаписывающее содержимое этой ячейки. Просто чтобы посмотреть, смогу ли я получить пустую электронную таблицу с изображением.

Смотрите пример кода ниже.

<cfset sObj = SpreadsheetNew()>
<!--- <cfimage source="pathtomyimage.jpg" name="image"> --->
<cfset image_var = ImageRead("pathtomyimage.png")>

<cfset SpreadsheetAddRow(sObj, "")>
<cfset SpreadsheetAddImage(sObj,image_var,"png","1,1,1,1")>

...

<cffile action="readbinary" file="#dest_loc#" variable="export_file">
<cffile action="delete" file="#dest_loc#">

<cfheader name="Content-Disposition" value="inline; filename=#file_name#.xls">
<cfcontent type="application/vnd.msexcel" variable="#toBinary(export_file)#">

Я ценю любые отзывы. Благодарю.

1 ответ

Решение

Я запустил ваш код и обнаружил, что изображение не появляется, когда anchor размеры были слишком малы. (Я также использовал SpreadSheetReadBinary вместо записи электронной таблицы на диск, но это не должно иметь никакого значения). Попробуйте этот пример из документации. Если изображение видно, это говорит о проблеме с размерами. Чтобы исправить это, вы можете либо увеличить размеры якоря, либо использовать функции изображения, чтобы уменьшить размер изображения.

<cfchart format="png" name="image_var"> 
    <cfchartseries type="line"> 
        <cfchartdata item="Point1" value="-50"> 
        <cfchartdata item="Point2" value="-25"> 
        <cfchartdata item="Point3" value="1"> 
    </cfchartseries> 
</cfchart> 

<cfset sObj = SpreadsheetNew()>
<cfset SpreadsheetAddRow(sObj, "")>
<cfset SpreadsheetAddImage(sObj,image_var,"png","1,1,7,6")>
<cfheader name="Content-Disposition" value="inline; filename=testFile.xls">
<cfcontent type="application/vnd.msexcel" variable="#SpreadSheetReadBinary(sObj)#">
Другие вопросы по тегам