如何使用www.example.com c#在面板或iframe中打开.pdf文件asp.net

wn9m85ua  于 2022-11-19  发布在  .NET
关注(0)|答案(3)|浏览(180)

我试图打开一个.pdf文件的按钮点击。我想打开一个.pdf文件到一个面板或一些iframe。与以下代码我只能打开.pdf文件在一个单独的窗口或在另保存为模式。

string filepath = Server.MapPath("News.pdf");
    FileInfo file = new FileInfo(filepath);
    if (file.Exists)
    {
        Response.ClearContent();            
        Response.AddHeader("Content-Disposition", "inline; filename=" + file.Name); 
        Response.AddHeader("Content-Length", file.Length.ToString());            
        Response.ContentType = ReturnExtension(file.Extension.ToLower());            
        Response.TransmitFile(file.FullName);
        Response.End();
    }

如何将iframe分配到下面的行

Response.AddHeader("Content-Disposition", "inline; filename=" + file.Name);
tcomlyy6

tcomlyy61#

很抱歉,我不能直接回答您的问题(从未听说过使用响应头指定帧)。
如果您将iFrame的src设置为向客户端写入PDF的page/url,那么服务器只关心返回数据,客户端选择在哪里显示数据。

iyfamqjs

iyfamqjs2#

在.aspx网页中

<%@ Register Assembly="AjaxControlToolkit" Namespace="AjaxControlToolkit" TagPrefix="cc1" %>
<asp:LinkButton ID="lnkBtnPDFViewer" runat="server" OnClick="lnkBtnPDFViewer_Click" ToolTip="View PDF Document" CssClass="btn btn-white btn-sm"><span class="fa fa-file-pdf-o"></span></asp:LinkButton>
 <asp:Button ID="btnDocShow" runat="server" CssClass="hidden" />
        <!-- ModalPopupExtender -->
        <cc1:ModalPopupExtender ID="mpeDocViewer" runat="server" PopupControlID="pnlDocViewer" TargetControlID="btnDocShow"
            CancelControlID="btnDocClose" />
        <asp:Panel ID="pnlDocViewer" runat="server" CssClass="ibox" Style="display: none;">
            <div class="ibox-title">
                <h5>Employee Doc Viewer</h5>
                <div class="ibox-tools">
                    <a class="close-link">
                        <i id="btnDocClose" class="fa fa-times"></i>
                    </a>
                </div>
            </div>
            <div class="ibox-content">
                <iframe src="#" id="iframePDFViewer" width="800" height="500"  runat="server"></iframe>
            </div>
        </asp:Panel>

在各自的服务器端代码中

protected void lnkBtnPDFViewer_Click(object sender, EventArgs e)
    {
        string filePath = Request.Url.Scheme + "://" + Request.Url.Authority + myfile.pdf;
        iframePDFViewer.Src = filePath;
        mpeDocViewer.Show();
    }

这将使用iFrame在模式弹出窗口中打开PDF文件。
参考:Code Project: Asp .Net PDF Viewer

xoshrz7s

xoshrz7s3#

以下代码格式

private void ReadPdfFile()
{
    string path = @"D:\Hemanth\sample.pdf";
    WebClient client = new WebClient();
    Byte[] buffer = client.DownloadData(path);
    if (buffer != null)
    {
        Response.ContentType = "application/pdf";
        Response.AddHeader("content-length", buffer.Length.ToString());
        Response.BinaryWrite(buffer);
    }
}

相关问题