Enviar PDF Base64 y recibirlo


No convertir a String en ningun momento.

package net.pp.jm.varios;

import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.UnsupportedEncodingException;

import org.apache.commons.codec.binary.Base64;
import org.apache.commons.io.IOUtils;

import es.depontevedra.portales.portlets.facturae.util.ConstFacturae;

public class VariousTest {

	public static void main(String[] args) throws Exception {
		FileInputStream fis = new FileInputStream("c:\p.pdf");
		byte[] bb = IOUtils.toByteArray(fis);
		IOUtils.closeQuietly(fis);
		
		// lo envia el WS - el cliente lo recibe
		String fileB64 = Base64.encodeBase64String(bb);

		byte[] bb2 = Base64.decodeBase64(fileB64);
		
		FileOutputStream fos = new FileOutputStream("c:\p2_byte.pdf");
		IOUtils.write(bb2, fos);
		IOUtils.closeQuietly(fos);
	
		System.out.println("DONE");
	}
}

En mi caso tenia el problema que estaba recibiendo el Base64 y este habia sido codificado. Probando codificaciones di con la buena.

		String fileB64 = Base64.encodeBase64String(bb);
		byte[] utf8 = Base64.decodeBase64(fileB64);	
		byte[] latin1 = new String(utf8, "UTF-8").getBytes("ISO-8859-1");

		FileOutputStream fos = new FileOutputStream("c:\p2_byte.pdf");
		IOUtils.write(bb2, fos);
		IOUtils.closeQuietly(fos);
		System.out.println("DONE");
Enviar PDF Base64 y recibirlo