У меня есть исходные данные base64Binary.конвертировать base64Binary в pdf
string base64BinaryStr = "J9JbWFnZ......"
Как я могу сделать pdf-файл? Я знаю, что это требует некоторой конверсии. Пожалуйста, помогите мне.
У меня есть исходные данные base64Binary.конвертировать base64Binary в pdf
string base64BinaryStr = "J9JbWFnZ......"
Как я могу сделать pdf-файл? Я знаю, что это требует некоторой конверсии. Пожалуйста, помогите мне.
Все, что вам нужно сделать, это запустить его через любой декодер Base64, который возьмет ваши данные в виде строки и передаст массив байтов. Затем просто напишите этот файл с pdf в имени файла. Или, если вы передаете это обратно в браузер, просто напишите байты в выходной поток, отметив соответствующий тип mime в заголовках.
Большинство языков либо построили методы для преобразования в/из Base64. Или простой Google с вашим конкретным языком вернет многочисленные реализации, которые вы можете использовать. Процесс перехода туда и обратно на Base64 довольно прост и может быть реализован даже начинающими разработчиками.
Шаг 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();
Недопустимая длина для массива символов Base-64. в setp 1 –
@novicedeveloper: это обычно означает, что в вашей строке есть какой-то странный символ (ы), который делает его недопустимой строкой Base-64. У вас есть две двойные кавычки ('' '') в конце строки? – MusiGenesis
Или эта строка передается на страницу ASP.Net в querystring? – MusiGenesis
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);
Я знаю, что эта проблема задерживается. Но, возможно, я могу помочь кому-то с этим кодом.
Мне даже не пришлось записывать файлы на жесткий диск. ;-)
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' содержит Base64-String: "JVBERi0xLjMgCiXi48/TIAoxI ..."
Днем Coding! ;-)
ВНИМАНИЕ: мы должны были удалить эту строку в нашем коде: «код» Response.AddHeader («Content-Length», base64Result.Length.ToString()); 'code' Поскольку некоторые браузеры не смогли загрузить весь файл. После того, как мы стерли количество байт, все работало нормально. Позвольте браузерам самостоятельно выполнить расчет размера байта! ;-) –
Сначала преобразуйте строку Bas64 в байт [] и запишите ее в файл.
byte[] bytes = Convert.FromBase64String(base64BinaryStr);
File.WriteAllBytes(@"FolderPath\pdfFileName.pdf", bytes);
Какой язык вы используете? –
Являются ли необработанные данные графическими или графическими, или отображаются в таблице, или просто вставлять PDF в качестве необработанных данных? –
C# используется как развивающийся язык. –