发送MVC actionresult到打印机
本文关键字:打印机 actionresult MVC 发送 | 更新日期: 2023-09-27 18:15:53
我有一个带有动作的控制器:
SomeController/ActionToBePrinted
actiontobeprinting()返回一个html视图。
这个动作是在按下按钮时从一个普通的mvc razor视图调用的——当按下按钮时,我该如何将视图的内容发送到打印机呢?
迎宾,雨果
不能直接发送给打印机。
-
我建议你创建一个自定义的ActionResult,返回一个PDF文件或类似的东西。ASP。. NET MVC动作结果和PDF内容
-
你也可以显示一个html页面,并使用javascript打开打印对话框,像这样
<a href="javascript:window.print()">Click to Print This Page</A>
但是用户总是要启动打印过程,你不能通过编程来完成。
您可以执行GET请求(例如使用window.open()并传递URL或使用AJAX)并将返回的HTML内容放入新窗口。然后使用
Window.print()。然后,当您完成后,只需关闭窗口。
您可以通过在主体中添加一些内容将其直接绑定到单个视图中,但在这种情况下我更喜欢使用JavaScript。这使设计充当可跨多个视图使用的可重用对象或服务。换句话说,您设置了控制器模型,但没有设置视图。相反,JavaScript会以View的形式出现。
请记住HTML不是打印格式。因此,如果您需要控制布局,则应该使用PDF等打印技术。XSLT提供了一种使用相同数据创建HTML和PDF输出的极好方法,尽管创建XSLT模板要比删除window.print
就我个人而言,我有一个MVC页面作为一个接受URL参数的服务。页面与Adobe XSL-FO挂钩,并使用参数驱动输出。