Pergunta

O cfpdf pode ler uma coluna binária do banco de dados diretamente?

Atualmente tenho onde executo uma consulta para obter a coluna.

Use cffile para gravar o arquivo em um diretório

Então leia com cfpdf para que eu possa extrair o texto.

É possível fazer isso sem o cffile gravar e ler o arquivo binário diretamente?

Se sim, poderia dar um exemplo?

Foi útil?

Solução

Qual versão você está usando?O seguinte funcionou para mim com CF9/MS SQL (coluna 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#">

Editar: Para esclarecer, o cfpdf reclama quando você usa queryName.columnName como a "fonte".Suspeito que o cfpdf o veja como uma coluna de consulta objeto em vez de capturar automaticamente o valor na primeira linha da consulta, ou seja queryName.columnName[ 1 ].A solução alternativa é criar uma referência para ela e usar a outra variável.

Outras dicas

Não tenho 100% de certeza, mas você deve conseguir fazer algo assim:

<cfset myPDF = binaryEncode(binaryData,'base64')>

<cfpdf action="read" source="myPDF" name="PDFObj">

Encontrei uma maneira simples de fazer isso:

<cfheader name="Content-Disposition" value="inline; filename=test.pdf">
<cfcontent type="application/pdf" variable="#qGetFile.uploaded_file#">

Isso já estava no código que herdei, mas nunca funcionou.Descobri que o problema era a fonte de dados e não o código;não foi configurado para aceitar BLOBs.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top