当前位置: 首页 > 面试题库 >

Java:需要从字节数组创建PDF

贺宏逸
2023-03-14
问题内容

从DB2表中,我有一个Blob,我正在将其转换为字节数组,以便可以使用它。我需要采取字节数组并创建PDF它。

这就是我所拥有的:

static void byteArrayToFile(byte[] bArray) {  
    try {  
        // Create file  
        FileWriter fstream = new FileWriter("out.pdf");  
        BufferedWriter out = new BufferedWriter(fstream);  
        for (Byte b: bArray) {  
            out.write(b);  
        }  
        out.close();  
    } catch (Exception e) {  
        System.err.println("Error: " + e.getMessage());  
    }  
}

但是PDF它创建的是不正确的,它上面有一束黑线。

实际上,PDF通过使用基本上相同的过程编写Web应用程序,我能够创建正确的代码。Web应用程序和有关代码的主要区别在于以下这一行:

response.setContentType("application/pdf");

所以我知道字节数组是一个PDF并且可以完成,但是我的代码byteArrayToFile不会创建clean PDF

关于如何使它起作用的任何想法?


问题答案:

通过a发送输出FileWriter会损坏它,因为数据是字节,而FileWriters是用于写入字符。所有你需要的是:

OutputStream out = new FileOutputStream("out.pdf");
out.write(bArray);
out.close();


 类似资料:
  • 问题内容: 所以-我有一个需要a 作为输入的第三方库。我有一个。 我不想将字节写入磁盘..我想将其保留在内存中。我如何从提供的内容创建一个想法(无需写入磁盘)? 问题答案: 抱歉,不可能。除非您具有RAM磁盘,否则File本质上是磁盘上的实体-但这不是您可以用Java创建的东西。 这正是API不应该基于File对象(或过载以接受InputStream)的原因。

  • Java你必须做new ZipFile(new File("xxx.zip"));才能解压缩一个zip文件。 现在我得到一个字节数组,它的内容是一个zip文件。我从数据库而不是文件中获取这个字节数组。我想解压这个“字节数组文件”,但字节数组或字符串没有ZipFile构造函数(我指的是内容,而不是文件路径)。 有什么解决方案吗?(当然我不想将此字节数组写入实际文件并再次将其读入内存。) 谢谢

  • 问题内容: 通过这种方式获得字节数组- 现在我如何从字节数组重建此灰度图像? 我对ARGB,RGB或灰度图像了解不多。我试过了- 当我绘制此图像时,它不是黑白的,而是橙色和灰色的东西。 问题答案: 如果我向您解释如何从ARGB / RGB 2灰度转换,希望对您有所帮助,因为它有太多未知的函数和类:P ARGB为32位/像素,因此每个通道为8位。Alpha通道是不透明度,因此与透明度相反,因此0是透

  • 问题内容: 我有一个像这样初始化的数组: 我想将此数组转换为ArrayList 问题答案:

  • 问题内容: 我在PostgreSQL中有一个表,其中包含: 是类型,它包含具有正确顺序的该行的父记录列表。 家长:然后再 如何编写一个查询,该查询对于任何给定的ID都会生成其父母姓名的字符串? 例如: :。 :。 :。 编辑: 如果可能的话,我希望请求的ID总是会出现。 :。 :。 :。 :。 问题答案: 您可以结合使用诸如generate_subscripts和array之类的多项操作来获得结果

  • 我有一个映射,它的文件名是< code>String格式的< code>key,内容是< code>bytearray (byte[])格式的< code>value。 我想将map中的所有条目压缩到一个tar文件中,并将tar文件转换成< code>bytearray,而不将任何内容保存到磁盘上。 到目前为止,我正在temp目录中创建tar文件,并再次将tar文件读取为byteArray。 但是