StupidBeauty
Read times:1884Posted at: - no title specified

安卓19开发文档翻译:打印管理器,PrintManager

继承 Object

类概述

这是一个系统级别的服务,用来使用平台所提供的打印功能。

要想获取对打印管理器的把柄(handle)的话,使用以下代码:

PrintManager printManager =

( PrintManager ) context . getSystemService ( Context . PRINT_SERVICE );

打印机制

在本平台上打印的关键观念是,所需打印的内容应当根据当前选中的打印选项来做相应的排版调整,以产生最佳的输出效果和用户体验。 为了达到这个目标,平台声明了一个契约,正在进行打印的应用程序必须满足该契约,该契约具体是由 PrintDocumentAdapter 类定义的。 在一个较高层次来说该契约的话,就是,当用户在打印界面中选择了某些可能会影响到内容的排版情况的选项(例如页面尺寸)时,应用程序 会收到回调,以对内容重新进行排版,以更好地适应新的约束条件。 在进行了一次布局之后,系统可能会要求该应用程序进行一次或多次渲染,渲染出一页或多个页面。例如, 在某个应用程序中,对于较小的页面尺寸,可能会产生出一个单列的列表,而对于较大的页面尺寸,可能会产生出一个多列的表格。

打印任务

在某个活动(activity)中调用 print(String, PrintDocumentAdapter, PrintAttributes) 即可启动打印任务,这将导致显示出系统的打印界面。打印界面显示出来之后 ,每当用户改变了某个会影响到内容的排版情况的选项时,系统就会按照上一小节中所说的机制来与该应用程序进行交互。

打印任务可能 会处于 created queued started blocked completed failed canceled 状态 。打印任务 会被储存在独立的系统存储区中,直到它们被处理为止,即,被取消或完成。那些处于活跃状态 的打印任务,即,那些未取消也未完成的任务,会在设备重启时进入失败状态,因为最后这次系统启动可能是在狠久之后的事。用户 可以选择重新启动这些任务。 一旦某个打印任务进入队列中,它的所有相关内容都会被储存到系统存储区中,而它的生命周期就与创建该任务的那个应用程序脱离了。

应用程序可以查询由它自己所创建的打印任务的情况,而无法查询其它应用程序所创建的打印任务。

参考

概述

公有方法

List < PrintJob >

getPrintJobs ()

获取由此应用程序所创建的打印任务。

PrintJob

print ( String  printJobName,  PrintDocumentAdapter  documentAdapter,  PrintAttributes  attributes)

创建 一个以默认的打印属性来打印某个 PrintDocumentAdapter 的内容的打印任务。

公有方法

public  PrintJob print  ( String  printJobName,  PrintDocumentAdapter  documentAdapter,  PrintAttributes  attributes)

自此版本开始引入 应用编程接口级别19

创建 一个以默认的打印属性来打印某个 PrintDocumentAdapter 的内容的打印任务。

调用 这个方法,会显示出系统的打印界面,其中允许用户对打印任务进行某些自定义设置。调用后,在用户还未对该打印任务进行自定义或确认时便会返回一个 PrintJob 对象。所返回的打印任务实例处于 created 状态

这个方法只允许从某个 活动 中调用。 这样限制的原因是, 从服务中启动打印动作的话,会产生一种不一致的用户体验,因为系统打印界面显示出来时会不带任务上下文。

另外 ,所传入的 PrintDocumentAdapter ,会在妳的活动结束时被认为进入无效状态。 对于这一点的原因呢,就是, 一旦启动该打印任务的活动结束了,那么, 所提供的适配器可能会处于一种不完整的状态,因为,它可能依赖于活动的界面上的某些内容。

默认的打印属性,是对于系统所给出的一个建议,其中指明了这些数据该怎么打印。例如,对于一个照片编辑器,它可能会计算该照片的宽高比,以确定出默认的朝向,并且给出一个打印建议,指明是要用竖向还是横向打印模式。在当前打印机支持相应选项的情况下,系统会尽量在打印对话框中选中所建议的选项。

注意 调用 这个方法会导致显示出系统的打印对话框,并且,系统会连接到这里所提供的那个 PrintDocumentAdapter 。如果 发生了某种妳的应用程序未能处理的配置变化(例如屏幕旋转)的话,则,系统 会断开与该适配器的连接,因为该活动需要被重新创建,而在新的上下文中,旧的适配器可能会处于无效状态,于是就会一个新的适配器实例了。所以 呢,如果妳的活动不会处理配置变化(这是默认行为)的话,那么,妳需要保存妳之前正在打印的那个打印内容的状态,并且在妳的活动被重新创建时重新调用这个方法。

参数

printJobName

新创建的打印任务的名字,会被显示给用户。

documentAdapter

一个适配器,用于将文档发送给打印任务。

attributes

默认 的打印任务属性,或者是空( null )。

返回
  • •.如果成功则返回所创建的打印任务,如果失败则返回空(null)。

抛出异常

IllegalStateException

不是从某个 活动 中调用的。

IllegalArgumentException

打印任务名字是空的,或者所提供的文档适配器为空(null)。

参考

Your opinions

Your name:Email:Website url:Opinion content:
- no title specified

HxLauncher: Launch Android applications by voice commands

 
Recent comments
2017年4月~2019年4月垃圾短信排行榜Posted at:Thu Sep 26 04:51:48 2024
Qt5.7文档翻译:QWebEngineCookieStore类,QWebEngineCookieStore ClassPosted at:Fri Aug 11 06:50:35 2023盲盒kill -9 18289 Grebe.20230517.211749.552.mp4