.netJava Delphi PHP Python C++/C ASP CSS
返回首页
当前位置: 首页 > 编程 > Java >

用Java代码生成打印收据

时间:2010-07-19 13:08来源:虫虫技术在线收集整理 作者:虫虫编辑 点击:
首先,来看看效果。如下图: 代码如下: 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.a

 首先,来看看效果。如下图:

用java代码生成打印收据 - 任我行 - 任我行java博客

  代码如下:

  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)

顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名:密码: 验证码:点击我更换图片
推荐内容