news 2026/6/4 11:11:49

【Android】打印功能简介

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
【Android】打印功能简介

在 Android 4.4(API 级别 19)及更高版本中,框架提供直接从 Android 应用打印图片和文档的服务。本文章介绍如何在应用中启用打印功能,包括打印图片、HTML 页面以及创建要打印的自定义文档。

一、打印照片

Android 支持库PrintHelper类提供 一种简单的图片打印方法,用于简化图片打印操作。

1、缩放模式

  • 通过setScaleMode() 方法,可设置打印时的图片缩放模式:
    • SCALE_MODE_FIT: 调整图片大小,以便在页面的可打印区域内完整显示图片。
    • SCALE_MODE_FILL:缩放图片,使其填充整个页面的可打印区域,但可能会裁剪图片的上下或左右边缘的某些部分。此模式为默认选项。
  • 两个缩放选项都能保持图片的现有宽高比不变

2、使用方法

  • 调用 printBitmap() 方法后,系统会显示打印界面,用户可以选择打印机和打印选项。
packagecom.android.androidfunctiondemo.printerimportandroid.content.Contextimportandroid.graphics.BitmapFactoryimportandroid.os.Bundleimportandroidx.appcompat.app.AppCompatActivityimportandroidx.print.PrintHelperimportcom.android.androidfunctiondemo.Rimportcom.android.androidfunctiondemo.databinding.ActivityPrinterBindingclassPrintPhotoActivity:AppCompatActivity(){privatelateinitvarviewBinding:ActivityPrinterBindingoverridefunonCreate(savedInstanceState:Bundle?){super.onCreate(savedInstanceState)viewBinding=ActivityPrinterBinding.inflate(layoutInflater)setContentView(viewBinding.root)viewBinding.print.setOnClickListener{doPhotoPrint(this)}}/** * 打印图片 */privatefundoPhotoPrint(context:Context){try{valprintHelper=PrintHelper(context)printHelper.scaleMode=PrintHelper.SCALE_MODE_FITvalbitmap=BitmapFactory.decodeResource(resources,R.mipmap.weather_sun)bitmap?.let{printHelper.printBitmap("photo-print",bitmap)}}catch(e:Exception){e.printStackTrace()}}}
  • 实现效果

二、打印 HTML 文档

使用 WebView 类可打印 HTML 文档,支持直接加载 HTML 页面, 或者以字符串形式构建自定义 HTML 文档。

1、注意事项

  • 使用 WebView 创建打印文档时, 存在以下限制:
    • 不能向文档中添加页眉或页脚,包括页码。
    • HTML 文档的打印选项不支持打印页码选择,只能全部打印。
    • WebView 的实例一次只能处理一个打印作业。
    • 不能在 HTML 文档中使用 JavaScript 触发打印作业。

2、实现步骤

  • 创建 WebViewClient 类,用于监听 HTML 资源加载完成情况,若 HTML 资源已加载完成,则创建打印作业。
  • 将 HTML 资源加载到 WebView 对象中。

3、使用方法

  • 确保在 onPageFinished() 方法中调用打印任务。若没有等待页面显示 加载完成,则打印输出可能不完整或空白,或者可能完全失败。
  • 存储 WebView 对象,使其不会在打印作业之前进行垃圾回收,否则打印流程 可能会失败。
packagecom.android.androidfunctiondemo.printerimportandroid.content.Contextimportandroid.os.Bundleimportandroid.print.PrintAttributesimportandroid.print.PrintManagerimportandroid.util.Logimportandroid.webkit.WebResourceRequestimportandroid.webkit.WebViewimportandroid.webkit.WebViewClientimportandroidx.appcompat.app.AppCompatActivityimportcom.android.androidfunctiondemo.databinding.ActivityPrinterBindingclassPrintHtmlActivity:AppCompatActivity(){privatevaltag="PrintHtmlActivity"privatelateinitvarviewBinding:ActivityPrinterBindingprivatevarglobalWebView:WebView?=nulloverridefunonCreate(savedInstanceState:Bundle?){super.onCreate(savedInstanceState)viewBinding=ActivityPrinterBinding.inflate(layoutInflater)setContentView(viewBinding.root)viewBinding.print.setOnClickListener{doWebViewPrint(this)}}/** * 打印 HTML 文档 */privatefundoWebViewPrint(context:Context){valwebView
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/3 6:59:24

5个隐藏功能揭秘:DriverStore Explorer的终极使用指南

5个隐藏功能揭秘:DriverStore Explorer的终极使用指南 【免费下载链接】DriverStoreExplorer Driver Store Explorer [RAPR] 项目地址: https://gitcode.com/gh_mirrors/dr/DriverStoreExplorer 还在为Windows系统越来越慢而烦恼吗?那些隐藏在深处…

作者头像 李华
网站建设 2026/6/3 17:23:22

COMSOL氨气催化裂解:不同压力、温度下的性能分析

COMSOL氨气催化裂解。 不同压力,不同温度下的NH3催化裂解。氨气(NH₃)催化裂解是一种常见的化学催化技术,广泛应用于石油 refining 和合成化学中。通过在催化剂的作用下,将长链烃类物质裂解为短链产物,同时…

作者头像 李华
网站建设 2026/6/4 14:24:09

Git监控工具终极指南:lazygit操作行为分析完全手册

Git监控工具终极指南:lazygit操作行为分析完全手册 【免费下载链接】lazygit 一个简化的终端用户界面,用于执行Git命令,旨在提高开发者使用Git的效率和体验。 项目地址: https://gitcode.com/GitHub_Trending/la/lazygit 在当今快速发…

作者头像 李华
网站建设 2026/6/3 19:36:57

Java 8都出了这么多年,Optional还是没人用?到底卡在哪了?

Java 8 都快 12 岁了&#xff0c;Optional<T> 确实还是“半红不紫”&#xff0c;真实项目里你打开一个 2025 年的 Spring Boot 代码库&#xff0c;十有八九还是满屏 if (obj ! null)&#xff0c;真正用好 Optional 的团队屈指可数。到底卡在哪&#xff1f;下面把真实原因…

作者头像 李华
网站建设 2026/6/3 20:27:37

Windows快捷键修复大师:一键诊断系统热键冲突的智能工具

Windows快捷键修复大师&#xff1a;一键诊断系统热键冲突的智能工具 【免费下载链接】hotkey-detective A small program for investigating stolen hotkeys under Windows 8 项目地址: https://gitcode.com/gh_mirrors/ho/hotkey-detective 在Windows操作系统中&#x…

作者头像 李华