У меня есть исходные данные base64Binary.
string base64BinaryStr = "J9JbWFnZ......"
Как я могу сделать PDF файл? Я знаю, что это требует некоторой конверсии. Пожалуйста, помогите мне.
У меня есть исходные данные base64Binary.
string base64BinaryStr = "J9JbWFnZ......"
Как я могу сделать PDF файл? Я знаю, что это требует некоторой конверсии. Пожалуйста, помогите мне.
Шаг 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();
using (FileStream stream = System.IO.File.Create("c:\\file.pdf"))
{
byte[] byteArray = Convert.FromBase64String(base64BinaryStr);
stream.Write(byteArray, 0, byteArray.Length);
}
base64BinaryStr - из сообщения веб-службы SOAP
byte[] bytes = Convert.FromBase64String(base64BinaryStr);
Все, что вам нужно сделать, - запустить его через любой декодер Base64, который будет принимать ваши данные в виде строки и передать массив байтов. Затем просто напишите этот файл с pdf в имени файла. Или, если вы передаете это обратно в браузер, просто напишите байты в выходной поток, отметив соответствующий тип mime в заголовках.
Большинство языков либо построили методы для преобразования в/из Base64. Или простой Google с вашим конкретным языком вернет многочисленные реализации, которые вы можете использовать. Процесс перехода назад и вперед в Base64 довольно прост и может быть реализован даже начинающими разработчиками.
Этот код не записывает файлы на жесткий диск.
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..."
Сначала преобразуйте строку Bas64 в байт [] и запишите ее в файл.
byte[] bytes = Convert.FromBase64String(base64BinaryStr);
File.WriteAllBytes(@"FolderPath\pdfFileName.pdf", bytes );