如何使用 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 是一个 ByteArrayInputStream 和 Bean.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
传递给该构造函数?
我有以下情况,进入方法我有:
ByteArrayInputStream fis = new ByteArrayInputStream(Bean.getValoreString("PDFmulti", "PDF").getBytes());
如你所见,fis varialbe 是一个 ByteArrayInputStream 和 Bean.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
传递给该构造函数?