2012-05-05 10 views
2

ASP.NetでiTextSharpを使用して作成したPDFファイルを開くには?私はサーバーに保存したくないですが、直接新しいPDFが生成されると、それはブラウザに表示されます。それは可能ですか?iTextSharpはPDFを生成してブラウザに直接表示します

ここには、私が意味するものの例があります:Click here。しかし、この例では、ファイルが直接ダウンロードされています。

どうすればいいですか?

Dim doc1 = New Document() 

    'use a variable to let my code fit across the page... 
    Dim path As String = Server.MapPath("PDFs") 
    PdfWriter.GetInstance(doc1, New FileStream(path & "/Doc1.pdf", FileMode.Create)) 

    doc1.Open() 
    doc1.Add(New Paragraph("My first PDF")) 
    doc1.Close() 

上記のコードは、PDFをサーバーに保存します。

ありがとうございます!あなたがResponse objectContent Typeを設定し、あなたが読んで表示するSystem.IO.MemoryStreamを使用することができますheader

private void ReadPdfFile() 
    { 
     string path = @"C:\Somefile.pdf"; 
     WebClient client = new WebClient(); 
     Byte[] buffer = client.DownloadData(path); 

     if (buffer != null) 
     { 
      Response.ContentType = "application/pdf"; 
      Response.AddHeader("content-length",buffer.Length.ToString()); 
      Response.BinaryWrite(buffer); 
     } 

    } 

(または)でpdfbinaryフォームを追加する必要があります:)

答えて

4

以下のコードで解決された問題:

HttpContext.Current.Response.ContentType = "application/pdf" 
    HttpContext.Current.Response.AddHeader("content-disposition", "attachment;filename=GridViewExport.pdf") 
    HttpContext.Current.Response.Cache.SetCacheability(HttpCacheability.NoCache) 

    Dim pdfDoc As New Document() 
    PdfWriter.GetInstance(pdfDoc, HttpContext.Current.Response.OutputStream) 

    pdfDoc.Open() 
    'WRITE PDF <<<<<< 

    pdfDoc.Add(New Paragraph("My first PDF")) 

    'END WRITE PDF >>>>> 
    pdfDoc.Close() 

    HttpContext.Current.Response.Write(pdfDoc) 
    HttpContext.Current.Response.End() 

希望のヘルプ! :)

+0

@ mrjimoy.how新しいタブで開く...同じタブで現在開いているので、ウェブページが置き換えられて、bakに行くことはできません... – Sivajith

関連する問題