Imagem para PDF

0 respostas
I

Pessoal estava montando um arquivo PDF e estou precisando de uma função em java que receba a imagem que está armazenada no banco e converta ela para um formato que funcione no PDF…
Tentei convertendo para ASCII85, mas não sei se é o método que está incorreto ou se preciso fazer algo além disso…
Esse código que usei aí abaixo, pega a imagem do banco como um array de bytes e converte ASCII85, depois eu pego esse código e jogo no corpo de um arquivo PDF, só que a imagem está ficando completamente distorcida:
Se alguém souber o erro que estou cometendo ou souber uma forma melhor para fazer isso agradeço!

protected static final Variant ebfEncodesBLOBAsASCII85(Variant value) throws Exception {

byte[] bytes = ((byte[]) value.getObject());     
StringBuilder codigoASCII = new StringBuilder();      
    
  insereCaractere(codigoASCII,bytes);      

return VariantPool.get(codigoASCII.toString());

}

private static final void insereCaractere(StringBuilder codigoASCII,byte[] bytes) {

long[] power85 = {1,85,85*85,85*85*85,85*85*85*85}; 
int quantCaracteres=0;
int leftBytes = (bytes.length)%4;
byte b;    
long soma;
for (int i=0;i<bytes.length-leftBytes;i=i+4) {
  soma=0;
  for (int j=0; j<4;j++) {
    soma = (soma<<8)+(bytes[i+j]&(0x000000ffL));
  }

  if(soma==0L){ 
    if(++quantCaracteres == 80){
      quantCaracteres = 0;
      codigoASCII.append("\n"); 
    } 
    codigoASCII.append((char)122);
    continue;
  }
  for(int k=4;k>=0;k--){
    b = (byte)(soma/power85[k]);
    if(++quantCaracteres == 80){
      codigoASCII.append("\n");
      quantCaracteres = 0;
    } 
    codigoASCII.append((char)(b+33));
    soma -= b*power85[k];
  }
}

soma=0;

if (leftBytes!=0) {

for(int i=leftBytes-1;i>=0;i–)

soma = (soma<<8)+(bytes[bytes.length-(i+1)]&(0x000000ffL));
soma = soma<<8*(4-leftBytes);

    for(int k=4;k>=4-leftBytes;k--){
    b = (byte)(soma/power85[k]);
    codigoASCII.append((char)(b+33));
    soma -= b*power85[k];
    }
}

codigoASCII.append("~>");

}
Criado 4 de abril de 2007
Respostas 0
Participantes 1