如何以浏览器PDF格式打开数据?

时间:2009-04-13 18:53:45

标签: c# .net asp.net

我得到数据(沃尔沃汽车的价格)我的xml或sql数据库,我有“xyz.aspx”页面。如何在Web浏览器中打开pdf。但我想学习如何打开pdf(sql datatable中的数据)xyz.aspx或another.aspx中的数据......

示例:Volvos'prices pdf

3 个答案:

答案 0 :(得分: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。

答案 1 :(得分:0)

这有两个步骤。

  1. 制作包含数据的pdf。
  2. 将pdf发送到浏览器
  3. 对于第1步:有许多可用于pdf编写的库。选择一个。做自己的PDF生成可能不可行,因为格式非常复杂。

    对于第2步:将Content.Headers设置为包含mime / pdf contentType,并使用BinaryWrite将pdf数据输出到浏览器。

答案 2 :(得分:0)

您还需要通过设置内容类型标题将mime类型设置为“application / pdf”。