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

时间:2015-11-26 07:41:56

标签: javascript php

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

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

当然,如果我想访问客户端的打印机,我认为JavaScript是最好的方法,但这有一个很大的缺陷。
当我使用window.open()在新窗口中加载可打印内容,然后将数据写入其中。然后我打电话给window. print();,它确实打印了内容,但它并没有停止。在收据上打印数据后,它一直将空的收据从打印机中推出,并且永不停止。

PHP工作正常,它只是打印数据然后停止,以便我可以撕掉收据。在使用JavaScript时打印数据后,为什么打印机停止运行。

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

2 个答案:

答案 0 :(得分:1)

回答空白页;
在打印页面之前关闭窗口可能会导致问题,导致页面内存被释放并导致打印空白。

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

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

用于从其他计算机打印;

您可以与客户共享打印机并将其设为默认值 对于静音打印See this answer

答案 1 :(得分:0)

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

1-阅读数据

2-将其打印在纸上

3-决定出纸的长度

4-打印完成后剪切纸张。

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

使用谷歌浏览器这里发生了什么

点击打印预览按钮后,它显示数据缩小到几乎不可见的水平。更具体地说,数据看起来像一条粗黑线,其余的是一个长白页,几乎无限滚动。 在按下打印按钮后,打印机开始打印并且从未停止打印,直到完成竞争的纸卷。论文的头部包含了实际数据,而整张纸的其余部分都是空白的。

使用Internet Explorer它甚至比谷歌浏览器更差,因为即使在完成滚动后它仍然要求新的纸卷打印更多的白色空页...

然后我遇到了冠军。火狐浏览器。 当我点击打印预览按钮时,它向我显示了数据所需的纸张的确切尺寸...而且我没想到的最重要的事情是当firefox完成打印收据时它调用了剪切()热敏打印机的功能是切割收据,以便收据可以很容易地从中取出。

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

谢谢你们查看我的问题。希望这有助于某人...