直接从php5 / javascript webapp打印

时间:2015-02-02 14:04:29

标签: javascript php ajax printing

我一直在搜索每一个地方,阅读大量仅适用于php4的过时帖子,所以我很抱歉,如果你一眼就认为这是一个复制问题。

我开发了一个webapp,我需要用户能够直接打印到打印机而无需打开新页面,或显示默认的浏览器窗口。

在其他方面,我希望能够从我的webapp模仿本机打印功能。

据我所知,php5是一种服务器端语言,因此可能无法使用php与用户打印机交互,所以我的问题是。

有没有可以公开打印机列表的软件/小代码?

示例我的客户端将在他的计算机上安装/运行的小软件,此应用程序将收听帖子X.

javascript可以使用$.ajax调用来调用此应用,例如 获取请求:显示可用打印机列表。 POST REQUEST :将带有pdf,img,html,文本或任何格式(我可以使用php格式化应用程序所需的数据)数据和应用程序将直接打印在用户默认打印机/特定打印机在邮件请求中说明

此类软件的一个示例由ubiq, an amazing data visualization tool that let you install there small app, which allows their webapp to interact with your mysql server by ajax requests实现。

所以我想要同样的东西,但对于打印机而不是mysql服务器:)。

它存在吗?如果没有什么是编写这样的迷你服务器的好语言?在哪里开始?

非常感谢

2 个答案:

答案 0 :(得分:0)

许多惠普打印机支持ePrint服务,因此您可以将文件通过电子邮件发送到打印机,并且无需通过操作系统或操作系统打印机驱动程序即可进行打印。它可以接受HTML,DOC,PDF,XLS,JPG以及其他一些格式。

我们构建了用户提供其打印机电子邮件地址的网络应用程序。然后我们生成PDF,并将PDF通过电子邮件发送到他们的打印机。

谷歌还提供CloudPrint,它确实为您提供了打印机的RESTful界面,但我不清楚如何识别打印机以及用户如何告诉应用程序打印机的端点是什么。

(免责声明:我为HP工作,但我与那些使用ePrint或打印机的人无关。)

答案 1 :(得分:0)

由于它们位于本地网络上,但不在Internet上,因此可以使用端口9100,这是默认网络端口。

这里有一些关于直接写作的信息:http://danieru.com/2013/06/06/what-is-port-9100-how-to-print-to-it/

更简单的方法是在Linux机箱(可能是服务器)上配置CUPS,这样您就可以获得打印机的本地代表,然后可以通过网络将打印作业发送到打印机。 / p>

另外,我认为HP打印机支持端口631上的Internet打印协议:
http://www.frankworsley.com/blog/2011/1/23/printing-directly-to-a-network-printer

大约15年前,我参与了一个项目,该项目将在后脚本中接收网络打印作业(允许整个组织使用HP Postscript 5通用驱动程序),接受任何打印机名称的作业......但打印机name将是目标打印机的IP地址。然后我们通过端口9100查询以找到模型,使用Ghostscript将postscript呈现为该模型的相应打印机语言,然后发送超过9100.因此可以做相当复杂和动态的东西虽然现在15年后,我不记得确切的细节。