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

标签 java pdf pdf-generation itext bytearrayoutputstream

我有以下情况,改成我有的方法:

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/

相关文章:

java - 如何打印二维数组?

java - Web 应用程序审计跟踪

c# - 将两个或多个 Crystal Reports 合并为一个 PDF

pdf - phantomjs pdf 可点击超链接

python - 如何摆脱 SimpleDocTemplate() 中的间距。 Python。报告实验室

java - Java 中的特殊字符。您可以在此 printf 方法调用中使用单引号吗?

java - 如何在 JavaFX 中将一个简单的双矩阵绘制到 TableView 中?

javascript - "Access is Denied"在 IE 中从 blob URL 嵌入文件时

parsing - 如何在 Ubuntu 上的 PDF 文件中找到 n 个最常用的单词?

php - 哪一个是 PHP 的最佳 PDF-API?