Как преобразовать PDF Byte [] Массив в загружаемый файл с помощью iTextSharp
Привет, ребята, у меня есть этот массив байтов, который я хочу преобразовать в pdf и сделать его доступным для загрузки. Кто-нибудь знает, как это делается?
вот мой контроллер действий
public ActionResult DownloadLabTestResult(string labTestResultID)
{
PdfReader pdfReader = new PdfReader("Xue_Tang.pdf");
MemoryStream stream = new MemoryStream();
PdfStamper stamper = new PdfStamper(pdfReader, stream);
pdfReader.Close();
stamper.Close();
stream.Flush();
stream.Close();
byte[] pdfByte = stream.ToArray();
// So i got the byte array of the original pdf at this point. Now how do i convert this
// byte array to a downloadable pdf? i tried the method below but to no avail.
MemoryStream ms = new MemoryStream(pdfByte);
Response.ContentType = "application/pdf";
Response.AddHeader("content-disposition", "attachment;filename=labtest.pdf");
Response.Buffer = true;
Response.Clear();
Response.OutputStream.Write(ms.GetBuffer(), 0, ms.GetBuffer().Length);
Response.OutputStream.Flush();
Response.End();
return new FileStreamResult(Response.OutputStream, "application/pdf");
}
Ответы
Ответ 1
Я использую аналогичный код с несколькими отличиями:
Response.Clear();
MemoryStream ms = new MemoryStream(pdfByte);
Response.ContentType = "application/pdf";
Response.AddHeader("content-disposition", "attachment;filename=labtest.pdf");
Response.Buffer = true;
ms.WriteTo(Response.OutputStream);
Response.End();
- Call Reponse.Clear() ранее.
- Используйте MemoryStream.WriteTo для записи в Response.OutputStream.
Изменить: извините, я не видел, что вы используете ASP.NET MVC, приведенный выше код находится на странице aspx WebForms.
Для ASP.NET MVC вы не могли бы просто сделать
return new FileStreamResult(ms, "application/pdf");
?