我有以下情况,改成我有的方法:
ByteArrayInputStream fis = new ByteArrayInputStream(Bean.getValoreString("PDFmulti", "PDF").getBytes());
如您所见,fis varialbe 是一个ByteArrayInputStream,并且Bean.getValoreString("PDFmulti", "PDF").getBytes() 返回一个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();
}
但是然后呢?
最佳答案
在对您上一个问题的评论中https://stackoverflow.com/questions/28342714/how-to-convert-a-string-object-representing-a-pdf-into-a-bytearrayinputstream-th ,您说我必须连接所有 PDF 以创建一个 PDF。
这是您在新问题中忽略的重要信息。如果我读到你的新问题,就好像你想以其他形式保留存在于 byte[]
中的 PDF。例如:您想将其存储为文件。
如果是这样的话,那么您就不需要 iText!只需将字节写入 FileOutputStream
!
但是,现在我知道您需要连接文件,我知道您需要多个 PdfReader
实例,然后将这些 PdfReader
实例与 PdfCopy
(或 PdfSmartCopy
)结合使用,从一系列不同的 PDF 中创建一个 PDF。
这是一个完全不同的问题!在这种情况下,为什么要创建 ByteArrayOutputStream ?有一个PdfReader
contructor接受 InputStream
作为参数。为什么不将 fis
传递给该构造函数?
关于java - 如何使用 iText 将 ByteArrayInputStream 内容放入 PDF 中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28346422/