2017-04-11 123 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");