2017-04-11 161 views
1

我試圖從iText庫生成的文件生成一個inputStream對象。這些文件中的第一個字節:從Itext生成inputStream pdf源

%PDF-1.4 
%âãÏÓ 
2 0 obj 
<</Length 1571/Filter/FlateDecode>>stream 
)©toÿqûºÒç¹Ð4)ÖÞ{Ñ$,·7?ÂDCþDÆü½ 
+0

你的問題是錯誤的。我糾正了它。你不是在創建「文本」。您正在創建PDF文件(或文檔)。你希望該文件的字節可以作爲'InputStream'使用,但是你並沒有告訴我們你是否在磁盤上創建了文件(在這種情況下,你可以簡單地創建一個'FileInputStream'),或者如果你創建了文件內存(在這種情況下,您有一個'ByteArrayOutputStream',您可以輕鬆地將其轉換爲'ByteArrayInputStream')。 –

回答

0

假設您創建PDF這樣的:

ByteArrayOutputStream out = new ByteArrayOutputStream(); 
Document document = new Document(); 
PdfWriter.getInstance(document, out); 
document.open(); 
document.add(new Paragraph("Hello World")); 
document.close(); 

在這種情況下,你可以將OutputStream轉換爲InputStream這樣的:

InputStream in = ByteArrayInputStream(out.toByteArray()); 

假設您創建了這樣的PDF文件:

FileOutputStream out = new FileOutputStream("my.pdf"); 
Document document = new Document(); 
PdfWriter.getInstance(document, out); 
document.open(); 
document.add(new Paragraph("Hello World")); 
document.close(); 

然後你就可以創建一個InputStream這樣的:

InputStream in = new FileInputStream("my.pdf");