gpt4 book ai didi

c# - 以 PDF 格式生成 Crystal 报告...如何在新选项卡或页面中打开?

转载 作者:太空狗 更新时间:2023-10-29 17:51:02 26 4
gpt4 key购买 nike

我编写了一个代码来生成 PDF 格式的 Crystal Reports 报告...但是它在用户的同一页面中打开进行了搜索并单击了按钮...有任何方法可以在新的文件中打开 PDF选项卡或页面?

我的代码是:

private void OpenPDF()
{
ReportDocument Rel = new ReportDocument();
Rel.Load(Server.MapPath("../Reports/Test.rpt"));
BinaryReader stream = new BinaryReader(Rel.ExportToStream(CrystalDecisions.Shared.ExportFormatType.PortableDocFormat));
Response.ClearContent();
Response.ClearHeaders();
Response.ContentType = "application/pdf";
Response.BinaryWrite(stream.ReadBytes(Convert.ToInt32(stream.BaseStream.Length)));
Response.Flush();
Response.Close();
}

感谢您的帮助!

最佳答案

在最简单的解释中,要打开一个新窗口或选项卡,页面的超链接应该将 target 属性设置为 "_blank"

<a href="GeneratePDF.aspx" target="_blank">Link to open PDF in new window</a>

或者您可以创建一些 Javascript 来代替打开一个新窗口。确保在页面的某处调用 Javascript 函数。

<script type="text/javascript">
function loadPDF() {
window.open('GeneratePDF.aspx','','scrollbars=no,menubar=no,height=600,width=800,resizable=yes,toolbar=no,location=no,status=no');
}
</script>

或者此代码将通知网络浏览器该文件是下载文件(而不是要在浏览器窗口内查看的页面)。我认为这是最好的方法,因为用户可以选择打开或保存 PDF。所以这并不能满足您的要求,但您可能认为它更好。

private void OpenPDF(string downloadAsFilename)
{
ReportDocument Rel = new ReportDocument();
Rel.Load(Server.MapPath("../Reports/Test.rpt"));
BinaryReader stream = new BinaryReader(Rel.ExportToStream(CrystalDecisions.Shared.ExportFormatType.PortableDocFormat));
Response.ClearContent();
Response.ClearHeaders();
Response.ContentType = "application/pdf";
Response.AddHeader("content-disposition", "attachment; filename=" + downloadAsFilename);
Response.AddHeader("content-length", stream.BaseStream.Length.ToString());
Response.BinaryWrite(stream.ReadBytes(Convert.ToInt32(stream.BaseStream.Length)));
Response.Flush();
Response.Close();
}

关于c# - 以 PDF 格式生成 Crystal 报告...如何在新选项卡或页面中打开?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9180418/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com