【问题标题】:access clients printer on local network from a local server从本地服务器访问本地网络上的客户端打印机
【发布时间】:2015-11-26 07:41:56
【问题描述】:

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

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

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

PHP 工作正常,它只是打印数据然后停止,这样我就可以撕开收据。为什么使用 JavaScript 打印数据后打印机不会停止。

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

【问题讨论】:

  • 您如何使用 PHP 进行打印?

标签: javascript php


【解决方案1】:

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

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

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

用于从其他计算机打印;

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

【讨论】:

  • 没什么变化.. 还是一样的
  • 什么都没变???尝试创建JsFiddle 并在此处发送链接
【解决方案2】:

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

1- 读取数据

2- 打印在纸上

3- 决定出纸的长度

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

我尝试使用 window.print() 来执行此操作,因为我找不到有关“使用 php 从本地服务器打印到客户端打印机”的任何信息。

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

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

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

然后我遇到了冠军。火狐浏览器。 当我单击打印预览按钮时,它向我显示了数据适合所需的纸张的确切尺寸......我没想到的最重要的事情是当 Firefox 完成打印收据时它调用了剪切() 热敏打印机的功能,可裁切收据,以便轻松将收据从中取出。

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

感谢大家看我的问题。希望这对某人有帮助...

【讨论】:

    猜你喜欢
    • 2019-01-29
    • 1970-01-01
    • 2012-01-30
    • 2013-10-20
    • 1970-01-01
    • 2023-03-17
    • 2017-07-19
    • 2020-02-24
    • 2012-01-03
    相关资源
    最近更新 更多