如何强制网站打印

4
这可能听起来像一个奇怪的请求,但是......我有一个Web应用程序,它设置为定期收集数据并将其存储到数据库中。该应用程序旨在基本上始终保持打开状态,并且屏幕显示最新添加到数据库中的内容(通过使用ajax检查数据库并在有新内容时刷新页面)。每当向数据库添加内容时,我还需要创建一个打印输出。我目前有一个打印按钮,它强制打印对话框框出现并使用不同的样式表进行“打印视图”,但用户仍然需要按打印按钮,然后按打印对话框中的打印按钮。是否有一种完全自动化的方法,可以使网站将页面打印到默认打印机并跳过打印按钮和出现的对话框屏幕?编辑:我知道我可以使用window.print();使打印对话框出现...我想知道是否可以实际使页面无需人工输入而从打印机输出。根据帖子,似乎无法仅使用Web浏览器完成此操作。
5个回答

13

你可以编写一个带有Web浏览器控件的独立应用程序,并让它为你打印。但是,在常规浏览器中没有这样的方法 --- 想想这样做的影响。


3

打印功能由浏览器处理(因此每个浏览器都不同),可以通过JavaScript调用,但无法强制打印。

(以下是调用浏览器中打印方法的JavaScript代码)

<script language="Javascript1.2">
  <!--
  function printpage() {
  window.print();
  }
  //-->
</script>

1

你可以使用JS调出打印对话框,我认为是window.print(),你可以将其与ajax调用一起使用。关于自动点击,我不确定。


我有window.print()来获取对话框,只是不知道是否可以使其打印。 - Bill
我同意Jason的观点,一个应用程序会更好。 - Kyle Hudson

0
如其他人所指出的那样 - 在没有人类干预或宏控制鼠标的情况下,实际上不可能在 Web 浏览器对话框中完成打印任务。
与其让浏览器执行打印操作,我建议您让 AJAX 请求触发某个操作,将要打印的数据保存到文件中( wkhtmltopdf 是一个选项),并让您的 Web 服务器(可以是 Linux、OSX、Windows Server)监视一个文件夹并打印(然后删除)在该文件夹中出现的任何内容。在 OSX 中,您可以使用 Automator 轻松完成此操作。在 Linux 中,您可以编写一个 bash 脚本,每隔 X 分钟监视一次文件夹(通过 cron),并运行 lpr 程序将文件发送到打印机。至于 Windows... 嗯,我不知道您会做什么,但我记得在旧版本的 Windows 打印机属性中看到过像文件夹-作为-打印队列选项之类的东西,不过这可能只是我的臆想。

0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接