Hei, mam tę tablicę bajtów, którą chcę przekonwertować na pdf i udostępnić do pobrania. Ktoś ma pojęcie, jak to się robi?Jak przekonwertować pdf Byte [] Array na plik do pobrania przy użyciu iTextSharp
tutaj jest mój 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");
}
Jeśli masz plik pdf na dysku, możesz go odczytać bezpośrednio za pomocą FileStream. –
Nawet jeśli potrzebujesz PdfStamper wygląda na to, że masz wiele strumieni, nie powinieneś potrzebować pary "ms", strumień "stream" powinien wystarczyć, ale nie powinieneś go zamykać przed użyciem, możesz spróbować " ms.Seek (0, SeekOrigin.Begin); " przed dodaniem go do OutputStream. –
oh, zawsze mogłem czytać z lokalnego dysku, ale próbuję tylko symulować coś tutaj, gdzie mam tylko tablicę bajtów, a moja praca polega na przekonwertowaniu go do pliku do pobrania, nie wiem dokładnie jak to zrobić, hehe = p – Ari