news 2026/4/18 13:10:46

【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/4/18 5:33:57

GalaxyBook Mask:轻松模拟三星笔记本的终极解决方案

GalaxyBook Mask:轻松模拟三星笔记本的终极解决方案 【免费下载链接】galaxybook_mask This script will allow you to mimic your windows pc as a Galaxy Book laptop, this is usually used to bypass Samsung Notes 项目地址: https://gitcode.com/gh_mirrors…

作者头像 李华
网站建设 2026/4/18 7:03:16

C#:string.IndexOf

在 C# 中,字符串(string)的 IndexOf 方法用于查找子字符串在原始字符串中的位置。值得注意的是,字符串的索引是从 0 开始的,这意味着第一个字符的索引是 0,第二个字符的索引是 1,以此类推。 1、…

作者头像 李华
网站建设 2026/4/18 7:01:40

算法上新|智慧交通新算法

继100项通用算法发布后,我们针对智慧交通发布垂直专用算法,深度融合智慧交通核心需求,覆盖交通流量优化、违章行为识别、事故预警等全环节,以AI技术重构全域交通管理体系。 算法包括: 通过AI算法集群,监管…

作者头像 李华
网站建设 2026/4/18 5:35:02

7个张一鸣智慧宝库:揭秘字节跳动创始人的成功密码

【免费下载链接】张一鸣微博记录.pdf 本仓库提供了一份珍贵的资料——《张一鸣微博记录.pdf》,这份文档详细整理了字节跳动创始人张一鸣先生在微博上的公开言论与思考分享。张一鸣,作为全球知名互联网公司字节跳动的创始人,其对于技术、产品、…

作者头像 李华
网站建设 2026/4/17 23:34:55

基于(单片机/STM32)的实验室环境检测系统 程序 功能如下: (1)温湿度检测功能:采集实...

基于(单片机/STM32)的实验室环境检测系统 程序 功能如下: (1)温湿度检测功能:采集实验室的温度和湿度参数。(2)烟雾检测功能:采集当前实验室环境的烟雾浓度。 (3)空气质量检测功能:采集当前环境的空气,对有害气体进行检测。 (4)显示功能:实时显示实验室温…

作者头像 李华
网站建设 2026/4/18 7:36:00

YOLOv8-BiFPN 上臂目标检测与识别实现

1. YOLOv8-BiFPN 上臂目标检测与识别实现 在工业自动化和智能制造领域,上臂检测是一个非常重要的任务。🤖 无论是工业机器人协作还是安全监控,准确识别上臂都能提高生产效率和安全性。今天,我要和大家分享如何使用改进的YOLOv8-B…

作者头像 李华