2015-11-10 65 views
0

我想使用iTextSharp生成pdf文件,然後我想在對象標籤中顯示此文件。 這裏我的代碼來生成PDF:生成臨時pdf並將其顯示在對象標籤中

Document pdfDoc = new Document(PageSize.A4, 10f, 10f, 10f, 0f); 

    PdfWriter.GetInstance(pdfDoc, Response.OutputStream);  

    pdfDoc.Open(); 

    Paragraph Title = new Paragraph("New Paragraph"); 
    pdfDoc.Add(Title); 

    pdfDoc.Close(); 

    Response.ContentType = "application/pdf"; 

    Response.AddHeader("content-disposition", "attachment;" + 

            "filename=sample.pdf"); 

    Response.Cache.SetCacheability(HttpCacheability.NoCache); 

    Response.Write(pdfDoc); 

    Response.End(); 

但此代碼生成一個PDF文件,並顯示其拯救我不想/開誠佈公的對話。我希望它被生成,然後顯示在對象標籤沒有對話,並沒有保存在我的文件夾。

+1

你可以嘗試改變「content-disposition」中的「attachment」爲「內聯」? – Markus

+1

有一個類似的問題,我在這裏回答了幾年前,但我找不到它。它的要點是,當一個客戶發送一個HTTP請求時,服務器被允許發送一個且只有一個響應。您可以發送PDF,也可以發送包含''標籤的HTML,但無法發送這兩個標籤(儘管您可以嘗試使用數據URI)。所以這是你需要解決的問題。你可以做一些Ajax魔術,或者你可以創建一個生成PDF的HTTP端點,並以某種方式指向你的對象標籤。 –

回答

1

相關線上如下:

Response.AddHeader("content-disposition", "attachment;filename=sample.pdf"); 

通過設置content-disposition附件,您可以指定瀏覽器應該需要一些用戶交互(見本link的詳細信息和其他可能的值)。

如果將值更改爲在線,瀏覽器應該顯示的元素,你的願望:

Response.AddHeader("content-disposition", "inline;filename=sample.pdf"); 
相關問題