发送MVC actionresult到打印机

Send MVC actionresult to printer

本文关键字:打印机 actionresult MVC 发送      更新时间:2023-09-26

我有一个带有动作的控制器:

SomeController/ActionToBePrinted

actiontobeprinting()返回一个html视图。

这个动作是在按下按钮时从一个普通的mvc razor视图调用的——当按下按钮时,我该如何将视图的内容发送到打印机呢?

迎宾,雨果

不能直接发送给打印机。

  1. 我建议你创建一个自定义的ActionResult,返回一个PDF文件或类似的东西。ASP。. NET MVC动作结果和PDF内容

  2. 你也可以显示一个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挂钩,并使用参数驱动输出。