模块 java.desktop

接口 Printable


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 上下文中。
  • 字段详细信息

  • 方法详情

    • print

      int print(Graphics  graphics, PageFormat  pageFormat, int pageIndex) throws PrinterException
      以指定格式将指定索引处的页面打印到指定的 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 - 打印作业终止时抛出。