Преобразовать base64Binary в pdf

У меня есть исходные данные base64Binary.

string base64BinaryStr = "J9JbWFnZ......"

Как я могу сделать PDF файл? Я знаю, что это требует некоторой конверсии. Пожалуйста, помогите мне.

Ответ 1

Шаг 1 преобразует вашу строку base64 в массив байтов:

byte[] bytes = Convert.FromBase64String(base64BinaryStr);

Шаг 2 сохраняет массив байтов на диск:

System.IO.FileStream stream = 
    new FileStream(@"C:\file.pdf", FileMode.CreateNew);
System.IO.BinaryWriter writer = 
    new BinaryWriter(stream);
writer.Write(bytes, 0, bytes.Length);
writer.Close();

Ответ 2

using (FileStream stream = System.IO.File.Create("c:\\file.pdf"))
{
    byte[] byteArray = Convert.FromBase64String(base64BinaryStr);
    stream.Write(byteArray, 0, byteArray.Length);
}

Ответ 3

base64BinaryStr - из сообщения веб-службы SOAP

byte[] bytes = Convert.FromBase64String(base64BinaryStr); 

Ответ 4

Все, что вам нужно сделать, - запустить его через любой декодер Base64, который будет принимать ваши данные в виде строки и передать массив байтов. Затем просто напишите этот файл с pdf в имени файла. Или, если вы передаете это обратно в браузер, просто напишите байты в выходной поток, отметив соответствующий тип mime в заголовках.

Большинство языков либо построили методы для преобразования в/из Base64. Или простой Google с вашим конкретным языком вернет многочисленные реализации, которые вы можете использовать. Процесс перехода назад и вперед в Base64 довольно прост и может быть реализован даже начинающими разработчиками.

Ответ 5

Этот код не записывает файлы на жесткий диск.

Response.AddHeader("Content-Type", "application/pdf");
Response.AddHeader("Content-Length", base64Result.Length.ToString());
Response.AddHeader("Content-Disposition", "inline;");
Response.AddHeader("Cache-Control", "private, max-age=0, must-revalidate");
Response.AddHeader("Pragma", "public");
Response.BinaryWrite(Convert.FromBase64String(base64Result));

Примечание: переменная base64Result содержит base64Result Base64: "JVBERi0xLjMgCiXi48/TIAoxI..."

Ответ 6

Сначала преобразуйте строку Bas64 в байт [] и запишите ее в файл.

byte[] bytes = Convert.FromBase64String(base64BinaryStr); 
File.WriteAllBytes(@"FolderPath\pdfFileName.pdf", bytes );