【问题标题】:How to force a website to print如何强制网站打印
【发布时间】:2011-05-06 20:56:42
【问题描述】:

这听起来像是一个奇怪的请求,但是……我有一个 Web 应用程序,它设置为收集数据并将其定期存储到数据库中。该应用程序设计为基本上始终保持打开状态,屏幕显示最近添加到数据库中的内容(通过使用 ajax 检查数据库并在有新内容时刷新页面)。每当将某些内容添加到数据库中时,我还需要创建一个打印输出。我目前有一个打印按钮,它强制打印对话框出现并使用不同的样式表进行“打印视图”,但用户仍然需要按下打印按钮,然后在出现的对话框中按下打印.有没有办法完全自动化网站将页面打印到默认打印机并绕过打印按钮和出现的对话屏幕的过程?

编辑:我知道我可以做 window.print();让打印对话框出现......我在问我是否真的可以在没有人工输入的情况下从打印机中打印出一个页面。根据帖子,似乎仅使用网络浏览器无法完成。

【问题讨论】:

    标签: javascript jquery html css printing


    【解决方案1】:

    正如其他人所指出的那样,在没有人工干预或控制鼠标的宏的情况下,实际上不可能在 Web 浏览器对话窗口中完成打印任务。

    我建议您不要让浏览器进行打印,而是让您的 ajax 请求触发一些东西,将要打印的数据保存到文件中(wkhtmltopdf 是一种选择)并让您的 Web 服务器(可能是 Linux 、OSX、Windows Server)监视文件夹并打印(然后删除)该文件夹中出现的任何内容。在 OSX 中,您可以使用 Automator 轻松完成此操作。在 Linux 中,您可以编写一个 bash 脚本,每 X 分钟监视一次文件夹(通过 cron)并运行 lpr 程序将文件发送到打印机。在 Windows 上......好吧,我不知道你会做什么,但我确实记得在打印机的属性中看到旧版本的 Windows 中的文件夹作为打印队列选项。不过,我可以弥补。

    【讨论】:

      【解决方案2】:

      How do I create a web based print server?也有类似的问题

      我们选择创建本机打印客户端。详情请见http://mdornseif.github.com/2011/01/08/PDF-on-appengine.html

      【讨论】:

        【解决方案3】:

        打印功能由浏览器处理(因此每个浏览器都是唯一的),可以调用(通过 javascript),但不能强制打印

        (这里是在浏览器中调用打印方法的javascript)

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

        【讨论】:

          【解决方案4】:

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

          【讨论】:

          • 我有window.print()来获取对话框,只是不知道能不能打印出来
          • 我同意 Jason,一个应用程序会更好
          【解决方案5】:

          您可以编写一个具有网络浏览器控件的单独应用程序,并让它为您打印。但是,在常规浏览器中无法做到这一点 --- 考虑一下它的含义。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2019-08-07
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多