为什么使用相同的页码多次调用java Printable的打印方法?

sun’s documentation

“打印系统可能会要求在转到下一页之前多次渲染页面.”

示例总是显示如下:

Printable print(Graphics g,PageFormat pageFormat,int page) {
    if (page == 0)
      do...
    else if(page == blah...)
}

如果你遵循这种模式,你的代码通常工作正常,因为它是基于页码显式的.没有遵循这种模式让我很痛苦,直到我意识到它被多次调用相同的页码,并开始缓存页面.

为什么使用相同的页码多次调用java Printable的打印方法

解决方法

Java打印系统受到底层OS打印系统的怜悯,该系统可能会要求多次渲染单页.

一个原因是带状打印 – 如果打印机没有足够的内存来一次渲染整个页面在这种情况下,操作系统将再次向Java请求页面,以便它可以打印页面(“带” ).这是Java 2D程序员指南“Printing Concepts”一节中提到的具体情况.

可能有其他原因;这完全取决于操作系统的打印系统.

相关文章

最近看了一下学习资料,感觉进制转换其实还是挺有意思的,尤...
/*HashSet 基本操作 * --set:元素是无序的,存入和取出顺序不...
/*list 基本操作 * * List a=new List(); * 增 * a.add(inde...
/* * 内部类 * */ 1 class OutClass{ 2 //定义外部类的成员变...
集合的操作Iterator、Collection、Set和HashSet关系Iterator...
接口中常量的修饰关键字:public,static,final(常量)函数...