Coldfusion CFPDF читает двоичный столбец базы данных
Может ли cfpdf читать столбец двоичной базы данных напрямую?
В настоящее время у меня есть, где я запускаю запрос, чтобы получить столбец.
Используйте cffile, чтобы записать файл в каталог
Затем прочтите cfpdf, чтобы я мог извлечь текст.
Можно ли сделать это без записи и чтения двоичного файла напрямую?
Если так, могу ли я получить пример.
3 ответа
Какую версию ты используешь? Следующее работало для меня с CF9 / MS SQL (столбец varbinary)
<cfquery name="getPdf" ....>
SELECT Data
FROM someTable
WHERE ID = 123
</cfquery>
<cfset pdfBinary = getPdf.data[1]>
<cfpdf action="extractText" source="pdfBinary" name="result">
<cfdump var="#result#">
Редактировать: чтобы уточнить, cfpdf жалуется, когда вы используете queryName.columnName
как "источник". Я подозреваю, что cfpdf видит его как объект столбца запроса, вместо того, чтобы автоматически получать значение в первой строке запроса, т.е. queryName.columnName[ 1 ]
, Обходной путь - создать ссылку на нее и использовать вместо нее другую переменную.
Я не уверен на 100%, но вы должны быть в состоянии сделать что-то вроде этого:
<cfset myPDF = binaryEncode(binaryData,'base64')>
<cfpdf action="read" source="myPDF" name="PDFObj">
Я нашел простой способ сделать это:
<cfheader name="Content-Disposition" value="inline; filename=test.pdf">
<cfcontent type="application/pdf" variable="#qGetFile.uploaded_file#">
Это уже было в коде, который я унаследовал, но он никогда не работал. Я обнаружил, что проблема в источнике данных, а не в коде; не было принято принимать BLOB.