Итак, это ваш текущий код:
byte[] PDFDecoded = Convert.FromBase64String(base64BinaryStr);
string FileName = (@"C:\Users\Downloads\PDF " + DateTime.Now.ToString("dd-MM-yyyy-hh-mm"));
BinaryWriter writer = new BinaryWriter(File.Create(FileName + ".pdf"));
writer.Write(PDFDecoded);
На самом деле вам не нужно BinaryWriter
для этого. File.Create
уже дает вам FileStream
:
FileStream writer = File.Create(FileName + ".pdf");
writer.Write(PDFDecoded, 0, PDFDecoded.Length);
Но это все равно будет иметь проблему, с которой вы столкнулись, потому что вы не сбрасываете в нее данные. Нам также нужно закрыть файл. К счастью, мы можем обернуть его в using
, и он будет делать для нас оба:
using (FileStream writer = File.Create(FileName + ".pdf"))
{
writer.Write(PDFDecoded, 0, PDFDecoded.Length);
}
Но более простой способ сделать это:
File.WriteAllBytes(FileName + ".pdf", PDFDecoded);
Что касается PDF -> Image, вам, вероятно, придется посмотреть, есть ли доступная библиотека для этого (поиск "PDF to Image NuGet"), которая может помочь вам в этом, поскольку я не думаю, что есть что-то встроенное.