草庐IT

android - 通过本地 Wi-Fi 或蓝牙网络以编程方式从打印机打印文档

coder 2023-11-19 原文

我必须在我的应用程序中提供打印选项才能打印 PDF 文件。 在这里,我列出了我的应用程序的要求:

  1. Internet 将无法打印。

  2. 它应该在 A4 尺寸的纸上打印 PDF 文档。

  3. 需要进行适当的导航。意味着如果 PDF 打印成功而不是消息 需要展示。如果打印机不可用,则需要显示消息。

    我已经为此进行了研发并找到了以下选项:

1) 谷歌云打印 - Google Cloud Print 是一项 Google 服务,旨在允许任何云打印感知 应用程序在网络云中的任何设备上打印到任何打印机

依赖性: - 需要互联网连接

优点 - 易于设置 - 使用各种打印机

2) 爱普生打印机 SDK 爱普生 SDK 旨在缩短实现所需的开发时间 用于从手持外围设备进行无线 POS 打印的移动 POS 应用程序。

依赖和限制 - 仅适用于 Epson POS(销售点)打印机 - 外围设备必须支持支持ARMv5TE - 如果设备在通过蓝牙与打印机通信时进入休眠模式, 连接将丢失。

3) Zebra 打印机 SDK Zebra Multiplatform SDK 包含为 Zebra 标签打印机开发应用程序所需的所有组件。

依赖关系 - 只能使用 Zebra 打印机。即, •移动:MZ™系列、QL Plus™系列、RW™系列、P4T™/RP4T™打印机
•台式机:G-Series™、HC100™、TLP/LP 2824 Plus™ 打印机 •高性能/中档:Xi4™ 和 XiIIIPlus™、PAX4™ 系列、ZM400™/ZM600™、S4M™、105SL™ 打印机 •RFID:RXi™ 系列、R110PAX4™、RZ400™/RZ600™​​ 打印机 •Kiosk:KR403™ 打印机

  • 支持的 Android 设备(使用 Android v2.1 或更高版本) •HTC® Desire™ •HTC Evo™ •HTC Nexus One™ •LG™ 盟友™ •摩托罗拉ET1 •摩托罗拉® Droid™ •摩托罗拉XT701 •Samsung® 迷人 •三星 P1000 Galaxy Tab

4) 使用 STAR 打印机 SDK - StarIO SDK 是一种高级编程工具,可简化开发 以及为 Star 打印机开发软件。

依赖关系 - 仅适用于 POS Star 打印机

5) 向其他应用发送 Intent - 我们可以将 Intent 发送给其他人以打印文件。

依赖关系 - 取决于第三方应用程序 - 如果拥有 HP 打印机而不是 ePrint 应用程序的人需要安装并且 如果拥有 Brother 打印机的人需要安装 iPrint 应用等。

通过查看我无法使用的可用选项:

  • Google 云打印,因为互联网无法用于应用

  • EpSON SDK 因为它只支持 POS 打印机但我必须打印 A4 纸上的 PDF。而且它的SDK只支持ARMv5TE 架构设备。

  • Star 和 Zebra SDK,因为它们也只支持 POS 打印机
  • Intent ,因为无法使用正确的导航。意思是拿不到 打印机当前状态,PSF 打印成功或失败。

请告诉我还有哪些其他可供我们直接打印的选项 设备,因为打印 PDF 是我应用程序的重要组成部分。去年 Google 发布了 Printing API,但它支持 4.4 及更高版本。

最佳答案

我已经使用过 STAR Printer SDK,效果很好。但打印机专用于移动 POS。

我们还使用三星打印机进行测试,它需要三星的特定应用程序,但您可以在 A4 打印机上将文档打印为 PDF。

http://www.samsung.com/us/mobile-print-app/ https://play.google.com/store/apps/details?id=com.sec.print.mobileprint

关于android - 通过本地 Wi-Fi 或蓝牙网络以编程方式从打印机打印文档,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23487364/

有关android - 通过本地 Wi-Fi 或蓝牙网络以编程方式从打印机打印文档的更多相关文章

  1. ruby - 如何以所有可能的方式将字符串拆分为长度最多为 3 的连续子字符串? - 2

    我试图获取一个长度在1到10之间的字符串,并输出将字符串分解为大小为1、2或3的连续子字符串的所有可能方式。例如:输入:123456将整数分割成单个字符,然后继续查找组合。该代码将返回以下所有数组。[1,2,3,4,5,6][12,3,4,5,6][1,23,4,5,6][1,2,34,5,6][1,2,3,45,6][1,2,3,4,56][12,34,5,6][12,3,45,6][12,3,4,56][1,23,45,6][1,2,34,56][1,23,4,56][12,34,56][123,4,5,6][1,234,5,6][1,2,345,6][1,2,3,456][123

  2. ruby - 解析 RDFa、微数据等的最佳方式是什么,使用统一的模式/词汇(例如 schema.org)存储和显示信息 - 2

    我主要使用Ruby来执行此操作,但到目前为止我的攻击计划如下:使用gemsrdf、rdf-rdfa和rdf-microdata或mida来解析给定任何URI的数据。我认为最好映射到像schema.org这样的统一模式,例如使用这个yaml文件,它试图描述数据词汇表和opengraph到schema.org之间的转换:#SchemaXtoschema.orgconversion#data-vocabularyDV:name:namestreet-address:streetAddressregion:addressRegionlocality:addressLocalityphoto:i

  3. ruby - 通过 rvm 升级 ruby​​gems 的问题 - 2

    尝试通过RVM将RubyGems升级到版本1.8.10并出现此错误:$rvmrubygemslatestRemovingoldRubygemsfiles...Installingrubygems-1.8.10forruby-1.9.2-p180...ERROR:Errorrunning'GEM_PATH="/Users/foo/.rvm/gems/ruby-1.9.2-p180:/Users/foo/.rvm/gems/ruby-1.9.2-p180@global:/Users/foo/.rvm/gems/ruby-1.9.2-p180:/Users/foo/.rvm/gems/rub

  4. ruby - 使用 C 扩展开发 ruby​​gem 时,如何使用 Rspec 在本地进行测试? - 2

    我正在编写一个包含C扩展的gem。通常当我写一个gem时,我会遵循TDD的过程,我会写一个失败的规范,然后处理代码直到它通过,等等......在“ext/mygem/mygem.c”中我的C扩展和在gemspec的“扩展”中配置的有效extconf.rb,如何运行我的规范并仍然加载我的C扩展?当我更改C代码时,我需要采取哪些步骤来重新编译代码?这可能是个愚蠢的问题,但是从我的gem的开发源代码树中输入“bundleinstall”不会构建任何native扩展。当我手动运行rubyext/mygem/extconf.rb时,我确实得到了一个Makefile(在整个项目的根目录中),然后当

  5. ruby - 通过 erb 模板输出 ruby​​ 数组 - 2

    我正在使用puppet为ruby​​程序提供一组常量。我需要提供一组主机名,我的程序将对其进行迭代。在我之前使用的bash脚本中,我只是将它作为一个puppet变量hosts=>"host1,host2"我将其提供给bash脚本作为HOSTS=显然这对ruby​​不太适用——我需要它的格式hosts=["host1","host2"]自从phosts和putsmy_array.inspect提供输出["host1","host2"]我希望使用其中之一。不幸的是,我终其一生都无法弄清楚如何让它发挥作用。我尝试了以下各项:我发现某处他们指出我需要在函数调用前放置“function_”……这

  6. ruby - 通过 ruby​​ 进程共享变量 - 2

    我正在编写一个gem,我必须在其中fork两个启动两个webrick服务器的进程。我想通过基类的类方法启动这个服务器,因为应该只有这两个服务器在运行,而不是多个。在运行时,我想调用这两个服务器上的一些方法来更改变量。我的问题是,我无法通过基类的类方法访问fork的实例变量。此外,我不能在我的基类中使用线程,因为在幕后我正在使用另一个不是线程安全的库。所以我必须将每个服务器派生到它自己的进程。我用类变量试过了,比如@@server。但是当我试图通过基类访问这个变量时,它是nil。我读到在Ruby中不可能在分支之间共享类变量,对吗?那么,还有其他解决办法吗?我考虑过使用单例,但我不确定这是

  7. ruby - 通过 RVM (OSX Mountain Lion) 安装 Ruby 2.0.0-p247 时遇到问题 - 2

    我的最终目标是安装当前版本的RubyonRails。我在OSXMountainLion上运行。到目前为止,这是我的过程:已安装的RVM$\curl-Lhttps://get.rvm.io|bash-sstable检查已知(我假设已批准)安装$rvmlistknown我看到当前的稳定版本可用[ruby-]2.0.0[-p247]输入命令安装$rvminstall2.0.0-p247注意:我也试过这些安装命令$rvminstallruby-2.0.0-p247$rvminstallruby=2.0.0-p247我很快就无处可去了。结果:$rvminstall2.0.0-p247Search

  8. ruby-on-rails - Enumerator.new 如何处理已通过的 block ? - 2

    我在理解Enumerator.new方法的工作原理时遇到了一些困难。假设文档中的示例:fib=Enumerator.newdo|y|a=b=1loopdoy[1,1,2,3,5,8,13,21,34,55]循环中断条件在哪里,它如何知道循环应该迭代多少次(因为它没有任何明确的中断条件并且看起来像无限循环)? 最佳答案 Enumerator使用Fibers在内部。您的示例等效于:require'fiber'fiber=Fiber.newdoa=b=1loopdoFiber.yieldaa,b=b,a+bendend10.times.m

  9. ruby-on-rails - 如何在我的 Rails 应用程序 View 中打印 ruby​​ 变量的内容? - 2

    我是一个Rails初学者,但我想从我的RailsView(html.haml文件)中查看Ruby变量的内容。我试图在ruby​​中打印出变量(认为它会在终端中出现),但没有得到任何结果。有什么建议吗?我知道Rails调试器,但更喜欢使用inspect来打印我的变量。 最佳答案 您可以在View中使用puts方法将信息输出到服务器控制台。您应该能够在View中的任何位置使用Haml执行以下操作:-puts@my_variable.inspect 关于ruby-on-rails-如何在我的R

  10. ruby - 是否可以覆盖 gemfile 进行本地开发? - 2

    我们的git存储库中目前有一个Gemfile。但是,有一个gem我只在我的环境中本地使用(我的团队不使用它)。为了使用它,我必须将它添加到我们的Gemfile中,但每次我checkout到我们的master/dev主分支时,由于与跟踪的gemfile冲突,我必须删除它。我想要的是类似Gemfile.local的东西,它将继承从Gemfile导入的gems,但也允许在那里导入新的gems以供使用只有我的机器。此文件将在.gitignore中被忽略。这可能吗? 最佳答案 设置BUNDLE_GEMFILE环境变量:BUNDLE_GEMFI

随机推荐