【问题标题】:How to display PDF file bytes in a new tab or window如何在新选项卡或窗口中显示 PDF 文件字节
【发布时间】:2019-10-02 18:28:39
【问题描述】:

我有一个将 PDF 生成为字节数组的方法,我想在浏览器的新选项卡中显示这个字节数组(以 PDF 格式)。

这是一段代码

protected void BtnDisplayPdf_OnClick(object sender, EventArgs e)
{
    //...
    byte[] pdf = PdfManager.GeneratePdf(/*some inputs*/);
    //open the above bytes at a new tab as a PDF file
}

如何做到这一点?我想在不实际保存文件的情况下将其显示为 PDF!

【问题讨论】:

  • (如果您使用 MVC)创建一个返回 PDF(字节)的操作并在链接上调用该操作并在新选项卡中打开它。
  • 这是 MVC 吗?还是老式的asp.net?但最终它应该只是发送回具有正确内容类型(“应用程序/pdf”)和内容处置(“内联”)标头的字节的情况
  • 不,它是 asp.net 网络表单
  • 这可能会有所帮助:stackoverflow.com/a/43322319/5836671

标签: c# asp.net pdf webforms


【解决方案1】:

你可以试试这个

byte[] bin = File.ReadAllBytes(strPath);
Response.ClearHeaders();
Response.Clear();
Response.Buffer = true;
Response.ContentType = "application/pdf";
Response.AddHeader("content-length", bin.Length.ToString());
Response.AddHeader("content-disposition", "attachment;filename=\"GeneratedReport.pdf\"");
Response.OutputStream.Write(bin, 0, bin.Length);
Response.Flush();
HttpContext.Current.ApplicationInstance.CompleteRequest();

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-01-07
    • 1970-01-01
    • 2013-01-18
    • 1970-01-01
    相关资源
    最近更新 更多