首先,来看看效果。如下图:
代码如下: PrintTest.java import java.awt.BasicStroke; import java.awt.Color; import java.awt.Font; import java.awt.Graphics; import java.awt.Graphics2D; import java.awt.print.Book; import java.awt.print.PageFormat; import java.awt.print.Paper; import java.awt.print.Printable; import java.awt.print.PrinterException; import java.awt.print.PrinterJob; import java.text.SimpleDateFormat; import java.util.Date; import jp.co.snjp.model.RentDetail; import jp.co.snjp.parameter.RentRecordParameter; public class PrintTest implements Printable { private String roomID; private Date printDate; private Integer rentType; private Float waterFee; private Float electricityFee; private Float rent; private String remark; private static int RECEIPT_NO =0; public PrintTest() { } public PrintTest printTest; public PrintTest(RentRecordParameter prentRecord,RentDetail prentDetail) { this.roomID = prentRecord.getRoomId()+"房间"; this.printDate = prentRecord.getRegisterDate(); this.rentType = prentRecord.getRentType(); this.waterFee = prentDetail.getWaterBill(); this.electricityFee = prentDetail.getElectricityBill(); this.rent = prentDetail.getRent(); this.remark = prentDetail.getRemark(); } /** */ /** * @param Graphic指明打印的图形环境 * @param PageFormat指明打印页格式(页面大小以点为计量单位,1点为1英才的1/72,1英寸为25.4毫米。A4纸大致为595×842点) * @param pageIndex指明页号 **/ public int print(Graphics graphics, PageFormat pf, int pageIndex) throws PrinterException { //print string String receiptTitle = "收款收据"; String content1="今收到"; String feeItem = null; Float rentTotal = 0f; String content2="总计人民币(大写)"; //收款的内容(根据租赁类型,只有"房租","房租,水费,电费"两种值). switch(this.rentType) { case 1: feeItem = "房租,押金"; rentTotal=this.rent; break; case 2: feeItem = "房租,押金,水费,电费"; rentTotal=this.rent+this.electricityFee+this.waterFee; break; default: feeItem = "未知收费项目"; } //转换成Graphics2D Graphics2D graphics2D = (Graphics2D) graphics; //设置打印颜色为黑色 graphics2D.setColor(Color.black); //打印起点坐标x=10 double x = pf.getImageableX(); double y = pf.getImageableY(); System.out.println("打印起点坐标值是{"+x+","+y+"}。"); switch (pageIndex) { case 0: //设置打印字体(字体名称、样式和点大小)(字体名称可以是物理或者逻辑名称) //Java平台所定义的五种字体系列:Serif、SansSerif、Monospaced、Dialog 和 DialogInput Font font = new Font("新宋体", Font.TRUETYPE_FONT, 9); graphics2D.setFont(font);//设置字体 BasicStroke basicStroke=new BasicStroke(0.5f); float[] dash1 = { 2.0f }; //设置打印线的属性。 //1.线宽; 2.;3.;4空白的宽度;5.虚线的宽度;6.偏移量 // graphics2D.setStroke(new BasicStroke(0.5f, // BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER, // 2.0f, dash1, 0.0f));(责任编辑:admin) |
