我正在SenchaTouch中创建一个应用程序。此外,我将使用PHONEGAP部署ios,android和blackberry。在应用程序中,我需要打印一些细节,如收据。我不知道如何制作应与上述平台兼容的打印功能。
我也需要获取打印机列表。
感谢。
答案 0 :(得分:2)
我不能代表Android或Blackberry,但iOS应用可以打印到两种类型的打印机:
注意:使用AirPrint时,您无需担心可用打印机列表。向用户显示一个对话框,其中包含其网络上所有可用AirPrint打印机的列表。您的printjob将被发送到他们选择的任何打印机。
答案 1 :(得分:1)
基本算法是以编程方式实例化iframe
,用内容填充它,然后调用其打印方法,如下所示:
// create print frame
var pFrame = Ext.get('printerFrame');
if (!pFrame) {
Ext.getBody().insertHtml("beforeEnd","<iframe id='printerFrame' style='display:none'> </iframe>");
pFrame = Ext.get('printerFrame');
}
var contentWindow = pFrame.dom.contentWindow;
contentWindow.document.body.innerHTML = 'This is some html';
contentWindow.print();
调用print()
方法启动iOS打印机选择器,使您可以打印到任何AirPrint打印机。这种技术也适用于Ext JS 4。
答案 2 :(得分:0)
首先,您应该知道iOS仅支持选择HP打印机的空气打印。其次,我甚至不确定黑莓能做到这一点,但我可能错了。
您需要做的是编写手机密码以与iOS,Android的实施本地空气打印代码以及BlackBerry进行交互。
答案 3 :(得分:0)
它可能不适用于您的特定环境,但如果您可以付出努力,此解决方案将起作用:
在接受打印请求的Web服务上设置要打印的数据。然后编写一个小型Windows / Linux / OSX程序,轮询您的Web服务以获取新的打印作业。如果程序找到新的打印请求,它会将其发送到正确的打印机。这可以写成服务,也可以作为计划任务运行。
现在,当您需要从移动应用程序打印时,它可以对您的Web服务进行ajax调用并发送要打印的数据。