java printing_浅谈 Java Printing

浅谈 Java  Printing

其实怎么说呢?在写这篇博文之前,我对java printing 可以说是一无所知的。以至于我在敲文字时,

基本上是看着api文档翻译过来的。这虽然看起来非常的吃力,但是我相信,有道大哥不会辜负我的。嘻

嘻!

Java Printing 技术,也就是我们平时所接触的打印,只不过是说可以用Java实现而已。

一、Java Printing 打印简介

Java Printing API能够使java应用程序实现相关的打印功能,如:

1、打印所有Java 2D 和 AWT 图形,包括复合的图形图像。

2、控制文档(如word文档)组成功能,如:柔软整理、反序打印 和 小册子打印。

3、调用打印机特定的功能,如:双面打印装订

4、能在所有平台上进行打印,如:windows、Solaris(我想这也是Java具有跨平台的优点体现)

二、Java Printing 相关类和接口

1、接口

Printable :该接口由每一个页面 painter 实现,应用程序通过打印系统调用print方法,以呈现一个页面

Pageable :该接口由即将被答打印系统打印的文档(document)实现,通过该接口,系统能够知道文档的页面 及每页

即将以什么格式打印

PrinterGraphics :一个用来呈现页面的 painter  的Graphics2D对象,需要实现该接口。同时,通过该接

口,还可以获得控制打印的PrinterJob对象。

2、类

Book :实现了Pageable接口,代表一个拥有不同页面格式和页面painter的文档,该类通过Pageable接

口和PrintJob进行交互。

PageFormat:描述了打印页面的大小(如:A4,A3)及打印方向

Paper :描述了每一张纸的物理特性

PrintJob :控制打印的主要类。应用调用PrintJob方法去启动一个任务,向用户展示打印框,并打印。

三、Java打印的相关概念

Java 打印是基于一个回调打印模型的。即当页面被打印时,由打印系统(非应用程序)控制。应用程

序只是提供打印文档的相关信息,而当打印系统需要呈现页面时,打印系统就会向应用程序索取。

.......

实现打印,需要做些什么?

一个应用程序向支持打印功能,有以下2点需要实现:

1、任务控制 ----- 初始化(启动)、管理打印任务

2、成像 ----- 当打印系统请求时,要能呈现一个页面

什么是任务控制?

在一个应用程序中,用户通常是通过点击一个按钮或者一个菜单来启动一个打印任务。当一个打印操作

被用户触发,应用程序就会创建一个 PrintJob 对象并用该对象管理打印进程。

应用程序 负责设置打印任务,向用户展示打印窗格并启动打印任务。

什么是成像?

当一个文档被打印时,当打印系统请求时,应用程序必须呈现每一页面。为了实现这个机制,应用程序

提供一个实现Printable接口的 page painter ,当打印系统需要呈现一个页面时,它就会调用 page painter

的print 方法。

当page painter的print 方法被调用时,该方法是通过传递一个图形上下文来呈现图像页面。该方法

同时也传递一个 PageFormat 对象来指定页面的几何布局 和 一个 整型数 来指定页面在打印任务中的下标,即页码。

打印系统支持Graphics和Graphics2D呈现。如果想打印 Graphics 2D形状,文本,图形等,可以在

print方法中将 Graphics 对象强制转换为 Graphics2D 对象。

什么是Page Painter?

Page Painter 的主要任务就是通过 打印系统提供的 Graphics 上下文对象 去呈现每个页面。一个

Page Painter 实现Printable接口的print方法。

因为许多打印机无法打印整个页面的所有地方,顾print方法pageFormate 参数指定页面可以成像的区域。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值