1

页面将二进制数据(PDF)写入浏览器后,有没有办法关闭弹出窗口?

以下是详细信息:

每当我的网络应用程序需要打印时,它会将一些参数传递给一个弹出窗口,该窗口将显示打印选项。当用户单击“打印”按钮时,它将设置 iframe 的 src,该 iframe 将调用执行打印的页面。

我有 PDFConverter 将 URL / HTML 转换为 pdf 文件。在转换结束时,它将二进制文件写入浏览器。下面是一些代码:

response.AddHeader("Content-Type", "binary/octet-stream");
response.AddHeader("Content-Disposition",
"inline; filename=" + fileName + ".pdf; size=" + pdfBytes.Length.ToString());
response.Flush();
response.BinaryWrite(pdfBytes);
response.Flush();

完成后,我需要关闭弹出窗口。但是,在刷新响应后,您似乎无能为力。有任何想法吗?

提前致谢!

安吉拉

4

2 回答 2

0

您可以在父窗口中创建它,而不是iframe在弹出窗口中创建它。这样,一旦用户单击print按钮,您就可以安全地关闭弹出窗口,而不会中断打印过程。但是,与其经历创建可能被某些浏览器阻止的新弹出窗口的所有痛苦,我只需在主页中创建一些占位符,以便用户可以选择打印选项然后打印文档。

于 2009-12-04T18:20:01.227 回答
0

以防万一其他人遇到同样的问题。这是似乎对我有用的解决方案。

我使用jQuery Simple Modal来显示我的选项列表页面。在此页面上,我有一个每 1 秒运行一次的窗口计时器来检查服务器是否已完成打印作业。我为此使用ajax。工作完成后,我更新会话变量,对服务器的 ajax 调用将获取会话值并关闭弹出窗口。

于 2009-12-04T21:28:35.177 回答