2010-03-03 5 views
5

"열기"또는 "저장"을 선택할 수있는 iTextSharp를 사용하여 PDF 문서를 메모리에 만들 수 있으며, 열면 브라우저 창이 열립니다.메모리에서 PDF 문서 열기

현재로서는 디스크에만 저장하고 있습니다.

편집 :

나는 그것을 sussed있어

확인. 나는 그 파일을 폴더에 쓰지 않으면 안되지 만 매번 덮어 씌우는 것만으로 일시적인 것이다. 여기 가치가 무엇인지에 대한 해결책은 다음과 같습니다

private void GeneratePDF() { 

    var doc1 = new Document(); 
    string path = Server.MapPath("~/pdfs/"); 
    string filepath = path + "Doc1.pdf"; 
    PdfWriter.GetInstance(doc1, new FileStream(filepath, FileMode.Create)); 

    doc1.Open(); 
    doc1.Add(new Paragraph("A new Document"));   
    doc1.Add(new Paragraph(DateTime.Now.ToString())); 

    doc1.Close(); 

    Response.Buffer = false; //transmitfile self buffers 
    Response.Clear(); 
    Response.ClearContent(); 
    Response.ClearHeaders(); 
    Response.ContentType = "application/pdf"; 
    Response.AddHeader("Content-Disposition", "attachment; filename=myPDF.pdf"); 
    Response.TransmitFile(filepath); 
    Response.End(); 

}

+0

솔루션을 답변으로 게시하고 수락 된 것으로 표시하는 것이 좋습니다. – dckuehn

답변

0

그런 다음, 임시 폴더에 저장 파일에 Process.Start를 호출해야합니다.

0

PDF를 열거 나 표시하려면 파일을 임시 폴더에 저장 한 후 acrobat activex 구성 요소를 사용할 수 있습니다. 이전 연구에서 PDF를 보여줄 자유로운 컨트롤을 찾을 수 없었습니다.

3

memorystream에 PDF를 저장하고 브라우저에 이렇게 작성할 수 있습니다.

protected void Page_Load(object sender, EventArgs e) 
{ 
    MemoryStream ms; 

    using (ms = new MemoryStream()) 
    { 
     PdfWriter writer = PdfWriter.GetInstance(myPdfDoc, ms); 

     Response.ContentType = "application/pdf"; 
     Response.OutputStream.Write(ms.GetBuffer(), 0, ms.GetBuffer().Length); 
     Response.OutputStream.Flush(); 
     Response.OutputStream.Close(); 

    } 
} 
+0

나는 이런 식으로 뭔가를 찾고 있었지만, 뭔가 빠져 있다고 생각합니다. 내용/유형을 설정해야합니까? – Dkong

+0

예, 편집을 참조하십시오. –