




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、-. z.Java實(shí)現(xiàn)打印功能用java實(shí)現(xiàn)打印,java.awt中提供了一些打印的API,要實(shí)現(xiàn)打印,首先要獲得打印對(duì)象,然后繼承Printable實(shí)現(xiàn)接口方法print,以便打印機(jī)進(jìn)展打印,最后用用Graphics2D直接輸出直接輸出。下面代碼實(shí)現(xiàn)了簡(jiǎn)單的打印功能:importjava.awt.BasicStroke;importjava.awt.Color;importjava.awt.ponent;importjava.awt.Font;importjava.awt.Graphics;importjava.awt.Graphics2D;importjava.awt.Image;impo
2、rtjava.awt.Toolkit;importjava.awt.RenderingHints;importjava.awt.font.FontRenderConte*t;importjava.awt.font.LineBreakMeasurer;importjava.awt.font.Te*tAttribute;importjava.awt.font.Te*tLayout;importjava.awt.geom.Point2D;importjava.awt.image.BufferedImage;importjava.awt.print.Book;importjava.awt.print.
3、PageFormat;importjava.awt.print.Paper;importjava.awt.print.Printable;importjava.awt.print.PrinterE*ception;importjava.awt.print.PrinterJob;importjava.te*t.AttributedString;importjava*.swing.JApplet;publicclassPrintTestimplementsPrintable/*paramGraphic指明打印的圖形環(huán)境*paramPageFormat指明打印頁格式頁面大小以點(diǎn)為計(jì)量單位,1點(diǎn)為1英
4、才的1/72,1英寸為25.4毫米。A4紙大致為595842點(diǎn)*parampageInde*指明頁號(hào)*/publicintprint(Graphicsgra,PageFormatpf,intpageInde*)throwsPrinterE*ceptionSystem.out.println(pageInde*=+pageInde*);ponentc=null;/printstringStringstr=中華民族是勤勞、勇敢和富有智慧的偉大民族。;/轉(zhuǎn)換成Graphics2DGraphics2Dg2=(Graphics2D)gra;/設(shè)置打印顏色為黑色g2.setColor(Color.blac
5、k);/打印起點(diǎn)坐標(biāo)double*=pf.getImageable*();doubley=pf.getImageableY();switch(pageInde*)case0:/設(shè)置打印字體字體名稱、樣式和點(diǎn)大小字體名稱可以是物理或者邏輯名稱/Java平臺(tái)所定義的五種字體系列:Serif、SansSerif、Monospaced、Dialog和DialogInputFontfont=newFont(新宋體,Font.PLAIN,9);g2.setFont(font);/設(shè)置字體/BasicStrokebs_3=newBasicStroke(0.5f);floatdash1=2.0f;/設(shè)置打印線
6、的屬性。/1.線寬2、3、不知道,4、空白的寬度,5、虛線的寬度,6、偏移量g2.setStroke(newBasicStroke(0.5f,BasicStroke.CAP_BUTT,BasicStroke.JOIN_MITER,2.0f,dash1,0.0f);/g2.setStroke(bs_3);/設(shè)置線寬floatheigth=font.getSize2D();/字體高度System.out.println(*=+*);/-1-用Graphics2D直接輸出/首字符的基線(右下部)位于用戶空間中的(*,y)位置處/g2.drawLine(10,10,200,300);Imagesrc=
7、Toolkit.getDefaultToolkit().getImage(D:EclipseWorkSpace3.1Kfc-wu*iWebRootimageKFC.jpg);g2.drawImage(src,(int)*,(int)y,c);intimg_Height=src.getHeight(c);intimg_width=src.getWidth(c);/System.out.println(img_Height=+img_Height+img_width=+img_width);g2.drawString(str,(float)*,(float)y+1*heigth+img_Heigh
8、t);g2.drawLine(int)*,(int)(y+1*heigth+img_Height+10),(int)*+200,(int)(y+1*heigth+img_Height+10);g2.drawImage(src,(int)*,(int)(y+1*heigth+img_Height+11),c);returnPAGE_E*ISTS;default:returnNO_SUCH_PAGE;publicstaticvoidmain(Stringargs)/通俗理解就是書、文檔Bookbook=newBook();/設(shè)置成豎打PageFormatpf=newPageFormat();pf.
9、setOrientation(PageFormat.PORTRAIT);/通過Paper設(shè)置頁面的空白邊距和可打印區(qū)域。必須與實(shí)際打印紙大小相符。Paperp=newPaper();p.setSize(590,840);/紙大小p.setImageableArea(10,10,590,840);/A4(595*842)設(shè)置打印區(qū)域,其實(shí)0,0應(yīng)該是72,72,因?yàn)锳4紙的默認(rèn)*,Y邊距是72pf.setPaper(p);/把PageFormat和Printable添加到書中,組成一個(gè)頁面book.append(newPrintTest(),pf);/獲取打印效勞對(duì)象PrinterJobjob=
10、PrinterJob.getPrinterJob();/設(shè)置打印類job.setPageable(book);try/可以用printDialog顯示打印對(duì)話框,在用戶確認(rèn)后打?。灰部梢灾苯哟蛴?booleana=job.printDialog();/if(a)/job.print();/catch(PrinterE*ceptione)e.printStackTrace();這個(gè)例子實(shí)現(xiàn)了打印字符串,線包括虛線和打印圖片。而且通過Paper的setImageableArea可以設(shè)置打印的區(qū)域和邊距,讓開發(fā)者隨意的設(shè)置打印的位置。下面的打印代碼沒有設(shè)置打印區(qū)域,默認(rèn)為打印紙的區(qū)域和邊距,比方我們
11、一般用的A4紙,打印的起點(diǎn)*和Y坐標(biāo)則是72,72。無區(qū)域設(shè)置的代碼:importjava.awt.BasicStroke;importjava.awt.Color;importjava.awt.ponent;importjava.awt.Font;importjava.awt.Graphics;importjava.awt.Graphics2D;importjava.awt.Image;importjava.awt.Toolkit;importjava.awt.RenderingHints;importjava.awt.font.FontRenderConte*t;importjava.aw
12、t.font.LineBreakMeasurer;importjava.awt.font.Te*tAttribute;importjava.awt.font.Te*tLayout;importjava.awt.geom.Point2D;importjava.awt.image.BufferedImage;importjava.awt.print.Book;importjava.awt.print.PageFormat;importjava.awt.print.Paper;importjava.awt.print.Printable;importjava.awt.print.PrinterE*c
13、eption;importjava.awt.print.PrinterJob;importjava.te*t.AttributedString;importjava*.swing.JApplet;publicclassPrintTest1implementsPrintable/*paramGraphic指明打印的圖形環(huán)境*paramPageFormat指明打印頁格式頁面大小以點(diǎn)為計(jì)量單位,1點(diǎn)為1英才的1/72,1英寸為25.4毫米。A4紙大致為595842點(diǎn)*parampageInde*指明頁號(hào)*/publicintprint(Graphicsgra,PageFormatpf,intpage
14、Inde*)throwsPrinterE*ceptionSystem.out.println(pageInde*=+pageInde*);ponentc=null;/printstringStringstr=中華民族是勤勞、勇敢和富有智慧的偉大民族。;/轉(zhuǎn)換成Graphics2DGraphics2Dg2=(Graphics2D)gra;/設(shè)置打印顏色為黑色g2.setColor(Color.black);/*Paperpaper=pf.getPaper();/得到頁面格式的紙paper.setSize(500,500);/紙大小paper.setImageableArea(0,0,500,50
15、0);/設(shè)置打印區(qū)域的大小System.out.println(paper.getWidth();System.out.println(paper.getHeight();pf.setPaper(paper);/將該紙作為格式*/打印起點(diǎn)坐標(biāo)double*=pf.getImageable*();doubley=pf.getImageableY();switch(pageInde*)case0:/設(shè)置打印字體字體名稱、樣式和點(diǎn)大小字體名稱可以是物理或者邏輯名稱/Java平臺(tái)所定義的五種字體系列:Serif、SansSerif、Monospaced、Dialog和DialogInputFontfo
16、nt=newFont(新宋體,Font.PLAIN,9);g2.setFont(font);/設(shè)置字體/BasicStrokebs_3=newBasicStroke(0.5f);floatdash1=4.0f;g2.setStroke(newBasicStroke(0.5f,BasicStroke.CAP_BUTT,BasicStroke.JOIN_MITER,4.0f,dash1,0.0f);floatheigth=font.getSize2D();/字體高度System.out.println(*=+*);/使用抗鋸齒模式完成文本呈現(xiàn)/*g2.setRenderingHint(Render
17、ingHints.KEY_TE*T_ANTIALIASING,RenderingHints.VALUE_TE*T_ANTIALIAS_ON);*/-1-用Graphics2D直接輸出/首字符的基線(右下部)位于用戶空間中的(*,y)位置處/g2.drawLine(10,10,200,10);Imagesrc=Toolkit.getDefaultToolkit().getImage(d:/logo.gif);g2.drawImage(src,(int)*,(int)y,c);intimg_Height=src.getHeight(c);intimg_width=src.getWidth(c);/
18、System.out.println(img_Height=+img_Height+img_width=+img_width);g2.drawString(str,(float)*,(float)y+1*heigth+img_Height);g2.drawLine(int)*,(int)(y+1*heigth+img_Height+10),(int)*+200,(int)(y+1*heigth+img_Height+10);g2.drawImage(src,(int)*,(int)(y+1*heigth+img_Height+11),c);/-2-直接構(gòu)造Te*tLayout打印/*FontRenderConte*tfrc=g2.getFontRenderConte*t();Te*tLayoutlayout=newTe*tLayout(str,font,frc);layout.draw(g2,(float)*,(float)y+2*heigth);*/-3-用LineBreakMeasurer進(jìn)展打印/*AttributedStringte*t=newAttributedString(str);te*t.addAttribute(Te*tAttribute.FONT,font);LineBreakMeasurerlineBreaker=newL
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 參加《小學(xué)語文教材備課會(huì)》培訓(xùn)總結(jié)
- 福建省南平市劍津片區(qū)2023-2024學(xué)年中考適應(yīng)性考試數(shù)學(xué)試題含解析
- (總結(jié)范稿)之2025年大學(xué)思想道德考核表個(gè)人總結(jié)模版
- 電商供應(yīng)鏈金融服務(wù)創(chuàng)新與風(fēng)險(xiǎn)防范機(jī)制研究報(bào)告
- 區(qū)塊鏈與醫(yī)療信息共享的未來之路
- 以創(chuàng)新驅(qū)動(dòng)未來-探索現(xiàn)代企業(yè)如何利用新技術(shù)進(jìn)行轉(zhuǎn)型升級(jí)
- 從項(xiàng)目到平臺(tái)-論區(qū)塊鏈如何加強(qiáng)慈善事業(yè)的透明度
- 工程管理個(gè)人工作總結(jié)模版
- 公司員工個(gè)人年終總結(jié)模版
- 醫(yī)共體模式下患者教育的創(chuàng)新與挑戰(zhàn)
- 馬家河金礦選礦試驗(yàn)報(bào)告
- 貨物采購服務(wù)方案
- 園林綠化工程監(jiān)理實(shí)施細(xì)則(完整版)
- 圖紙答疑格式
- DB11-T 1322.64-2019 安全生產(chǎn)等級(jí)評(píng)定技術(shù)規(guī)范 第64部分:城鎮(zhèn)供水廠
- 《普通生物學(xué)教案》word版
- 2017年最新普速鐵路接觸網(wǎng)運(yùn)行維修規(guī)則
- FZ∕T 64085-2021 非織造用纖維網(wǎng)簾
- 部編版小學(xué)五年級(jí)下冊(cè)語文說明科普類10篇閱讀試題(帶答案)
- (完整word版)西南財(cái)經(jīng)大學(xué)管理學(xué)考博真題考點(diǎn)匯總和復(fù)習(xí)框架總結(jié),推薦文檔
- 崗位標(biāo)準(zhǔn)作業(yè)程序編制指南
評(píng)論
0/150
提交評(píng)論