[英]How to convert textarea input to pdf using itext and make it downloadable
[英]How to convert a BLOB to pdf or csv using itext
我的目標是在用戶單擊pdf或xls鏈接時顯示適當的文件。 pdf或xlsfile的內容作為blob存儲在表中。 存儲過程將文件ID作為輸入參數,並返回Blob作為輸出。 我希望能夠顯示該文件,但不確定如何處理。 在做一些閱讀時,看起來我可以使用它。 有沒有一種使用itext將blob轉換為pdf(或xls)的方法。 這可能嗎? 我找不到使用blob數據類型的任何示例。
Apache Commons IO庫中的IOUtils
類具有方法copy
,該方法copy
會將所有字節從InputStream
復制到OutputStream
。 參見Javadoc 。
因此,一旦有了Blob和HTTP響應,就可以編寫
OutputStream httpOutputStream = httpResponse.getOutputStream();
InputStream blobInputStream = theBlob.getBinaryStream();
IOUtils.copy(blobInputStream, httpOutputStream);
blobInputStream.close();
httpOutputStream.close();
復制數據。 或者,您可能希望將兩個close()
調用放在finally
塊中。
如果您尚未使用Apache Commons,請不要忘記下載jar並將其添加到類路徑中。
(由於聲譽低下,無法評論David解決方案)
如果BLOB記錄上的內容是PDF二進制數據,則實際上您不需要對iText做任何事情。
如果您不是以前將BLOB保存到磁盤上並且只是想顯示(根據您的描述),則可以在HTTP響應中設置內容類型,以指示瀏覽器如何處理它:
response.setContentType("application/pdf"); // for PDF
response.setContentType("application/vnd.ms-excel"); // For BIFF .xls files
response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"); // For Excel2007 and above .xlsx files
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.