конвертировать base64Binary в pdf - PullRequest
11 голосов
/ 26 октября 2009

У меня есть необработанные данные base64Binary.

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

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

Ответы [ 6 ]

28 голосов
/ 26 октября 2009

Шаг 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();
13 голосов
/ 26 октября 2009
using (FileStream stream = System.IO.File.Create("c:\\file.pdf"))
{
    byte[] byteArray = Convert.FromBase64String(base64BinaryStr);
    stream.Write(byteArray, 0, byteArray.Length);
}
3 голосов
/ 17 августа 2010

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

byte[] bytes = Convert.FromBase64String(base64BinaryStr); 
2 голосов
/ 26 октября 2009

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

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

1 голос
/ 10 октября 2017

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

byte[] bytes = Convert.FromBase64String(base64BinaryStr); 
File.WriteAllBytes(@"FolderPath\pdfFileName.pdf", bytes );
1 голос
/ 20 декабря 2016

Я знаю, что этот вопрос отстает. Но, возможно, я могу помочь кому-нибудь с этим кодом.

Мне даже не нужно было записывать какие-либо файлы на жесткий диск. ; -)

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: "JVBERi0xLjMgCiXi48 / TIAoxI ..."

Удачного кодирования! ; -)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...