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

问题描述 投票:0回答:2

我有一个网站,该网站提供售票服务,可以发行门票和报告。 我正在尝试弄清楚如何将票据(当前为 PDF)直接发送到本地/客户端 PC 上的指定打印机。

我跟踪了许多旧的/死的/无用的链接,但没有找到任何最新的解决方案,尽管有许多诱人的希望之光。

场景是这样的:远程托管网站 - 1 个或多个用户连接 - 网页生成票据 (PDF),该票据以静默方式发送到用户 PC 上的指定打印机(不是默认打印机)(无需额外点击打印)提示)。

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

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

任何指点将不胜感激。

编辑:我尝试过 jZebra java 小程序,但只打印了一次就损坏了。如果有人真正让它工作(以及如何工作),我很感兴趣。

php jquery printing local
2个回答
14
投票

我最近也遇到了完全相同的问题。 Google Chrome 具有所谓的“信息亭”模式。因此,无需用户干预即可打印。

为此,请使用以下命令打开 Google Chrome(您需要找到 chrome 可执行文件,或用于 *nix 机器的 chrome 命令):

chrome.exe "http://www.example.com/mypage.php" --kiosk --kiosk-printing

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

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

<script>
  window.print();
</script>

在跳转到开发环境之前,

window.print()
不允许允许任何参数(即 URL)。

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

现在您提到了 PDF,很可能您是通过 PHP 生成的(如果您要打印已发布/生成的文件),您可能会想“哦,好吧,我不能将 HTML 放入 PDF 中来执行 javascript”。 您不需要! 要解决打印正确页面的问题,方法如下:

将以下内容插入用户发送到的 HTML/PHP 页面(对于此解决方案,用户不需要访问 .pdf),在登陆/成功页面的

<head>
中:

<link rel="alternate" media="print" href="LINK TO PDF FILE">

如果您的页面中有上述代码,当您执行

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

请记住以下几点:

  • Kiosk 模式没有退出按钮。要退出,请按
    ALT + F4
  • 在自助服务终端模式下打印时,您需要
    --kiosk
    AND
    --kiosk-printing
    。打印参数 需要
    --kiosk
    参数。
  • 在 kiosk 模式下打印时,打印对话框出现然后突然消失是正常。如果没有高级窗口分层之类的东西,这是无法避免的。

我确信其他浏览器也有类似的功能来绕过打印对话框,但是,我发现 Google Chrome 在这种功能上效果最好。如果您使用的是 Linux 计算机,Google 有一个 .deb 文件,您可以使用命令

sudo dpkg -i (package / downloaded .deb file path)
在 Linux 上安装 Google Chrome。 Chromium 可能支持这种功能。据我所知,应该是这样

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

我希望我有所帮助。如果我这样做了,请随时在您左边给我一个绿色的勾号。 ;)


0
投票

对于仍在尝试执行此操作且上述选项不起作用的其他人:

还有另一种方法可以做到这一点,使用付费打印服务器程序,如 DirectBrowserPrint: 该程序运行一个小型打印服务器,并具有一个 JavaScript API,允许打印 PDF、JPG、GIF 和 PNG 文件/blob。 有关开发者信息,您可以查看此处

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.