Most visited

Recently visited

Added in API level 19

PrintManager

public final class PrintManager
extends Object

java.lang.Object
   ↳ android.print.PrintManager


用于访问平台打印功能的系统级服务。

要获得打印管理器的句柄,请执行以下操作:

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

Print mechanics

在平台上打印的关键思想是,要打印的内容应该针对当前选定的打印选项进行布局,从而实现优化的输出和更高的用户满意度。 为了实现这个目标,平台宣布打印应用程序必须遵循的由PrintDocumentAdapter类定义的PrintDocumentAdapter 在更高层次上,合同是当用户从打印用户界面中选择一些可能影响内容布局方式的选项时(例如页面大小),应用程序会收到一个回调,允许其对内容进行布局以更好地适应这些新约束。 布局通过后,系统可能会要求应用程序一次或多次渲染一个或多个页面。 例如,应用程序可能会生成较小页面大小的单列列表和较大页面大小的多列表格。

Print jobs

通过调用print(String, PrintDocumentAdapter, PrintAttributes)来启动打印作业,这会导致系统打印UI。 一旦打印用户界面启动,当用户更改选定的打印选项时,会影响内容布局的方式,系统会按照上面介绍的机制开始与应用程序交互。

打印作业可以在createdqueuedstartedblockedcompletedfailed ,并canceled状态。 打印作业存储在专用系统假脱机程序中,直至它们被取消或完成处理。 如果设备重新启动,活动的打印作业(未被取消或完成的作业)被视为失败,因为新的启动可能会持续很长时间。 用户可以选择重新启动这样的打印作业。 一旦打印作业排队,所有相关内容都存储在系统假脱机程序中,并且其生命周期与创建它的应用程序的生命周期分离。

应用程序可以向打印后台处理程序查询其创建的当前打印作业,但不打印其他应用程序创建的作业。

也可以看看:

Summary

Public methods

List<PrintJob> getPrintJobs()

获取此应用程序的打印作业。

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

使用默认打印属性创建打印作业以打印 PrintDocumentAdapter

Inherited methods

From class java.lang.Object

Public methods

getPrintJobs

Added in API level 19
List<PrintJob> getPrintJobs ()

获取此应用程序的打印作业。

Returns
List<PrintJob> The print job list.

也可以看看:

print

Added in API level 19
PrintJob print (String printJobName, 
                PrintDocumentAdapter documentAdapter, 
                PrintAttributes attributes)

创建一个打印作业,用于打印具有默认打印属性的 PrintDocumentAdapter

调用此方法会使打印UI允许用户自定义打印作业并返回PrintJob对象,而无需等待用户自定义或确认打印作业。 返回的打印作业实例处于created状态。

该方法只能从Activity 基本原理是,从服务打印会产生不一致的用户体验,因为打印用户界面不会出现任何上下文。

如果您的活动已完成,则在PrintDocumentAdapter传递的PrintDocumentAdapter也将被视为无效。 基本原理是,一旦启动打印的活动完成,提供的适配器可能处于不一致的状态,因为它可能取决于活动提供的UI。

默认的打印属性是系统提示数据如何打印的提示。 例如,照片编辑器可能会查看照片宽高比以确定默认方向,并提供打印是纵向还是横向的提示。 鉴于当前的打印机支持,系统将尽最大努力选择打印对话框中的提示选项。

注意:调用此方法将带来打印对话框,系统将连接到提供的PrintDocumentAdapter 如果发生应用程序未处理的配置更改(例如轮换更改),则系统将断开与适配器的连接,因为必须重新创建活动,并且旧适配器在此上下文中可能无效,因此会有新的适配器实例是必须的。 因此,如果您的活动未处理配置更改(默认行为),则必须保存您正在打印的状态,并在重新创建活动时再次调用此方法。

Parameters
printJobName String: A name for the new print job which is shown to the user.
documentAdapter PrintDocumentAdapter: An adapter that emits the document to print.
attributes PrintAttributes: The default print job attributes or null.
Returns
PrintJob The created print job on success or null on failure.
Throws
IllegalStateException If not called from an Activity.
IllegalArgumentException If the print job name is empty or the document adapter is null.

也可以看看:

Hooray!