Eso no es hexadecimal, es base64, que no es lo mismo.
Y vamos, el contenido binario que obtienes al usar base64_decode() es el contenido binario que necesitas escribir en el archivo.
Es decir, si lo que recibes es el contenido binario del PDF solo basta con escribirlo a un archivo.
¿Se entiende?