![Java實(shí)現(xiàn)打印功能_第1頁](http://file4.renrendoc.com/view/1809a570f1b424995dc33fb8fcc0a4be/1809a570f1b424995dc33fb8fcc0a4be1.gif)
![Java實(shí)現(xiàn)打印功能_第2頁](http://file4.renrendoc.com/view/1809a570f1b424995dc33fb8fcc0a4be/1809a570f1b424995dc33fb8fcc0a4be2.gif)
![Java實(shí)現(xiàn)打印功能_第3頁](http://file4.renrendoc.com/view/1809a570f1b424995dc33fb8fcc0a4be/1809a570f1b424995dc33fb8fcc0a4be3.gif)
![Java實(shí)現(xiàn)打印功能_第4頁](http://file4.renrendoc.com/view/1809a570f1b424995dc33fb8fcc0a4be/1809a570f1b424995dc33fb8fcc0a4be4.gif)
![Java實(shí)現(xiàn)打印功能_第5頁](http://file4.renrendoc.com/view/1809a570f1b424995dc33fb8fcc0a4be/1809a570f1b424995dc33fb8fcc0a4be5.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、-. z.Java實(shí)現(xiàn)打印功能用java實(shí)現(xiàn)打印,java.awt中提供了一些打印的API,要實(shí)現(xiàn)打印,首先要獲得打印對象,然后繼承Printable實(shí)現(xiàn)接口方法print,以便打印機(jī)進(jìn)展打印,最后用用Graphics2D直接輸出直接輸出。下面代碼實(shí)現(xià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*指明頁號*/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平臺所定義的五種字體系列: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);/獲取打印效勞對象PrinterJobjob=
10、PrinterJob.getPrinterJob();/設(shè)置打印類job.setPageable(book);try/可以用printDialog顯示打印對話框,在用戶確認(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*指明頁號*/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平臺所定義的五種字體系列: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等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 《低碳生活在路上》課件
- 北京叉車維修合同范例
- 勞務(wù)居間費(fèi)合同范本
- 兔飼養(yǎng)產(chǎn)業(yè)升級與技術(shù)創(chuàng)新考核試卷
- 提高電極材料循環(huán)穩(wěn)定性的策略考核試卷
- 企業(yè)蔬菜供應(yīng)合同范本
- 東風(fēng)股合同范本
- 加工生產(chǎn)模具合同范例
- 光纜行業(yè)政策動(dòng)態(tài)與市場趨勢分析考核試卷
- pp管運(yùn)輸合同范本
- 中國電信互聯(lián)網(wǎng)+酒店解決方案
- 《信息科技》學(xué)科新課標(biāo)《義務(wù)教育信息科技課程標(biāo)準(zhǔn)(2022年版)》
- 《語用學(xué)之指示語》課件
- 《對折剪紙》課件
- 小學(xué)數(shù)學(xué)人教版六年級上冊分?jǐn)?shù)混合運(yùn)算練習(xí)題
- 培訓(xùn)學(xué)校 組織架構(gòu)及部門崗位職責(zé)
- 調(diào)車作業(yè)-調(diào)車概述(鐵路行車組織)
- 【住院患者跌倒或墜床預(yù)防護(hù)理措施研究國內(nèi)外文獻(xiàn)綜述3300字】
- 2023施工項(xiàng)目部標(biāo)準(zhǔn)化工作手冊
- 酒店員工招聘與面試技巧培訓(xùn)課件
- 技術(shù)服務(wù)合同-英文版模板
評論
0/150
提交評論