重庆分公司,新征程启航

为企业提供网站建设、域名注册、服务器等服务

Java生成的代码 java 代码生成器 开源

用Java代码生成打印收据

首先 来看看效果 如下图

为吉林等地区用户提供了全套网页设计制作服务,及吉林网站建设行业解决方案。主营业务为成都网站制作、做网站、吉林网站设计,以传统方式定制建设网站,并提供域名空间备案等一条龙服务,秉承以专业、用心的态度为用户提供真诚的服务。我们深信只要达到每一位用户的要求,就会得到认可,从而选择与我们长期合作。这样,我们也可以走得更远!

代码如下

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();

}

}

lishixinzhi/Article/program/Java/hx/201311/25778

Java动态生成代码

可以的,我说说大概思路,很简单,你自己具体实现吧,把代码写给你没意义的:

1.将你这段字符串输出到一个文件里,用Java类文件的方式命名。

2.调用外部javac命令将该文件编译。

3.用类加载器(ClassLoad)动态加载新的class文件并用Class.forName()注册该类,然后就可以正常使用了。

上面的每一步都能在baidu中找到实现方法,自己发挥吧。

如何查看C++和java生成的汇编代码

下面有几种方法:

方法一:生成asm文件

1)VS2005:

项目 ---》属性 ---》 配置属性 ---》 c/c++ ---》 输出文件 ---》 右边内容项:汇编输出 ---》带源代码的程序集(/FAs )。

这样在项目里面生成后缀为*.asm 的文件。里面还有注释,有利于分析。

要得到汇编代码与源代码的对应,设置选项:

2)VC6.0:

project settings:

--- C++

--- category == Listing files

---Listing file type == Assembly with source code

方法二:使用反汇编方式(推荐使用这种方法,在debug的时候使用)

1)VC6.0在进行断点调试的时候,进行以下步骤:

点击“查看”

“调试窗口”

“Disassably”

即可查看到反汇编的结果

2)VS2005在进行断点调试的时候,进行以下步骤:

点击“调试”

“窗口”

“反汇编”

查看java就直接用javap -v 类文件.class 即可。详细内容可以参考 jvm虚拟机


文章名称:Java生成的代码 java 代码生成器 开源
标题URL:http://cqcxhl.cn/article/ddjgejg.html

其他资讯

在线咨询
服务热线
服务热线:028-86922220
TOP