簡體   English   中英

如何使用itext將BLOB轉換為pdf或csv

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM