Java 打印事务
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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来显示一个打印对话框。它给用户一个机会以选择应该打印的页码范围,并可供用户改变打印设置。它是一个本地对话框。