知识大全 用Java代码生成打印收据

Posted

篇首语:知识的领域是无限的,我们的学习也是无限期的。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 用Java代码生成打印收据相关的知识,希望对你有一定的参考价值。

用Java代码生成打印收据  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

  首先 来看看效果 如下图

  

  代码如下

  PrintTest java

  import java awt BasicStroke;

  import java awt Color;

  import java awt Font;

  import java awt Graphics;

  import java awt Graphics D;

  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 snjp model RentDetail;

  import 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 = ;

  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指明打印页格式(页面大小以点为计量单位 点为 英才的 / 英寸为 毫米 A 纸大致为 × 点)

  * @param pageIndex指明页号

  **/

  public int print(Graphics graphics PageFormat pf int pageIndex)

  throws PrinterException

  

  //print string

  String receiptTitle = 收款收据 ;

  String content = 今收到 ;

  String feeItem = null;

  Float rentTotal = f;

  String content = 总计人民币(大写) ;

  //收款的内容(根据租赁类型 只有 房租 房租 水费 电费 两种值)

  switch(this rentType)

  

  case :

  feeItem = 房租 押金 ;

  rentTotal=this rent;

  break;

  case :

  feeItem = 房租 押金 水费 电费 ;

  rentTotal=this rent+this electricityFee+this waterFee;

  break;

  default:

  feeItem = 未知收费项目 ;

  

  //转换成Graphics D

  Graphics D graphics D = (Graphics D) graphics;

  //设置打印颜色为黑色

  graphics D setColor(Color black);

  //打印起点坐标x=

  double x = pf getImageableX();

  double y = pf getImageableY();

  System out println( 打印起点坐标值是 +x+ +y+ );

  switch (pageIndex)

  

  case :

  //设置打印字体(字体名称 样式和点大小)(字体名称可以是物理或者逻辑名称)

  //Java平台所定义的五种字体系列 Serif SansSerif Monospaced Dialog 和 DialogInput

  Font font = new Font( 新宋体 Font TRUETYPE_FONT );

  graphics D setFont(font);//设置字体

  BasicStroke   basicStroke=new   BasicStroke( f);

  float[] dash = f ;

  //设置打印线的属性

  // 线宽; ; ; 空白的宽度; 虚线的宽度; 偏移量

  //                graphics D setStroke(new BasicStroke( f

  //                                BasicStroke CAP_BUTT BasicStroke JOIN_MITER

  //                                f dash f));

  //graphics D setStroke(new BasicStroke( f));

  graphics D setStroke(basicStroke);//设置线宽

  float height = font getSize D();//字体高度

  System out println( 字体高度是 +height);

  //绘制收据标题

  graphics D drawString(receiptTitle (float) y + * height);

  //绘制收据编号

  String receiptNo = String valueOf(RECEIPT_NO);

  graphics D drawString( No : +GlobalMethod get String(receiptNo ) (float)x* (float) y + * height);

  //绘制打印时间

  SimpleDateFormat myDateFormat = new SimpleDateFormat( yyyy年MM月dd日 );

  graphics D drawString(myDateFormat format(printDate) (float)x* (float) y + * height);

  //绘制收据标题下面的第一条横线

  graphics D drawLine(

  

  (int) (y + * height+ )

  

  (int) (y + * height+ )

  );

  //绘制收据标题下面的第二条横线

  graphics D drawLine(

  

  (int) (y + * height+ )

  

  (int) (y + * height+ )

  );

  //正文 ——今收到

  graphics D drawString(content (float) x* (float) y + * height);

  //收费项目名称

  graphics D drawString(this roomID+feeItem (float) x* (float) y + * height);

  //绘制正文 下划线

  graphics D drawLine(

  (int)x*

  (int) (y + * height+ )

  (int)x+

  (int) (y + * height+ )

  );

  //人民币(大写)

  graphics D drawString(content +Money NumToRMBStr(rentTotal) (float) x* (float) y + * height);

  //绘制人民币(大写)下划线

  graphics D drawLine(

  (int)x*

  (int) (y + * height+ )

  (int)x+

  (int) (y + * height+ )

  );

  //(小写)

  graphics D drawString( (小写) +rentTotal+ 元 (float) x* (float) y + * height);

  //绘制(小写)下划线

  graphics D drawLine(

  (int)x*

  (int) (y + * height+ )

  (int)x+

  (int) (y + * height+ )

  );

  //附注

  graphics D drawString( 附注: +this remark (float) x* (float) y + * height);

  //绘制附注下划线

  graphics D drawLine(

  (int)x* +

  (int) (y + * height+ )

  (int)x+

  (int) (y + * height+ )

  );

  // 签字(收款人)

  graphics D drawString( 签字(收款人) (float) x* + (float) y + * height);

  //签字(收款人)下划线

  graphics D drawLine(

  (int)x*

  (int) (y + * height+ )

  (int)x+

  (int) (y + * height+ )

  );

  return PAGE_EXISTS;

  default:

  RECEIPT_NO=RECEIPT_NO ;

  return NO_SUCH_PAGE;

  

  

  //方法调用

  public  void printReceipt(PrintTest printTest)

  //通俗理解就是书 文档

  Book book = new Book();

  //设置成竖打

  PageFormat pf = new PageFormat();

  pf setOrientation(PageFormat PORTRAIT);

  //通过Paper设置页面的空白边距和可打印区域 必须与实际打印纸张大小相符

  Paper p = new Paper();

  p setSize( );//纸张大小

  p setImageableArea( );//A ( X )设置打印区域 其实 应该是 因为A 纸的默认X Y边距是

  pf setPaper(p);

  //把 PageFormat 和 Printable 添加到书中 组成一个页面

  book append(printTest pf);

  //获取打印服务对象

  PrinterJob job = PrinterJob getPrinterJob();

  //设置打印类

  job setPageable(book);

  try

  

  //可以用printDialog显示打印对话框 在用户确认后打印 也可以直接打印

  //            boolean isShowing=job printDialog();

  //            if(isShowing)

  //           

  //              System out println(this printDate+ ************* );

  RECEIPT_NO=RECEIPT_NO+ ;

  job print();

  //           

  

  catch (PrinterException e)

  

  e printStackTrace();

  

  

  public static void main(String[] args)

  

  //    通俗理解就是书 文档

  Book book = new Book();

  //    设置成竖打

  PageFormat pf = new PageFormat();

  pf setOrientation(PageFormat PORTRAIT);

  //    通过Paper设置页面的空白边距和可打印区域 必须与实际打印纸张大小相符

  Paper p = new Paper();

  p setSize( );//纸张大小

  p setImageableArea( );//A ( X )设置打印区域 其实 应该是 因为A 纸的默认X Y边距是

  pf setPaper(p);

  //    把 PageFormat 和 Printable 添加到书中 组成一个页面

  book append(new PrintTest() pf);

  //获取打印服务对象

  PrinterJob job = PrinterJob getPrinterJob();

  // 设置打印类

  job setPageable(book);

  try

  

  //可以用printDialog显示打印对话框 在用户确认后打印 也可以直接打印

  //boolean a=job printDialog();

  //if(a)

  //

  job print();

  //

  

  catch (PrinterException e)

  

  e printStackTrace();

  

  

cha138/Article/program/Java/hx/201311/25778

相关参考

知识大全 用Java测试网络代码

用Java测试网络代码  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  网络代码被证明是很难进行完

知识大全 巧用工具 为Java程序生成代码做覆蓋统计

巧用工具为Java程序生成代码做覆蓋统计  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  曾经为大

知识大全 用Java来显示图片生成器

用Java来显示图片生成器  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  一本图片生成器具有以下

知识大全 用Java的循环实现矩阵乘法代码分享

用Java的循环实现矩阵乘法代码分享  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  public

知识大全 用Java写出一段string和stringbuffer的代码

用Java写出一段string和stringbuffer的代码  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来

知识大全 对于java的打印问题

  对于java的打印问题各种书上谈的很少我想主要原因可能是java的打印功能太弱了没有什么可介绍的最近我因为工作的关系用到了java的打印图象功能不过因为缺少可参考的例子和教材我只有查看jdk的AP

知识大全 用java生成缩略图和给图上打上公司logo

  这是我前两天写的生成图片的缩略图和给图片打上logo的java代码没有怎么整理就放上来了希望能够为大家在工作中帮点忙同时写的有什么不对的地方希望大家指点指点  importjavaawtGraph

知识大全 教您如何生成条码或打印出条码

教您如何生成条码或打印出条码一、使用专用的条码打印机如果你是在生产过程使用条码,或其他大量的使用条码标签的环境下,或者需要打印条码在某些特殊介质上,则可以使用专业的条码打印软件;整个部分组成:条码打印

知识大全 在Java程序中实现高精度打印

在Java程序中实现高精度打印  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  在Java环境中可

知识大全 Java打印程序设计全攻略

开发技巧:Java打印程序设计全攻略  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  前言  在我