使用SenchaTouch和Phonegap打印到外部收据打印机

3
我正在使用SenchaTouch创建一个应用程序。同时我将使用PHONEGAP在iOS、Android和BlackBerry上部署该应用程序。在应用程序中,我需要打印一些细节,例如收据。我不知道如何制作适用于上述平台的打印功能。
我还需要获取打印机列表。
谢谢。

你是怎么实现的?我需要做类似的事情。 - Stephan Celis
4个回答

2
我不能代表Android或Blackberry,但iOS应用程序可以打印到两种类型的打印机:
1. AirPrint认证打印机。您可以使用PhoneGap打印插件从iOS PhoneGap应用程序打印到AirPrint打印机。 https://build.phonegap.com/plugins/1113 2. 苹果公司“MFi计划”中认证的打印机。我只知道一个MFi打印机,但它是一个收据打印机,所以这可能正是您所需的(您需要编写自己的PhoneGap插件才能与打印机的SDK进行接口):http://www.bluebamboo.com/products/show.asp?id=16 注意:使用AirPrint时,您不需要担心可用打印机列表。用户会看到一个对话框,其中包含他们网络上所有可用的AirPrint打印机的列表。您的打印作业将发送到他们选择的打印机。

我找到了这个插件,但在iPad上无法使用,请您提供一个示例吗?...要转换.ipa项目,需要使用"sencha touch" + "index.html(来自插件)" + "PhoneGap build",但打印按钮没有任何反应。 - cmujica

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。

0
首先,您应该知道iOS仅支持少数HP打印机的空气打印功能。其次,我甚至不确定黑莓是否能够做到这一点,但我可能是错的。
您需要做的是编写PhoneGap代码,以与iOS、Android和BlackBerry的本地空气打印代码进行接口交互。

0

这个解决方案可能不适用于您的特定环境,但如果您能够付出努力,它将起作用:

在服务器上设置一个 Web 服务,接受包含要打印数据的打印请求。然后编写一个小型的 Windows/Linux/OSX 程序,轮询您的 Web 服务以获取新的打印作业。如果程序发现新的打印请求,则将其发送到正确的打印机。这可以编写为服务或作为计划任务运行。

现在,当您需要从移动应用程序打印时,它可以向您的 Web 服务发出 ajax 调用并发送要打印的数据。


2
重新发明Google云打印? - Leonid

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接