使用带有Phonegap的SenchaTouch打印到外部收据打印机

时间:2011-12-16 06:59:12

标签: printing cordova sencha-touch

我正在SenchaTouch中创建一个应用程序。此外,我将使用PHONEGAP部署ios,android和blackberry。在应用程序中,我需要打印一些细节,如收据。我不知道如何制作应与上述平台兼容的打印功能。

我也需要获取打印机列表。

感谢。

4 个答案:

答案 0 :(得分:2)

我不能代表Android或Blackberry,但iOS应用可以打印到两种类型的打印机:

  1. AirPrint认证的打印机。您可以使用Phonegap打印插件从iOS PhoneGap应用程序打印到AirPrint打印机。 https://build.phonegap.com/plugins/1113
  2. 由Apple认证为“MFi计划”的一部分。我只知道一台MFi打印机,但它是一张收据打印机,所以它可能正是你所需要的(你需要编写自己的PhoneGap插件,以便与打印机的SDK连接):http://www.bluebamboo.com/products/show.asp?id=16 < / LI>

    注意:使用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调用并发送要打印的数据。