在新标签中打开PDF C#

时间:2014-02-24 17:40:24

标签: c# jquery pdf itextsharp

当我在网上显示PDF文件时,我想在新标签页中打开它。 但是没有单击只在新选项卡中打开文件的功能。 这是我的显示功能:

private void DisplayPage()
    {        
        string path = CanvasWritingStepImages._pdfName;
        WebClient client = new WebClient();
        Byte[] buffer = client.DownloadData(path);

        if (buffer != null)
        {
            Response.ContentType = "application/pdf";
            Response.AddHeader("Content-Disposition", "inline; filename=Formulike.pdf");
            Response.AddHeader("content-length", buffer.Length.ToString());
            Response.BinaryWrite(buffer);
        }
        else
        {
            logger.Error("Buffer was Null!");
            throw new Exception("PDF ERROR");
        }
    }

我正在使用“iTextSharp”来处理PDF文件。 重要的是PDF文件将在新选项卡上打开,而不会仅通过该功能单击。 我刚发现按钮点击打开一个新标签。

我试过这个: How to open PDF file in a new tab or window instead of downloading it (using asp.net)?

1 个答案:

答案 0 :(得分:0)

我有一个非常相似的问题...请参阅我的问题here

将您的pdf创建代码放在新页面的form load事件中。然后使用下面的代码在新标签页中打开该页面。

string url = "myPDFpage.aspx";
string openWindowScript = string.Format("window.open({0}, '_blank');", url);         
ScriptManager.RegisterStartupScript(this.Page, this.GetType(), Guid.NewGuid().ToString(), openWindowScript, true);         

如果您没有使用ScriptManager,则可以使用以下内容替换最后一行:

Page.ClientScript.RegisterStartupScript(this.GetType(), Guid.NewGuid().ToString(), openWindowScript, true);

如果您的pdf需要创建变量,请将它们传递给查询字符串或将它们存储在会话变量中,以便新页面可以访问它们。

新的标签/窗口将被屏蔽,除非用户允许您的网站弹出窗口或关闭其阻止程序。