在Android上无需打印对话框进行打印

8
简单的Android应用程序已经开发完成。我使用Google的api实现了在Android 4.4版本中的打印功能。
无论如何,我的最终目的是自动打印到默认打印机,而不需要任何UI界面。打印内容是简单的html。我需要一些自定义代码来解决这个问题。
顺祝商祺, Danilo

请明确您的问题,并编辑您的问题,附上您已经编写的代码。 - Alessandro Lai
1
我的问题是:我能否在不弹出打印对话框的情况下,将HTML页面打印到连接到我的设备的默认打印机上?目前我还没有尝试过任何可以允许隐藏打印对话框的库...有一个APF框架,但它对我的使用来说太昂贵了...http://apf.isb-vietnam.com/ - Danilo Pellicano
请发布您的代码。 - Heshan Sandeepa
你在这方面有什么进展吗?我认为这应该是使用嵌入式Android的仪器上的常见功能,就像我的产品一样。 - Robert R Evans
1
这个答案可能会对你有所帮助:https://dev59.com/6oDba4cB1Zd3GeqPCU3L#40107636 - César Muñoz
2个回答

3
我认为我们不能隐藏打印对话框,因为PrintManager类是final的。所以我们不被允许覆盖它。
当你从一个活动中调用这个print(String, PrintDocumentAdapter, PrintAttributes)时,它会启动打印作业并带出系统打印UI。
如果你想要一个打印文档的例子,你可以参考这个Android-wifi-print - GitHub。这只是使用wifi打印机打印文档的原型。

1
幸运的是,我能够重写PrintManager的打印方法,但是如果不进入意图命令,您无法继续打印或发送打印作业。
PrintJobInfo printJobInfo = bundleResult.getParcelable("android.print.intent.extra.EXTRA_PRINT_JOB");
IntentSender printIntent = bundleResult.getParcelable("android.print.intent.extra.EXTRA_PRINT_DIALOG_INTENT");

除非有人对如何处理意图有想法或建议。如果需要,我可以发布关于如何制作自己的管理器打印方法的代码,但它将会被困在printIntent上。如果我们能解决printIntent,那么我们可能就有了隐藏打印对话框这个常见问题的解决方案。


打印管理器覆盖代码很有趣,但最终云打印插件/apk需要该意图。如果您最终想使用默认的Android系统进行打印,我不知道是否有办法避开其中的这一部分。 - Chris
我对“幸运的是,我能够覆盖PrintManager的打印方法”这个语句很感兴趣。你不能“扩展”一个final类,也没有其他方法可以“覆盖”一个方法。也许你将“PrintManager”包装在一个类中了? - Robert R Evans

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