Coldfusion CFPDF считывает двоичный столбец базы данных

StackOverflow https://stackoverflow.com//questions/10690548

  •  12-12-2019
  •  | 
  •  

Вопрос

Может ли cfpdf напрямую считывать столбец двоичной базы данных?

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

Используйте cffile для записи файла в каталог

Затем прочитайте с помощью cfpdf, чтобы я мог извлечь текст.

Возможно ли это сделать без записи в cffile и чтения двоичного файла напрямую?

Если да, то не мог бы я привести пример.

Это было полезно?

Решение

Какую версию вы используете?Следующее сработало для меня с 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#">
.

Это уже было в коде, которое я унаследовал, но он никогда не работал.Я обнаружил, что проблема была источниками данных, а не код;Не было установлено, чтобы принимать капли.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top