2009-04-13 48 views
1

我得到的數據(沃爾沃汽車的價格)我的xml或sql數據庫,我有「xyz.aspx」頁面。我如何在網絡瀏覽器中打開pdf。但我想了解我如何可以打開xyz.aspx或another.aspx數據PDF(從SQL數據表中的數據)......如何打開瀏覽器PDF格式的數據?

樣品:Volvos'prices pdf

+0

PDF在我的瀏覽器中打開了正常。 Adobe中的Chrome。 – 2009-04-13 18:59:39

回答

5

假設你有一個表像:

CREATE TABLE PDFTable (
    [PDFID] [bigint] IDENTITY (1, 1) NOT NULL , 
    [PDFFile] [varbinary(max)] 
) 

並且您將PDF文件以二進制格式存儲在此表中。你想你的PDF文件暴露給你的訪問者這樣的:

http://www.mysite.com/getpdf.aspx?pdfid=12

下面是從數據庫中讀取二進制PDF數據並寫入它的響應流的樣本:

// PageLoad event of your getpdf.aspx page : 
long pdfId= Convert.ToInt64(Request.QueryString["pdfid"]); 

using (var conn = new SqlConnection(connectionString)) 
{ 
    using (var command = new SqlCommand(
     "SELECT PDFFile FROM PDFTable WHERE PDFId = @PDFID", conn)) 
    { 
     command.Parameters.Add("@PDFID", SqlDbType.Int).Value = pdfId; 
     conn.Open(); 

     Response.ContentType = "application/pdf"; 
     Response.BinaryWrite((byte[]) command.ExecuteScalar()); 
    } 
} 

此頁面將導致您的客戶在他/她的瀏覽器中打開pdf。

+0

你能告訴我一些細節嗎?再次感謝... – Penguen 2009-04-13 19:45:44

0

有兩個步驟。

  1. 生成包含數據的pdf。
  2. 交付PDF瀏覽器

第1步:有提供PDF文件寫入許多圖書館。只需選擇一個。做自己的PDF生成可能不可行,因爲格式非常複雜。

對於第2步:將Content.Headers設置爲包含mime/pdf contentType,並使用BinaryWrite將pdf數據輸出到瀏覽器。

0

此外,您還需要通過設置內容類型標題來將您的MIME類型設置爲「application/pdf」。