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

How to put the ByteArrayInputStream content into a PDF using iText?

我有以下情况,进入方法我有:

ByteArrayInputStream fis = new ByteArrayInputStream(Bean.getValoreString("PDFmulti", "PDF").getBytes());

如你所见,fis varialbe 是一个 ByteArrayInputStreamBean.getValoreString("PDFmulti", "PDF").getBytes() returns 一 byte[]

所以现在我需要使用 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!只需将字节写入 FileOutputStream!

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

这是一个完全不同的问题!既然如此,你为什么要创建一个 ByteArrayOutputStream?有一个 PdfReader contructor 接受 InputStream 作为参数。为什么不将 fis 传递给该构造函数?