Guardar PDF desde base64

Hola.

He visto en este foro ejemplos de cómo codificar un fichero PDF en base 64.

Mi problema es el contrario, recibo un PDF codificado en base64 y no consigo guardarlo correctamente en un fichero PDF.

No sé si el problema viene al hacer toLatin1String() o al escribir el fichero (su codificación), el caso es que el PDF guardado no funciona, me inclino a pensar que al pasarlo a Latin ya lo he descogorciado.

Si lo hago desde php con base64_decode no hay problema, el pdf se abre perfectamente.

¿A algún gurú del vByteArray se le ocurre como solucionarlo?

Adjunto ejemplo del pdf.

Gracias por adelantado.

Perdón.

Conforme lo he escrito he vsito que VFile tiene write( vByteArray)

Lo he probado y funciona perfectamente.

Por si a alguien le sirve:

// ENTRADA: BASE64: Textod del fichero en base 64
//          FICHERO: Senda del fichero de salida
// RETORNO  RESULT: 0 No creado, 1 creado

importClass("VByteArray");
importClass("VFile");

var cBase64 = theRoot.varToString( "BASE64" );
var fichero = theRoot.varToString( "FICHERO" );

var oTexto = new VByteArray();
oTexto.setText(cBase64);

var oByteArray = new VByteArray();
oByteArray.fromBase64(oTexto);

var fi = new VFile( fichero );
if ( fi.open( VFile.OpenModeWriteOnly | VFile.OpenModeTruncate) )
{
	fi.setBufferSize( oByteArray.length )
	fi.write( oByteArray );
        fi.close();
	result=1;
} else {
	result=0;
}

theRoot.setVar("RESULT",result);
1 me gusta

Hola Infortic, tengo una consulta, existe la posibilidad de que antes de guardar el documento se le pueda colocar una contraseña al mismo?.