模块  java.desktop
软件包  java.awt.print

Interface Printable


  • public interface Printable
    Printable接口由当前页面print方法实现,该方法由打印系统调用以呈现页面。 构建Pageable ,将使用成对的PageFormat实例和实现此接口的实例来描述每个页面。 调用实现Printable的实例来打印页面的图形。

    可以在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指定。 请求页面的从零开始的索引由pageIndex指定。 如果请求的页面不存在,则此方法返回NO_SUCH_PAGE; 否则返回PAGE_EXISTS。 Graphics类或子类实现PrinterGraphics接口以提供其他信息。 如果Printable对象中止打印作业,则它会抛出PrinterException
        参数
        graphics - 绘制页面的上下文
        pageFormat - 正在绘制的页面的大小和方向
        pageIndex - 要绘制的页面的从零开始的索引
        结果
        如果页面成功呈现,则为 pageIndex如果 pageIndex指定不存在的页面, pageIndex NO_SUCH_PAGE。
        异常
        PrinterException - 终止打印作业时抛出。