java.awt.print

接口
异常
public interface Printable

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

PrinterJob 上可以设置 Printable(..)。当客户端随后通过调用 PrinterJob.print(..) 启动打印时,控制被传送到打印系统,直到所有的页面完成打印。这是通过在文档中所有页面打印完成前一直调用 Printable.print(..) 来实现的。使用 Printable 接口时,只要打印系统请求,该打印就将页面内容提交给图像。

Printable.print(..) 的参数包括描述该页面可打印区域(计算适合该页面的内容所需要的区域)的 PageFormat 和页面索引(它指定请求页面的从 0 开始的打印流索引)。

要正确的进行打印,应注意以下几点:

  • 打印系统可能多次请求页面索引。对于每种情况,都将提供等效的 PageFormat 参数。
  • 打印系统将使用单调递增的页面索引来调用 Printable.print(..),尽管上文已说明,Printable 应期望多次调用页面索引,并期望当客户端或用户通过打印对话指定页面范围时,可以跳过页面索引。
  • 如果请求文档多次逐份打印,并且打印机本身不支持此行为,那么该文档可能成像多次。将从最低打印流页面索引页面开始每次打印。
  • 除了为多次逐份打印重新成像整个文档外,递增的页面索引顺序意味着,当请求页面 N 时,如果客户端需要计算页面中断位置,则可以安全地丢弃任何与 < N 的页面相关的状态,并将页面 N 设置为当前状态。在与页面起始部分对应的文档中,“状态”通常就是计算的位置。
  • 当被打印系统调用时,Printable 必须检查并遵照提供的 PageFormat 参数以及页面索引。要绘制的页面格式由提供的 pageFormat 指定。所以该页面的大小、方向和可成像区域已经确定,并且必须在此可成像区域中呈现。这是正确进行打印的关键,它暗示客户端负责跟踪指定页面上所属的内容。
  • 从客户端提供的 Pageable 获取 Printable 时,该客户端可能为每个页面索引提供不同的 PageFormat。计算页面中断必须考虑到这一点。

另请参见:
Pageable, PageFormat, PrinterJob

字段摘要
static int NO_SUCH_PAGE
          从 print 返回,表示 pageIndex 太大以及请求的页面不存在。
static int PAGE_EXISTS
          从 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

int print(Graphics graphics,
          PageFormat pageFormat,
          int pageIndex)
          throws PrinterException
将指定索引处的页面用指定格式打印到指定的 Graphics 上下文。 PrinterJob 调用 Printable 接口,以请求将页面呈现到 graphics 指定的上下文。 pageFormat 指定要绘制的页面格式。 pageIndex 指定请求页面从 0 开始的索引。如果请求的页面不存在,那么此方法将返回 NO_SUCH_PAGE;否则返回 PAGE_EXISTS。 Graphics 类或子类实现 PrinterGraphics 接口,以提供附加信息。如果 Printable 对象中止该打印作业,那么它将抛出 PrinterException

参数:
graphics - 用来绘制页面的上下文
pageFormat - 将绘制的页面的大小和方向
pageIndex - 要绘制的页面从 0 开始的索引
返回:
如果成功呈现该页面,则返回 PAGE_EXISTS;如果 pageIndex 指定不存在的页面,则返回 NO_SUCH_PAGE。
抛出:
PrinterException - 打印作业被终止时抛出。