如何使用iText读取InputStream并将其写入pdf文件?

时间:2018-08-20 16:19:33

标签: java pdf stream itext itext7

我有一个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。谢谢大家。

0 个答案:

没有答案