我正在通过路由器和以太网电缆连接2台计算机来测试网站,其中一台PC的网站带有WAMP并充当服务器。
一切都很好并且有效,但有一个问题。我已经编写了PHP来通过热敏打印机打印最终收据,该打印机在通过USB连接热敏打印机的服务器计算机上打印时非常有效。 现在的问题是当作为客户端工作的第二台计算机访问网站时,它将如何通过USB连接到它的热敏打印机打印收据?服务器找不到连接到客户端的打印机。
当然,如果我想访问客户端的打印机,我认为JavaScript是最好的方法,但这有一个很大的缺陷。
当我使用window.open()
在新窗口中加载可打印内容,然后将数据写入其中。然后我打电话给window. print();
,它确实打印了内容,但它并没有停止。在收据上打印数据后,它一直将空的收据从打印机中推出,并且永不停止。
PHP工作正常,它只是打印数据然后停止,以便我可以撕掉收据。在使用JavaScript时打印数据后,为什么打印机停止运行。
请帮忙。这是唯一剩下的东西..
答案 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”。我真的很惊讶看到有很多关于打印的选项,这比我想在浏览器页面打印的收据中看到的要多。我可以直接设计收据的模板并保存。之后,当我打印收据时,它将打印在该模板中。
谢谢你们查看我的问题。希望这有助于某人...