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.

Другие вопросы по тегам