我有一个显示pdf文件的函数。我用的是最新的ie浏览器。我试着在两台电脑上做。在一个浏览器中,它要求通过pdf阅读器打开,而另一个浏览器打开选项卡并显示一个空页面。我试过很多在互联网上找到的代码,甚至在stackoverflow。但一切都如我所愿。在这里我添加了我的代码。请看一看。
链接按钮点击事件
protected void pdfViewLOP_Click(object sender, EventArgs e)
{
Response.Write(string.Format("<script>window.open('{0}','_blank');</script>", "viewPDF.aspx"));
}
新页面中应该显示PDF的代码
protected void Page_Load(object sender, EventArgs e)
{
try
{
string name = Session["name"].ToString();
string FilePath = Server.MapPath("~/filesPDF/" + name);
WebClient client = new WebClient();
Byte[] buffer = client.DownloadData(FilePath);
if (buffer != null)
{
Response.Clear();
Response.ContentType = "application/pdf";
Response.AddHeader("content-length", buffer.Length.ToString());
Response.BinaryWrite(buffer);
}
}
catch (Exception ex)
{
WebMsgBox.Show(ex.Message);
}
}
这可能是由于客户端机器的设置,特别是Adobe首选项。
在使用web浏览器时更改默认的PDF打开行为:
选择编辑→偏好
从左侧的列表中选择Internet类别
若要在浏览器中显示PDF,请选中"在浏览器中显示"
若要在Acrobat中直接从网页打开pdf文件,请取消选中"在浏览器中显示:
参见这篇文章和这篇文章。
还要注意:要在浏览器中显示PDF,您的缓存控制头必须允许浏览器创建PDF的临时副本。如果你设置缓存提示来防止缓存(例如,如果你的应用程序包含敏感页面),你最好让用户下载PDF并离线查看。