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
中获取时,客户端可以为每个页面索引提供不同的PageFormat
。页面断点的计算必须考虑到这一点。
- 参见:
-
Field Summary
Modifier and TypeFieldDescriptionstatic final int
从print
返回,表示pageIndex
太大,请求的页面不存在。static final int
从print(Graphics, PageFormat, int)
返回,表示请求的页面已呈现。 -
Method Summary
Modifier and TypeMethodDescriptionint
print
(Graphics graphics, PageFormat pageFormat, int pageIndex) 将指定索引处的页面打印到指定格式的Graphics
上下文中。
-
Field Details
-
PAGE_EXISTS
static final int PAGE_EXISTS从print(Graphics, PageFormat, int)
返回,表示请求的页面已呈现。- 参见:
-
NO_SUCH_PAGE
static final int NO_SUCH_PAGE从print
返回,表示pageIndex
太大,请求的页面不存在。- 参见:
-
-
Method Details
-
print
将指定索引处的页面打印到指定格式的Graphics
上下文中。一个PrinterJob
调用Printable
接口来请求将页面呈现到由graphics
指定的上下文中。要绘制的页面的格式由pageFormat
指定。所请求页面的基于零的索引由pageIndex
指定。如果请求的页面不存在,则此方法返回NO_SUCH_PAGE;否则返回PAGE_EXISTS。Graphics
类或子类实现PrinterGraphics
接口以提供附加信息。如果Printable
对象中止打印作业,则会抛出PrinterException
。- 参数:
-
graphics
- 要绘制页面的上下文 -
pageFormat
- 要绘制的页面的大小和方向 -
pageIndex
- 要绘制的页面的基于零的索引 - 返回:
-
如果页面成功呈现,则返回PAGE_EXISTS;如果
pageIndex
指定了不存在的页面,则返回NO_SUCH_PAGE。 - 抛出:
-
PrinterException
- 打印作业终止时抛出。
-