首先 來看看效果 如下圖

為吉林等地區用戶提供了全套網頁設計制作服務,及吉林網站建設行業解決方案。主營業務為成都網站制作、做網站、吉林網站設計,以傳統方式定制建設網站,并提供域名空間備案等一條龍服務,秉承以專業、用心的態度為用戶提供真誠的服務。我們深信只要達到每一位用戶的要求,就會得到認可,從而選擇與我們長期合作。這樣,我們也可以走得更遠!
代碼如下
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 :
//設置打印字體(字體名稱 樣式和點大?。ㄗ煮w名稱可以是物理或者邏輯名稱)
//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
可以的,我說說大概思路,很簡單,你自己具體實現吧,把代碼寫給你沒意義的:
1.將你這段字符串輸出到一個文件里,用Java類文件的方式命名。
2.調用外部javac命令將該文件編譯。
3.用類加載器(ClassLoad)動態加載新的class文件并用Class.forName()注冊該類,然后就可以正常使用了。
上面的每一步都能在baidu中找到實現方法,自己發揮吧。
下面有幾種方法:
方法一:生成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 代碼生成器 開源
                
                當前路徑:http://www.yijiale78.com/article26/ddjgejg.html
            
成都網站建設公司_創新互聯,為您提供全網營銷推廣、域名注冊、網站維護、定制開發、微信小程序、營銷型網站建設
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯