一尘不染

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

java

从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

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


阅读 352

收藏
2020-12-03

共1个答案

一尘不染

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

OutputStream out = new FileOutputStream("out.pdf");
out.write(bArray);
out.close();
2020-12-03