Java 打印事务

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Java 打印事务

BufferedWriter和PrintWriter都可以写入数据,但BufferedWriter没有相关的格式化的方法,而PrintWriter可以在写入同时对写入的数据进行格式化。

JAVA屏幕大小获取方式

01.Dimension scrSize=Toolkit.getDefaultToolkit().getScreenSize();

此语句可取得屏幕实际大小。如屏幕分辨率是1024*768时,scrSize.width的值为1024,scrSize.height的值为768。

02.Insets

scrInsets=Toolkit.getDefaultToolkit().getScreenInsets(GraphicsEnvironment.getLocalGraphicsEnvironment() .getDefaultScreenDevice().getDefaultConfiguration());

此语句用于取得屏幕已占用范围,如任务栏。scrInsets对象的left、right、top、bottom的值分别就是屏幕四边已占用的大小。

int w = this.getContext().getResources().getDisplayMetrics().heightPixels;

int h = this.getContext().getResources().getDisplayMetrics().widthPixels;

关于JAVA的打印机设定

1、需要一个打印服务对象。这可通过三种方式实现:

在jdk1.4之前的版本,必须要实现java.awt.print.Printable接口

或通过Toolkit.getDefaultToolkit().getPrintJob来获取打印服务对象;

在jdk1.4中则还可以通过javax.print.PrintSerivceLookup来查找定位一个打印服务对象。

2、需要开始一个打印工作。

这也有几种实现方法:

在jdk1.4之前可以通过java.awt.print.PrintJob(jdk1.1提供的,现在已经很少用了)调用print或printAll方法开始打印工作;

也可以通过java.awt.print.PrinterJob的printDialog显示打印对话框,然后通过批print方法开始打印;

在jdk1.4中则可以通过javax.print.ServiceUI的printDialog显示打印对话框,然后调用print方法开始一个打印工作。

设置打印属性

使用如下方法可以获得PrintJob的实例用于控制打印操作:

Toolkit.getPrintJob(Frame f, String jobtitle, Properties prop)

那么对于打印属性的设置可以通过对prop的属性设置来实现,打印属性包括:

awt.print.destination: 可以是"printer"或"file"

awt.print.printer: 打印机名

awt.print.fileName: 打印文件名

awt.print.numCopies: 打印份数

awt.print.options: 打印命令的打印选项

awt.print.orientation: 打印方向,可以是"portrait"或"landscape"

awt.print.paperSize: 纸张大小,可以是"letter","legal","executive"或"a4"

首先获得一个PrintJob对象p,p使用getGraphics()方法获得一个Graphics对象g,这时:

一、如果一个容器调用方法:

paintAll(g); //将打印出该容器及其子组件(添加到该容器中的组件);

pain(g); //将打印出该容器本身,不打印子组件。

二、如果一个非容器组件调用方法:

paintAll(g); //将打印出组件及其组件中的内容,如按钮的名字、文本框中的文字等。

pain(g); //将打印出该组件本身的形状,但不打印组件上的其他信息(如文字图形等)。

三、为避免后面的内容覆盖前面的内容,可改变组件在打印页中的打印位置

按钮_1.paintAll(g);

g.translate(78,0); //在打印页的(78,0)坐标处开始打印按钮_2

按钮_2.paintAll(g);

四、PrintJob是Java.awt中的一个抽象类,不能直接用它创建对象,可通过Toolkit获得:

PrintJob p=null;

Graphics g=null;

p=getToolkit().getPrintJob(this,"OK",null);

g=p.getGraphics();

....

g.dispose();

p.end();

1 .前言

在我们的实际工作中,经常需要实现打印功能。但由于历史原因,Java提供的打印功能一直都比较弱。实际上最初的jdk根本不支持打印,直到 jdk1.1才引入了很轻量的打印支持。所以,在以前用Java/Applet/JSP/Servlet设计的程序中,较复杂的打印都是通过调用 ActiveX/OCX控件或者VB/VC程序来实现的,非常麻烦。实际上,SUN公司也一直致力于Java打印功能的完善,而Java2平台则终于有了一个健壮的打印模式的开端,该打印模式与Java2D图形包充分结合成一体。更令人鼓舞的是,新发布的jdk1.4则提供了一套完整的"Java 打印服务 API" (Java Print Service API),它对已有的打印功能是积极的补充。利用它,我们可以实现大部分实际应用需求,包括打印文字、图形、文件及打印预览等等。本文将通过一个具体的程序实例来说明如何设计Java打印程序以实现这些功能,并对不同版本的实现方法进行分析比较。希望大家能从中获取一些有益的提示。

2 .Java中的打印

2.1 Java的打印API

Java 的打印API主要存在于java.awt.print包中。而jdk1.4新增的类则主要存在于javax.print 包及其相应的子包 javax.print.event和javax.print.attribute中。其中javax.print包中主要包含打印服务的相关类,而 javax.print.event则包含打印事件的相关定义,

javax.print.attribute则包括打印服务的可用属性列表等。

2.2 如何实现打印

要产生一个打印,至少需要考虑两条:

需要一个打印服务对象。这可通过三种方式实现:在jdk1.4之前的版本,必须要实现

java.awt.print.Printable接口或通过 Toolkit.getDefaultToolkit().getPrintJob来获取打印服务对象;在jdk1.4中则还可以通过 javax.print.PrintSerivceLookup来查找定位一个打印服务对象。

需要开始一个打印工作。这也有几种实现方法:在 jdk1.4之前可以通过java.awt.print.PrintJob (jdk1.1提供的,现在已经很少用了)调用print或printAll方法开始打印工作;也可以通过java.awt.print.PrinterJob的printDialog显示打印对话框,然后通过print方法开始打印;在jdk1.4中则可以通过javax.print.ServiceUI的printDialog显示打印对话框,然后调用print方法开始一个打印工作。

2.3 打印机对话框

2.3.1 Printable的打印对话框

开始打印工作之前,可以通过PrinterJob.printDialog来显示一个打印对话框。它给用户一个机会以选择应该打印的页码范围,并可供用户改变打印设置。它是一个本地对话框。

相关文档
最新文档