Сегодня у меня есть рабочая реализация создания одного PdfDocument (пакет nuget Select.Pdf) и возврата его клиенту в виде вложения без сохранения его на диск с помощью MemoryStream. Однако я хотел бы создать несколько PdfDocument и заархивировать их в виде zip-файла, а затем вернуть их клиенту, также не сохраняя ничего на диск.
Это рабочая реализация, которую я имею сегодня, возвращая один PDF-файл.
PdfDocument doc1 = new PdfDocument();
using (MemoryStream memoryStream = new MemoryStream())
{
doc1.Save(memoryStream);
string base64String = System.Convert.ToBase64String(memoryStream.GetBuffer());
var returnValue = new HttpResponseMessage(HttpStatusCode.OK)
{
Content = new StringContent(base64String)
};
returnValue.Content.Headers.ContentDisposition = new System.Net.Http.Headers.ContentDispositionHeaderValue("attachment")
{
FileName = "generatedfile.pdf"
};
returnValue.Content.Headers.ContentType = new MediaTypeHeaderValue("application/octet-stream");
returnValue.Headers.Add("Access-Control-Expose-Headers", "Content-Disposition");
var response = ResponseMessage(returnValue);
doc1.Close();
return response;
}