我必须为Android平板电脑开发一款App,要求将文件打印到蓝牙打印机 . 通过蓝牙打印是我的应用程序最重要的功能之一 . 不幸的是,关于这个主题的信息并不多,所以我想征求意见 .
据我所知,不可能在Android上使用蓝牙打印(使用本机调用),因为Android的BT Stack不实现BPP(基本打印配置文件) . 做一点研究我发现了以下替代方案:
SDKs/Libraries
-
Sybase-iAnywhere-Blue-SDK-for-Android:支持大量BT配置文件的商业SDK . 由一家大公司开发(我猜是很好的支持) . 我还没有找到很多关于这个的信息 . 是否有一些关于如何使用此SDK的文档,API或示例?有谁知道如何下载演示版? (上次我试过时链接好像坏了)
-
iPrint SDK:商业SDK . 他们网站上的一些例子,但没有别的 .
-
Zebralink:仅适用于Zebra打印机(自然) . 其他制造商也可能为其打印机提供API .
Google Play Apps
-
PrinterShare:商业(高级密钥)
-
蓝牙智能打印:自由轻巧 . 声称打印到蓝牙打印机 .
理想情况下,我不希望被绑定到特定的品牌或打印机型号 . 现在的问题是:
-
您认为这是最佳选择?
-
你知道我错过的其他选择吗?
-
我可以使用外部应用程序从我的应用程序轻松打印文件吗?
-
我的文件应该使用哪种格式才能通过蓝牙打印? (PDF,图像等) .
-
有关打印机制造商和型号的任何建议吗?
-
您是否有在Android上通过蓝牙打印的真实体验?
-
在不久的将来有没有计划在Android上实施蓝牙打印?
在此先感谢您的帮助 ;)
4 回答
Star Micronics有一个通过蓝牙(以及以太网和USB)进行Android打印的SDK . 你可以在这里下载:http://www.starmicronics.com/support/SDKDocumentation.aspx .
正如您所提到的,您现在无法在本地打印,因此您找到的备用解决方案是您今天的选择 .
根据我的经验,最好使用API而不是外部应用程序 . 最大的原因是您可以完全控制打印机行为 . 如果API是智能构建的,那也很容易 . 使用外部应用程序是有限制的,因为您无法以您希望的方式自定义打印输出 .
我链接到你的Star SDK有一个非常好的示例应用程序,它允许您测试和自定义许多打印机功能,以查看它们的运行情况 . 每个函数都记录在源代码中 . 这些命令及其参数也可以在应用程序本身中作为快速屏幕参考使用,这很方便 . 最重要的是,它有很好的记录 .
Star是一家伟大的合作公司,因为您可以获得自己选择的免费演示打印机用于您的开发 .
如果选择这种方式,则可以将明文与命令一起发送到打印机 . API处理将数据转换为打印机可以理解的内容 .
打印到BlueTooth打印机的可能性很大程度上取决于您尝试使用的打印机型号 .
例如,我使用 CITIZEN CMP-10BT 打印机,可以通过发送特定的字节序列来控制,这可以使用Android API轻松完成 . 我甚至在此基础上构建了一个框架 .
问题在于,您无法确定哪些打印机型号将被最终用户使用,因此一些终极SDK绝对是非常需要的 .
你可以下载这个组件:https://components.xamarin.com/view/ocpp-thermal-printer-usb它在大多数USB和蓝牙通用打印机中都像一个魅力 . 我用一个类来发送最常用的esc命令 . 用法:outerInstance.mService.Write(modes.pordefecto());
将Printooth库用于任何类型的打印机,零配置,简单的使用和良好的文档
https://github.com/mazenrashed/Printooth
以下是打印简单行的示例代码:
你可以继续在这里阅读:https://github.com/mazenrashed/Printooth/blob/master/README.md