cfpdf可以直接讀取二進制數據庫列嗎?Coldfusion CFPDF讀取二進制數據庫列
我現在有它在哪裏運行查詢來獲得列。
使用CFFILE將文件寫入到一個目錄
然後用cfpdf讀,所以我可以extracttext。
有沒有可能做到這一點,而不是直接讀寫二進制文件?
如果是這樣,我可以得到一個例子。
cfpdf可以直接讀取二進制數據庫列嗎?Coldfusion CFPDF讀取二進制數據庫列
我現在有它在哪裏運行查詢來獲得列。
使用CFFILE將文件寫入到一個目錄
然後用cfpdf讀,所以我可以extracttext。
有沒有可能做到這一點,而不是直接讀寫二進制文件?
如果是這樣,我可以得到一個例子。
什麼版本您使用的?以下爲我工作與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#">
編輯:要澄清一下,當您使用queryName.columnName
「源」 cfpdf抱怨。我懷疑cfpdf將其視爲查詢列對象,而不是自動獲取查詢第一行中的值,即queryName.columnName[ 1 ]
。解決方法是創建對其的引用,並使用其他變量。
我不是100%肯定,但你應該能夠做這樣的事情:
<cfset myPDF = binaryEncode(binaryData,'base64')>
<cfpdf action="read" source="myPDF" name="PDFObj">
另一個想法是使用cffile將它寫入RAM磁盤。這將提供更好的性能並消除寫入磁盤。 http://help.adobe.com/en_US/ColdFusion/9.0/Developing/WSe9cbe5cf462523a0-70e2363b121825b20e7-8000.html –
喜歡Ram磁盤的想法。 –
我能夠在內存中使用Josh提供的鏈接中的示例工作。僅供參考,文檔說cfpdf不受支持。雖然,這正是我所用的,它似乎工作。 ***謹慎點。如果你沒有從RAM中刪除你的文件,你最終可能會吃掉你分配的所有空間並強制崩潰 –
我發現了一個簡單的方法來做到這一點:
<cfheader name="Content-Disposition" value="inline; filename=test.pdf">
<cfcontent type="application/pdf" variable="#qGetFile.uploaded_file#">
這已經在我繼承了代碼,但它從來沒有工作。我發現問題是數據源而不是代碼;它沒有被設置爲接受BLOB。
好問題...我也想知道。 –