Java 如何使用iText将ByteArrayInputStream内容放入PDF?

Java 如何使用iText将ByteArrayInputStream内容放入PDF?,java,pdf,pdf-generation,itext,bytearrayoutputstream,Java,Pdf,Pdf Generation,Itext,Bytearrayoutputstream,我有以下情况,我有一种方法: ByteArrayInputStream fis = new ByteArrayInputStream(Bean.getValoreString("PDFmulti", "PDF").getBytes()); 如您所见,fisvarialbe是一个ByteArrayInputStream和Bean.getValoreString(“PDFmulti”,“PDF”).getBytes()返回一个字节[] 因此,现在我需要使用iText将fis对象的内容放入PDF 我

我有以下情况,我有一种方法:

ByteArrayInputStream fis = new ByteArrayInputStream(Bean.getValoreString("PDFmulti", "PDF").getBytes());
如您所见,fisvarialbe是一个ByteArrayInputStreamBean.getValoreString(“PDFmulti”,“PDF”).getBytes()返回一个字节[]

因此,现在我需要使用iText将fis对象的内容放入PDF

我能做些什么呢?我认为我必须阅读这个输入流,并将其内容放入一个ByteArrayOutputStream,类似这样:

public static byte[] readFully(InputStream stream) throws IOException
{
    byte[] buffer = new byte[8192];
    ByteArrayOutputStream baos = new ByteArrayOutputStream();

    int bytesRead;
    while ((bytesRead = stream.read(buffer)) != -1)
    {
        baos.write(buffer, 0, bytesRead);
    }
    return baos.toByteArray();
}

但是呢?

在对上一个问题的评论中,您说我必须连接所有PDF以创建单个PDF

这是你在新问题中遗漏的关键信息。如果我读了你的新问题,就好像你想将一个存在于
byte[]
中的PDF以其他形式持久化一样。例如:您希望将其存储为文件

如果是这样,那么你就不需要iText了!只需将字节写入
文件输出流

但是,现在我知道您需要连接文件,我知道您需要几个
PdfReader
实例,然后将这些
PdfReader
实例与
PdfCopy
(或
PdfSmartCopy
)结合使用,从一系列不同的PDF中创建单个PDF

这是一个完全不同的问题!在这种情况下,为什么要通过tearrayoutputstream创建
?有一个接受
InputStream
作为参数的。为什么不将
fis
传递给该构造函数