我有一个InputStream。我正在尝试读取InputStream并使用iText将其写入pdf文件。
我尝试了以下方法:
FileOutputStream fileout = new FileOutputStream(file);
Document document = new Document();
PdfWriter.getInstance(document, fileout);
InputStream is=null;
is = myInfo.getInputStream();
String result = IOUtils.toString(is, "UTF-8");
Paragraph paragraph=new Paragraph();
paragraph.add(result);
document.add(paragraph);
is.close();
document.close();
这里的输出文件包含了很多不需要的字符,一些XML标记等。输出的pdf文件中转储了很多不可读的内容。
我可以使用以下代码将其写入pdf文件:
OutputStream ostream = new FileOutputStream("c:\\test\\newfile1.pdf");
byte[] data = new byte[4096];
int r = 0;
while((r = is.read(data, 0, data.length)) != -1)
{
ostream.write(data, 0, r);
}
ostream.flush();
ostream.close();
上面的代码可帮助我将输入流写入pdf文件。但是我想对itext做同样的事情。
我是第一次使用iText,但对如何正确使用它感到困惑。有人可以帮我吗?谢谢。
解决方案:
我将输入流更改为bytearraay。
PdfReader pdfreader;
pdfreader = new PdfReader(myInfo.getByteArray());
PdfStamper pdfStamper = new PdfStamper(pdfreader, fileout);
pdfStamper.close();
pdfreader.close();
通过这种方式,我能够读取输入团队并使用itext写入pdf。谢谢大家。