web-dev-qa-db-fra.com

Comment convertir un tableau d'octets [] pdf en fichier téléchargeable à l'aide d'iTextSharp

Hé les gars, j'ai ce tableau d'octets que je veux convertir en pdf et le rendre disponible en téléchargement. Quelqu'un a une idée de comment cela se fait?

voici mon Action Controller

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");

 }
18
Ari

J'utilise un code similaire avec quelques différences:

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();
  1. Appelez Reponse.Clear () plus tôt.
  2. Utilisez MemoryStream.WriteTo pour écrire dans Response.OutputStream.

Edit: désolé, je n'ai pas vu que vous utilisez ASP.NET MVC, le code ci-dessus est dans une page aspx WebForms.

Pour ASP.NET MVC, ne pourriez-vous pas simplement faire

return new FileStreamResult(ms, "application/pdf");

?

28
Andreas Paulsson