Pregunta

¿Puede cfpdf leer una columna de base de datos binaria directamente?

Actualmente lo tengo donde ejecuto una consulta para obtener la columna.

Utilice cffile para escribir el archivo en un directorio

Luego lea con cfpdf para poder extraer el texto.

¿Es posible hacer esto sin que el cffile escriba y lea el archivo binario directamente?

Si es así, ¿podría darme un ejemplo?

¿Fue útil?

Solución

Qué versión estás usando?Lo siguiente funcionó para mí con CF9/MS SQL (columna 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 aclarar, cfpdf se queja cuando usas queryName.columnName como "fuente".Sospecho que cfpdf lo ve como una columna de consulta. objeto en lugar de tomar automáticamente el valor en la primera fila de la consulta, es decir queryName.columnName[ 1 ].La solución es crear una referencia a él y utilizar la otra variable en su lugar.

Otros consejos

No estoy seguro, pero debería poder hacer algo como esto:

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

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

Encontré una forma sencilla de hacer esto:

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

Esto ya estaba en el código hereditado, pero nunca estaba funcionando.Encontré que el problema era el DataSource y no el código;No estaba configurado para aceptar blobs.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top