从PHP/JAVASCRIPT无对话框打印原始数据

从PHP/JAVASCRIPT无对话框打印原始数据,php,javascript,printing,thermal-printer,Php,Javascript,Printing,Thermal Printer,我目前正在为一个客户端的PHP web应用程序添加功能。他们需要能够直接从php将一些原始数据打印到票证/热敏打印机上,php将从自助服务亭在互联网浏览器上运行 数据需要打印在本地信息亭的内置票据打印机上 从我的初步研究中,我了解到我必须使用javascript来执行此任务,并想知道是否有人知道任何方法或示例函数可以允许将字符串打印到指定的打印机/com端口,从而绕过打印机对话框 提前谢谢你的帮助 Alex不可能,至少如果没有一些额外的步骤 在不了解更多信息亭环境的情况下,您有三个主要选项: 1

我目前正在为一个客户端的PHP web应用程序添加功能。他们需要能够直接从php将一些原始数据打印到票证/热敏打印机上,php将从自助服务亭在互联网浏览器上运行

数据需要打印在本地信息亭的内置票据打印机上

从我的初步研究中,我了解到我必须使用javascript来执行此任务,并想知道是否有人知道任何方法或示例函数可以允许将字符串打印到指定的打印机/com端口,从而绕过打印机对话框

提前谢谢你的帮助


Alex不可能,至少如果没有一些额外的步骤

在不了解更多信息亭环境的情况下,您有三个主要选项:

1) 。在本地信息亭上安装Web服务。此Web服务将管理打印,并最终成为最可扩展的解决方案

2) 。为打印服务创建插件。这将更加丑陋,并将您永远绑定到单一浏览器解决方案


3) 。用自定义代码包装浏览器以允许外部调用。同样,这有点难看,但由于您正在运行一个信息亭,您可能会有某种自定义/可扩展的包装器。

不可能,至少不需要一些额外的步骤

在不了解更多信息亭环境的情况下,您有三个主要选项:

1) 。在本地信息亭上安装Web服务。此Web服务将管理打印,并最终成为最可扩展的解决方案

2) 。为打印服务创建插件。这将更加丑陋,并将您永远绑定到单一浏览器解决方案


3) 。用自定义代码包装浏览器以允许外部调用。同样,这有点难看,但由于您正在运行一个信息亭,您可能会有某种自定义/可扩展的包装器。

如果它必须是跨浏览器和独立于平台的,请立即停止并运行。没有办法,我的意思是Javascript无法访问有关打印机、页边距、纸张大小以及打印机中所有变量的信息。即使您的浏览器有某种快速打印按钮,使用默认设置和默认打印机打印,您也不知道纸张类型、墨水、页边距等,您可以在A4纸张上打印,或者在美国,使用我们的法定尺寸,8.5英寸X 11.5英寸

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

更多信息可用


编辑:如果你真的想让你的生活变得简单,告诉他们安装Firefox,并查看最简单的解决方案。另外,您考虑过VBScript吗?它有这个功能,我以前见过它。

如果它必须是跨浏览器和独立于平台的,请立即停止并运行。没有办法,我的意思是Javascript无法访问有关打印机、页边距、纸张大小以及打印机中所有变量的信息。即使您的浏览器有某种快速打印按钮,使用默认设置和默认打印机打印,您也不知道纸张类型、墨水、页边距等,您可以在A4纸张上打印,或者在美国,使用我们的法定尺寸,8.5英寸X 11.5英寸

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

更多信息可用


编辑:如果你真的想让你的生活变得简单,告诉他们安装Firefox,并查看最简单的解决方案。另外,您考虑过VBScript吗?它有这个功能,我以前见过。

这个插件需要在客户端安装Java,但在第一次安全提示后,它可以满足您的需要(适用于Linux、Mac、Windows、Solaris——任何可以运行Java桌面应用程序的设备)


此插件需要在客户端安装Java,但在第一次安全提示后,这将满足您的需要(适用于Linux、Mac、Windows、Solaris——任何可以运行Java桌面应用程序的设备)


在我开始之前,您使用什么internet浏览器和Windows版本?我这样问是因为浏览器对javascript的window.print()的解释不同,我相信您的解决方案必须是直接调用Windows API,或者修改浏览器的调用。理想情况下,它需要跨浏览器和平台独立,因为它将在多个信息亭系统上运行。举一个例子,让我们看看internet explorer 7和windows xp的单一解决方案,php代码在任何情况下都不会“在internet浏览器上运行”。php代码作为服务器的一部分运行,即使服务器恰好与浏览器运行在同一台机器上。您必须从php代码驱动打印,而不是浏览器。@Point+1。PHP绝对不是为了这个,PHP有打印机功能,但PHP不是在客户端计算机上运行的,只是在服务器上运行。好吧,@LostInTheCode,不清楚(现在仍然不清楚)信息亭是完全独立的还是它是否与远程web服务器通信。如果我这样做的话,我会强烈倾向于让kiosk运行一切(服务器和浏览器)