Java实现打印功能教程文件
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
J a v a实现打印功能
Java实现打印功能
用java实现打印,java.awt中提供了一些打印的API,要实现打印,首先要获得打印对象,然后继承Printable实现接口方法print,以便打印机进行打印,最后用用Graphics2D直接输出直接输出。
下面代码实现了简单的打印功能:
import java.awt.BasicStroke;
import java.awt.Color;
import ponent;
import java.awt.Font; import java.awt.Graphics; import java.awt.Graphics2D;
import java.awt.Image; import java.awt.Toolkit;
import java.awt.RenderingHin ts;
import java.awt.font.FontRen derContext;
import java.awt.font.LineBre akMeasurer;
import java.awt.font.TextAtt ribute;
import java.awt.font.TextLay out;
import java.awt.geom.Point2D;
import java.awt.image.Buffer edImage;
import java.awt.print.Book;
import java.awt.print.PageFo rmat;
import java.awt.print.Paper;
import java.awt.print.Printa ble;
import java.awt.print.Printe rException;
import java.awt.print.Printe rJob;
import java.text.AttributedS tring;
import javax.swing.JApplet;
public class PrintTest implements Printable{
/**
* @param Graphic指明打印的图形环境
* @param PageFormat
指明打印页格式(页面大小以点为计量单位,1点为1英才的1/72,1英寸为25.4毫米。A4纸大致为595×842点)
* @param pageIndex指明页号
**/
public int print(Grap
hics gra, PageFormat pf, int pageIndex) throws PrinterExceptio n {
System.out.prin tln("pageIndex="+pageIndex);
Component c = null;
//print string
String str = "中华民族是勤劳、勇敢和富有智慧的伟大民族。";
//转换成Graphics2D
Graphics2D g2 = (Graphics2D) gra;
//设置打印颜色为黑色
g2.setColor(Color .black);
//打印起点坐标
double x = pf. getImageableX();
double y = pf. getImageableY();
switch(pageIndex) {
case0:
//设置打印字体(字体名称、样式和点大小)(字体名称可以是物理或者逻辑名称)
//Java
平台所定义的五种字体系列:Serif、SansSerif、Monospaced、
Dialog 和DialogInput
Font f ont = new Font("新宋体", Font.PLAIN, 9);
g2.setF ont(font);//设置字体
//Basic Stroke bs_3=new BasicStroke(0.5f);
float[] dash1 = {2.0f};
//设置打印线的属性。
//1.线宽2、3、不知道,4、空白的宽度,5、虚线的宽度,6、偏移量
g2.setS
troke(new BasicStroke(0.5f, BasicStroke.CAP_BUTT, Basi cStroke.JOIN_MITER, 2.0f, dash1, 0.0f));
//g2.se tStroke(bs_3);//设置线宽
float heigth = font.getSize2D();//字体高度
System. out.println("x="+x);
// -1-用Graphics2D直接输出
//首字符的基线(右下部)位于用户空间中的(x, y) 位置处
//g2.dr awLine(10,10,200,300);
Image
src = Toolkit.getDefaultToolkit().getImage("D:\\EclipseWorkSpace3.1 \\Kfc-wuxi\\WebRoot\\image\\KFC.jpg");
g2.draw Image(src,(int)x,(int)y,c);
int im g_Height=src.getHeight(c);