2011-12-16 118 views
3

我在SenchaTouch中创建应用程序。另外我将使用PHONEGAP为ios,android和黑莓部署。在应用程序中,我需要打印一些细节,如收据。我不知道如何使打印功能应该与上述平台兼容。使用SenchaTouch使用Phonegap打印到外部收据打印机

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

谢谢。

+0

你是如何实现它的?我需要做一些非常相似的事情。 – 2012-03-28 15:15:05

回答

0

首先,您应该知道iOS仅支持选择HP打印机的空气打印。其次,我甚至不知道黑莓手机可以做到这一点,但我可能是错的。

您需要做的是编写phonegap代码,以便与iOS,Android的实现和BlackBerry的原生空白打印代码交互。

0

它可能不适合你特定的环境中工作,但这种解决方案将工作,如果你可以把精力:

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

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

+2

重塑Google云打印? – Leonid 2013-02-18 10:52:21

2

我不能为Android或黑莓说话,但iOS应用可以打印两种类型的打印机:

  1. AirPrint的打印机认证。您可以使用Phonegap打印插件从iOS PhoneGap应用程序打印到AirPrint打印机。 https://build.phonegap.com/plugins/1113
  2. 已通过苹果公司认证,属于其“MFi计划”的一部分。我只知道一个小额信贷机构的打印机,但它是一个收据打印机,它可能正是你需要的(你需要,虽然编写自己的PhoneGap插件,以便与打印机的SDK接口):http://www.bluebamboo.com/products/show.asp?id=16

注意:使用AirPrint时,您不必担心可用打印机的列表。用户将看到一个对话框,其中包含网络上所有可用AirPrint打印机的列表。您的打印作业将被发送到他们选择的任何打印机。

+0

我发现了这个插件,但是不能在ipad上运行,请您提供一个例子吗? ... 转换。该项目,“sencha touch”+“index.html(从插件)”+“PhoneGap建设”打印按钮什么也不做 – cmujica 2012-06-25 18:52:02

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.