Hola, gracias por el comentario. Al final lo consegui codificando directamente a base64, Dejo el código por si le sirve a alguien en un futuro:
import java.io.OutputStream;
import java.io.Writer;
import sun.misc.BASE64Encoder;
import sun.misc.BASE64Decoder;
String rutaDocumento = "C:" + File.separator;
String DocumentoBase64;
InputStream entrada = null;
ByteArrayOutputStream bos = new ByteArrayOutputStream();
BASE64Encoder encoder = new BASE64Encoder ();
BASE64Decoder decoder = new BASE64Decoder ();
byte[ ] almacenamiento = new byte[4 * 1024]; // 4K buffer
int bytesLeidos;
byte[] byteshtml;
is = new BufferedInputStream(new FileInputStream (new File(rutaDocumento + "prueba.html")));
while ((bytesLeidos = entrada.read(almacenamiento)) != -1) {
bos.write(almacenamiento, 0, bytesLeidos);
}
byteshtml = bos.toByteArray();
//Obtenemos un string con el fichero en base64.
DocumentoBase64 = encoder.encodeBuffer(byteshtml);
entrada.close( );
bos.close();
Saludos.