Module  java.desktop
软件包  java.awt.print

Interface Printable



  • public interface Printable
    Printable接口由当前页面画家的print方法实现,由打印系统调用以呈现页面。 当构建一个Pageable ,实现这个接口的PageFormat实例和实例被用来描述每个页面。 调用实现Printable的实例来打印页面的图形。

    A Printable(..)可以设置在PrinterJob 当客户端随后通过调用PrinterJob.print(..)控制启动打印

    被传送到打印系统,直到所有页面都被打印出来。 它可以通过调用Printable.print(..)直到打印出文档中的所有页面。 在使用Printable界面时,只要打印系统要求,打印就会对页面的内容进行成像。

    对于Printable.print(..)的参数包括PageFormat ,其描述了用于计算适合该页面的内容所需的页面的可打印区域以及指定所请求页面的基于零的打印流索引的页面索引。

    要正确打印行为,应遵守以下几点:

    • 打印系统可以多次请求页面索引。 每次都会提供相同的PageFormat参数。
    • 打印系统将调用Printable.print(..) ,页面索引单调增加,尽管如上所述, Printable应该期望多次调用页面索引,并且页面索引可能会被跳过,当页面范围由客户端指定时,或者由用户通过打印对话框。
    • 如果请求了文档的多个整理副本,并且打印机本来不能支持这一点,则文档可以被多次成像。 打印将从最低的打印流页面索引页面开始每个副本。
    • 除了对整个文档进行多次整理副本重新成像之外,增加的页面索引顺序意味着当客户端需要计算分页位置时请求页面N时,可以安全地丢弃与页面N相关的任何状态,以及对于第N页进行当前流程。“状态”通常只是文档中与页面开头对应的计算位置。
    • 当打印系统调用时, Printable必须检查并兑现提供的PageFormat参数以及页面索引。 要绘制的页面的格式由提供的PageFormat指定。 因此,页面的大小,方向和可成像区域已经确定,渲染必须在该可成像区域内。 这是纠正打印行为的关键,它意味着客户端有责任跟踪指定页面上所属的内容。
    • Printable从客户端提供的Pageable获得时,客户端可以为每个页面索引提供不同的PageFormats。 分页符的计算必须说明这一点。
    另请参见:
    PageablePageFormatPrinterJob
    • 方法详细信息

      • print

        int print​(Graphics graphics,
                  PageFormat pageFormat,
                  int pageIndex)
           throws PrinterException
        以指定的格式将指定索引的页面打印到指定的Graphics上下文中。 A PrinterJob调用Printable接口以请求将页面呈现到由graphics指定的graphics 要绘制的页面的格式由pageFormat指定。 请求页面的零pageIndexpageIndex指定。 如果请求的页面不存在,则此方法返回NO_SUCH_PAGE; 否则返回PAGE_EXISTS。 Graphics类或子类实现PrinterGraphics接口提供附加信息。 如果Printable对象中止打印作业,那么它会抛出一个PrinterException
        参数
        graphics - 绘制页面的上下文
        pageFormat - 正在绘制的页面的大小和方向
        pageIndex - 要绘制的页面的零 pageIndex
        结果
        如果页面呈现成功,则 pageIndex或者如果 pageIndex指定不存在的页面, pageIndex NO_SUCH_PAGE。
        异常
        PrinterException - 打印作业终止时抛出。