2011-05-17 97 views
1

我目前正在为客户端的PHP Web应用程序添加功能。他们要求能够将一些原始数据直接从php打印到票据/热敏打印机,这些数据将通过自助服务亭在互联网浏览器上运行。原始数据不使用PHP/JAVASCRIPT对话框打印

数据需要打印在本地售货亭内的票据打印机上。

从我的初步研究我明白,我必须执行此任务使用JavaScript的任何客户端操作,并想知道是否有人知道任何方法或示例函数,将允许打印到指定的打印机/ COM端口的字符串会绕过打印机对话框?

预先感谢任何帮助

亚历

+0

在我进入之前,什么互联网浏览器和Windows版本?我问,因为JavaScript的窗口。由于浏览器对print()的解释不同,我相信你的解决方案必须是直接调用Windows API,或者修改浏览器所做的调用。 – LostInTheCode 2011-05-17 12:24:22

+0

理想情况下,它需要跨浏览器和平台独立,因为它将在多个信息亭系统上运行。为了举一个例子和单个解决方案,可以说Internet Explorer 7和Windows XP? – Alex 2011-05-17 12:25:50

+1

在任何情况下,php代码“在互联网浏览器上运行”。 php代码作为**服务器**的一部分运行,即使服务器碰巧与浏览器在同一台机器上运行。你将不得不从PHP代码驱动打印,而不是浏览器。 – Pointy 2011-05-17 12:27:41

回答

1

如果必须跨浏览器和平台独立,请立即停止并运行。没有办法,我的意思是没有办法让Javascript访问有关打印机,页边距,纸张大小和打印机中所有变量的信息。即使您的浏览器具有某种快速打印按钮,使用默认设置和默认打印机进行打印,您也不知道纸张类型,墨水和边距等,并且您可以使用A4纸或美国地区打印。 ,我们的法律规模,8.5“X 11.5”。

为了安全起见,浏览器不允许javascript访问由Windows API和打印机驱动程序提供给他们的这些信息。我所知道的最接近的可能性是在小型网络中,变量是已知的,并且使用Internet Explorer的JScript或ActiveX进行配置。除此之外,您唯一的其他简单选择是编写您自己的Web浏览器/插件/插件,或修改将在这些平台上运行的具有此内置功能的Web浏览器/插件/插件。

更多信息可用here

编辑:虽然如果你真的想让你的生活变得简单,告诉他们安装Firefox,并查看this article寻求最简单的解决方案。另外,你有没有考虑过VBScript?它有这种能力,我以前见过它。

+0

我很想看看你的观点,但首先看看你的Firefox文章看起来是一个快速的胜利! /我可能会调查VB路线并在这里发布结果,但我认为看其他评论我可能会更好地写一个新的Web服务打印。大的帮助,虽然这个Firefox的修复应该让我现在击中了截止日期!唷! – Alex 2011-05-17 12:45:32

+0

没问题。当你完成时,不要忘记提出答案并选择被接受的答案;) – LostInTheCode 2011-05-17 12:46:36

0

不可能的,至少在没有一些额外的步骤。

不知道更多有关亭的环境中,你有三个主要选项:

1)。在本地信息亭上安装Web服务。这个Web服务将管理打印并最终成为最具扩展性的解决方案。 2)。为打印服务创建一个插件。这将更加丑陋,并且真正将您与永久性的单一浏览器解决方案联系在一起。 3)。将浏览器封装在自定义代码中以允许外部呼叫。再次,有点丑陋,但是由于您运行的是自助服务终端,无论如何,您可能会拥有某种自定义/可扩展的包装。

+0

谢谢我认为web服务解决方案可能是一个长期的解决方案,但现在我会打火狐黑客路线只是为了快速修复,并获得功能的工作。感谢您的意见! – Alex 2011-05-17 12:46:54

5

这个插件需要Java安装的客户端,但第一个安全提示后,这会做你需要什么(可与在Linux,Mac,Windows中,的Solaris - 可以运行Java桌面应用程序的任何东西)

https://github.com/qzind/tray