POS:获取一个网站直接打印到已定义的本地打印机

lxs*_*rks 3 php printing jquery local

我有一个运行票房服务的网站,它发行票证和报告.我试图弄清楚如何获得直接发送到本地/客户端PC上的指定打印机的票证(当前为PDF).

我已经关注了许多旧的/死的/无用的链接,并没有找到任何最新的解决方案,虽然许多诱人的希望闪烁.

场景是这样的:远程托管网站 - 连接了一个或多个用户 - 网页生成票证(PDF),它静默地发送到用户PC(而不是默认打印机)上的指定打印机(没有额外点击打印提示) ).

我知道PHP没有连接到客户端PC,但是有没有办法让网页(或许通过jQuery)连接到已安装的脚本/服务?

我认为本地PC上的脚本(建立可信链接,设置打印机使用等)将从Web服务器接收数据/文件,然后只要它在每台机器上的同一位置处理它.然后可以将此(本地)脚本添加到需要运行该服务的任何PC.工作需要由正在发送的文件触发,并且没有脚本/服务,每隔几秒钟就会轮询一个位置.

任何指针都将非常感激.

编辑:我已经尝试过jZebra java applet,但只是在打破之前打印了一次.有兴趣的话,如果有人真正让它工作(以及如何).

123*_*567 11

我最近自己遇到了同样的问题.谷歌浏览器具有所谓的"自助服务终端"模式.因此,它将打印而无需用户干预.

要执行此操作,请使用以下命令打开Goog​​le Chrome(您需要找到适用于*nix计算机的chrome可执行文件或chrome命令):

chrome.exe "http://www.example.com/mypage.php" --kiosk --kiosk-printing
Run Code Online (Sandbox Code Playgroud)

这将打开一个没有任何工具栏,地址栏,多功能框等的窗口.

接下来,您需要打印页面.为此,自动打开打印对话框(为了演示,我将使用简单的Javascript):

<script>
  window.print();
</script>
Run Code Online (Sandbox Code Playgroud)

你跳过你的开发环境之前,window.print()确实容许任何参数(即URL).

此代码打开一个打印对话框.但是,在信息亭模式下,将绕过打印对话框,页面将自动打印到默认打印机.

现在你提到了一个PDF,很有可能,你通过PHP生成它(如果你打印已发布/生成的文件),你可能会想"哦,我不能把HTML放在PDF中来执行javascript".你不需要!要解决打印正确页面的问题,请按以下步骤操作:

在登录/成功页面中,将以下内容插入用户发送到的HTML/PHP页面(对于此解决方案,用户无需访问.pdf)<head>:

<link rel="alternate" media="print" href="LINK TO PDF FILE">
Run Code Online (Sandbox Code Playgroud)

如果页面中包含上述代码window.print();,则执行时将打印上面指定的页面.如果您不在本地保存PDF,则可以将其放在临时目录中,该目录以基于时间或基于操作的计划清除(以某种方式超出此问题的范围),以防止磁盘空间累积.

请记住以下几点:

  • Kiosk模式没有退出按钮.要退出,请按ALT + F4.
  • 在自助服务终端模式下打印时,您需要两个--kiosk AND --kiosk-printing.打印参数需要--kiosk参数.
  • 在信息亭模式下打印时,打印对话框出现然后突然消失是正常的.没有高级窗口分层等等,就无法阻止它.

我确信其他浏览器具有类似的功能可以绕过打印对话框,但是,我发现Google Chrome在此类功能中效果最佳.如果您在Linux计算机上,Google有一个.deb文件,您可以使用该命令在Linux上安装Google Chrome sudo dpkg -i (package / downloaded .deb file path).Chromium - 可能 - 支持这种功能.据我所知,它应该.

如果您需要其他帮助,请在下面的评论中留下您的问题,我会尽快回复.

我希望我帮忙.如果我这样做,请随时给我左边的绿色支票.;)

  • 不要说谎这是我所见过的最具信息性的答案之一.我甚至从未听说过自助终端模式. (3认同)