To Open a PDF file in a new window in ASP.Net:
Html:
<asp:LinkButton ID="lnkView" runat="server" Text="View File" OnClick="View" CommandArgument="MyFileName"></asp:LinkButton>
(The CommandArgument holds the name of the file – easier ways to pass a filename across, but this is just one of them..)
On the page where the above button is:
protected void View(object sender, EventArgs e) { string url = string.Format("ViewPDF.aspx?fileName={0}.pdf", (sender as LinkButton).CommandArgument); //change name of aspx as required. string script = "<script type='text/javascript'>window.open('" + url + "')</script>"; this.ClientScript.RegisterStartupScript(this.GetType(), "script", script); }
Set up a blank aspx page (in the example above, I called it ViewPDF.aspx) and in the page_load:
protected void Page_Load(object sender, EventArgs e) { if (!this.IsPostBack) { string filePath = Server.MapPath("~/Reports/") + Request.QueryString["fileName"]; //change path as required this.Response.ContentType = "application/pdf"; this.Response.AppendHeader("Content-Disposition;", "attachment;filename=" + Request.QueryString["fileName"]); this.Response.WriteFile(filePath); this.Response.End(); } }
This is just sample that takes a PDF filename via querystring and writes the file to display. You can play with the client script to change window properties as required.