我有一个MVC应用程序,目的是让用户单击“打印”,然后在随后的“打印”对话框中,验证目标打印机,份数等,然后单击“打印”。我正在渲染PDF文档并因此返回该文档:
return File(printJob.Bytes, "application/pdf");
这在浏览器中很好地显示了文档。在Chrome和Edge中,当用户单击“打印”时,他们将在“打印”对话框中获得页面的预览。因此,用户体验是他们单击“打印”,查看预览,单击“打印”,再次查看预览,然后单击“打印”。有谁知道是否可以渲染PDF文档而不在浏览器中显示它,而只是向用户显示打印对话框?
提前谢谢!
答案 0 :(得分:0)
从网站返回PDF时,浏览器将充当PDF查看器,而不是Web浏览器,因此您需要获取PDF才能请求打开打开的打印对话框,而不是网站。
您可以通过将文档javascript this.print(true)
添加到要生成的PDF中来实现。
您可以通过以下方法在Adobe Acrobat中进行测试:转到Javascript->编辑所有Javascript,然后将this.print(true)
粘贴到任何命名函数的顶部。
在Chrome上经过测试并可以在Chrome上运行,只要打开PDF,它就会显示“打印”对话框。
Acrobat Javascript参考是here,对打印功能的参考在第179页。