这听起来像是一个奇怪的请求,但是......我有一个Web应用程序,它被设置为收集数据并定期将其存储到数据库中。该应用程序旨在基本上保持打开状态,并且屏幕显示最近添加到数据库中的内容(通过使用ajax检查数据库并在有新内容时刷新页面)。每当有东西被添加到数据库中时,我还需要创建打印输出。我目前有一个打印按钮,强制打印对话框出现并使用不同的样式表作为“打印视图”,但用户仍然需要按下打印按钮,然后在出现的对话框中按打印。有没有办法将流程完全自动化到站点将页面打印到默认打印机并绕过打印按钮和出现的对话屏幕?
编辑:我知道我可以做window.print();使打印对话框出现......我问我是否可以在没有人工输入的情况下将页面从打印机中取出。基于帖子,似乎只能通过Web浏览器来完成。
答案 0 :(得分:10)
您可以编写一个具有Web浏览器控件的单独应用程序,并让它为您执行打印。但是,在常规浏览器中无法做到这一点 - 想想它的含义。
答案 1 :(得分:3)
打印功能由浏览器处理(因此每个浏览器是唯一的),可以调用(通过javascript),但不能强制打印
(这是在浏览器中调用print方法的javascript)
<script language="Javascript1.2">
<!--
function printpage() {
window.print();
}
//-->
</script>
答案 2 :(得分:0)
你可以使用JS打开打印对话框,我认为它的window.print()可以放在你的ajax调用中。关于自动点击我不确定。
答案 3 :(得分:0)
How do I create a web based print server?
有一个类似的问题我们选择创建本机打印客户端。有关详细信息,请参阅http://mdornseif.github.com/2011/01/08/PDF-on-appengine.html。
答案 4 :(得分:0)
正如其他人所指出的那样 - 实际上不可能在没有人工干预的网页浏览器对话框窗口中完成打印任务或用宏来控制鼠标。
我没有让浏览器进行打印,而是建议你让你的ajax请求触发一些东西来保存要打印到文件中的数据(wkhtmltopdf是一个选项)并拥有你的web服务器(可以是Linux,OSX,Windows Server)监视文件夹并打印(然后删除)该文件夹中出现的任何内容。在OSX中,您可以使用Automator轻松完成此操作。在Linux中,您可以编写一个bash脚本,每隔X分钟(通过cron)监视该文件夹,并运行lpr
程序将文件发送到打印机。在Windows上...好吧,我不知道你要做什么,但我记得在打印机的属性中看到旧版Windows中的文件夹作为打印队列选项。不过,我可以做到这一点。