Ler PDF à partir de bytes

2 respostas
S

Olá pessoal estou com o seguinte problema:

Tenho um PDF gerado pelo Jasper Reports e gravado no banco como um array de bytes e quando o usuário necessita imprimi-lo precisso pegá-lo do banco e imprimir no JasperViewer.

O trecho de código eh o seguinte:

InputStream bays = new ByteArrayInputStream(auto.getArquivo());

JasperPrint print = (JasperPrint) JRLoader.loadObject(bays) ; //Erro

JasperViewer viewer = new JasperViewer(print, false);

viewer.setVisible(true);

No ponto que esta marcado com a palavra Erro, dá o seuinte erro:

java.io.StreamCorruptedException: invalid stream header

Error loading object from InputStream

Alguem sabe o que pode ser isso?

2 Respostas

G

Será que na linha:

InputStream bays = new ByteArrayInputStream(auto.getArquivo());

auto.getArquivo() não está retornando nulo?

S

Está retornando corretamente, o problema eh que o stream tem um fluxo de bytes cujo cabeçalho eh de um Pdf e o metodo JRLoader.loadObject(bays) não reconhece esse cabeçalho.

Vc sabe se existe algum metodo que receba um stream cujo o tipo do cabeçalho e um Pdf??

“gconcon”:
Será que na linha:

InputStream bays = new ByteArrayInputStream(auto.getArquivo());

auto.getArquivo() não está retornando nulo?

Criado 21 de novembro de 2006
Ultima resposta 22 de nov. de 2006
Respostas 2
Participantes 2