从本地服务器访问本地网络上的客户端打印机


access clients printer on local network from a local server

我正在通过路由器和以太网电缆连接两台计算机来测试一个网站,其中一台计算机的网站带有WAMP,并充当服务器。

一切都很好,工作正常,但有一个问题。我已经编写了PHP,通过热敏打印机打印最终收据,当在服务器计算机上打印时,热敏打印机通过USB连接,效果非常好
现在的问题是,当作为客户的第二台计算机访问网站时,它将如何通过USB连接的热敏打印机打印收据?服务器找不到连接到客户端的打印机。

当然,如果我想访问客户端的打印机,我认为JavaScript是最好的方法,但这有一个很大的缺陷
当我使用window.open()在新窗口中加载可打印内容,然后向其写入数据时。然后我调用window. print();,它会打印内容,但不会停止。在收据上打印数据后,它不断地将空收据推出打印机,从未停止。

PHP运行良好,它只是打印数据,然后停止,这样我就可以撕下收据。为什么在使用JavaScript打印数据后打印机不停止。

请帮忙。这是唯一剩下的东西。。

空白页的答案
该问题可能是由于在打印页面之前关闭窗口,导致页面的内存被释放,从而导致打印为空白。

您可以按如下方式关闭窗口;

<script type="text/javascript">
window.print();
window.onfocus=function(){ window.close();}
</script>

用于从其他计算机打印

您可以与客户端共享您的打印机,并将其设为默认打印机
无提示打印请参阅此答案

好的,我找到了解决方案。热敏打印机有四个基本功能

1-读取数据

2-在纸上打印

3-决定出来的纸张长度

4-打印完成后进行裁切。

我试着用window.print()来做这件事,因为我找不到任何关于"用php从本地服务器打印到客户端的打印机"的信息。

与谷歌铬这里是发生了什么

点击打印预览按钮后,它向我显示了缩小到几乎看不到的数据。更具体地说,数据看起来像一条粗黑线,其余的是一个几乎无限滚动的白色长页。按下打印按钮后,打印机开始打印,直到竞争的那卷纸完成,它才停止打印。这篇论文的开头包含了实际数据,而整篇大篇幅论文的其余部分都是空白的白色。。

使用Internet Explorer,它甚至比谷歌chrome更糟糕,因为即使在卷完成后,它也不断要求新的卷纸来打印更多的白色空页。。。

然后我遇到了冠军。MOZILLA FIREFOX。当我点击打印预览按钮时,它向我显示了数据所需的纸张的确切尺寸……最重要的是,我没有想到的是,当firefox打印完收据时,它调用了热敏打印机的cut()功能来剪切收据,这样就可以很容易地从中取出收据。

然后我在Firefox的搜索栏中输入about:config,然后搜索"print"。看到这么多关于打印的选项,我真的很惊讶,这比我想在浏览器页面打印的收据中看到的要多。我可以直接设计收据的模板并保存它。之后,当我打印收据时,它将打印在模板内。

谢谢大家看我的问题。希望这能帮助到别人。。。