自动打印页面,然后重定向到下一页

时间:2014-10-20 14:56:30

标签: asp.net-mvc

我正在更新一个旧的应用程序,并被要求更改旧的Print例程(通过javascript调用print命令,并打印出html),打印出pdf(理论是我们然后在所有打印机上更好地控制pdf /它的外观等。)

使用Rotativa库,我可以动态生成pdf,也可以生成文件。

执行某些阅读后,似乎无法从内存中流式传输pdf,必须先将其创建为文件,然后发送到浏览器,然后删除。)

我的控制器的最后一行是;

return File(@"D:\Development\Source\Workspaces\ConsumerCreditLicenseSystem\Code\ConsumerCreditSystem\CCLSystem\_Idd\1.pdf", "application/pdf");

我正在努力解决的问题是让该页面调用打印对话框。如果我用javascript将它发送到一个新的视图来执行此操作,那么我回到原点,因为页面是html而不是我的pdf。有什么方法可以标记我的pdf是用于打印,还是将它与一些html结合起来所以我可以拥有旧的忠实用户

window.print();

在文件中?

1 个答案:

答案 0 :(得分:0)

PDF不是网页;它是二进制文件。当您将PDF作为响应发送给用户时,您无法控制其结束时发生的情况。如果他们的浏览器能够在适当的位置查看PDF,它将显示它;否则,它会提示用户下载它。无论哪种方式,它都取决于用户是否想要打印它,也可以由他们回去或其他任何东西。此时您无法自动重定向用户。

稍微好一点的选择是将用户重定向到另一个页面,其中包含指向将PDF发送给他们的视图的链接。然后,您可以执行诸如强制下载PDF(因此未在同一选项卡/窗口中呈现,有效地将用户带离您的站点)或强制链接在新选项卡或窗口中打开的操作。但是,您仍然无法提示用户进行打印。