public interface Printable
Printable
接口由当前页面绘制器的 print
方法实现,由打印系统调用以呈现页面。在构建 Pageable
时,成对的 PageFormat
实例和实现此接口的实例用于描述每个页面。调用实现 Printable
的实例来打印页面的图形。
Printable(..)
可以设置在 PrinterJob
上。当客户端随后通过调用PrinterJob.print(..)
control 启动打印时
交给打印系统,直到打印完所有页面。它通过调用 Printable.print(..)
来完成此操作,直到打印文档中的所有页面。在使用 Printable
接口时,打印承诺在打印系统请求时对页面内容进行成像。
Printable.print(..)
的参数包括一个 PageFormat
,它描述了页面的可打印区域,需要计算适合页面的内容,以及页面索引,它指定所请求页面的从零开始的打印流索引。
对于正确的打印行为,应注意以下几点:
- 打印系统可能会多次请求页面索引。每次都会提供相等的 PageFormat 参数。
- 打印系统将使用单调增加的页面索引调用
Printable.print(..)
,尽管如上所述,Printable
应该期望多次调用页面索引并且页面索引可以被跳过,当页面范围由客户端指定时,或由用户通过一个打印对话框。 - 如果请求文档的多份整理副本,而打印机本身无法支持,则文档可能会多次成像。打印将从最低的打印流页面索引页开始每个副本。
- 除了为多个整理副本重新成像整个文档外,增加的页面索引顺序意味着当请求第 N 页时,如果客户端需要计算分页位置,它可以安全地丢弃与页面 < N 相关的任何状态,并且使页面 N 成为当前状态。“状态”通常只是文档中与页面开始相对应的计算位置。
- 当打印系统调用时,
Printable
必须检查并遵守提供的 PageFormat 参数以及页面索引。要绘制的页面的格式由提供的 PageFormat 指定。因此,页面的大小、方向和可成像区域已经确定,渲染必须在此可成像区域内。这是纠正打印行为的关键,它意味着客户端有责任跟踪指定页面上的内容。 - 当从客户端提供的
Pageable
获得Printable
时,客户端可能会为每个页面索引提供不同的页面格式。分页符的计算必须考虑到这一点。
- 参见:
-
字段摘要
字段修饰符和类型Field描述static final int
从print
返回,表示pageIndex
太大,请求的页面不存在。static final int
从print(Graphics, PageFormat, int)
返回以表示请求的页面已呈现。 -
方法总结
修饰符和类型方法描述int
print
(Graphics graphics, PageFormat pageFormat, int pageIndex) 以指定格式将指定索引处的页面打印到指定的Graphics
上下文中。
-
字段详细信息
-
PAGE_EXISTS
static final int PAGE_EXISTS从print(Graphics, PageFormat, int)
返回以表示请求的页面已呈现。- 参见:
-
NO_SUCH_PAGE
static final int NO_SUCH_PAGE从print
返回,表示pageIndex
太大,请求的页面不存在。- 参见:
-
-
方法详情
-
print
以指定格式将指定索引处的页面打印到指定的Graphics
上下文中。PrinterJob
调用Printable
接口以请求将页面呈现到graphics
指定的上下文中。要绘制的页面格式由pageFormat
指定。请求页面的从零开始的索引由pageIndex
指定。如果请求的页面不存在则此方法返回 NO_SUCH_PAGE;否则返回 PAGE_EXISTS。Graphics
类或子类实现PrinterGraphics
接口以提供附加信息。如果Printable
对象中止打印作业,则它会抛出一个PrinterException
。- 参数:
graphics
- 绘制页面的上下文pageFormat
- 正在绘制的页面的大小和方向pageIndex
- 要绘制的页面的从零开始的索引- 返回:
-
PAGE_EXISTS 如果页面呈现成功或 NO_SUCH_PAGE 如果
pageIndex
指定了一个不存在的页面。 - 抛出:
PrinterException
- 打印作业终止时抛出。
-