기금넷 공식사이트 - 복권 조회 - 자바는 어떻게 인쇄 기능을 구현합니까?

자바는 어떻게 인쇄 기능을 구현합니까?

Print. Java- 컨텐츠 정의를 인쇄합니다

[코드]

Java.awt. *;

Java.awt.event. *;

Java.awt.print. *;

Java.awt.image 를 가져옵니다. *;

Javax.swing. *;

Javax.swing.event 를 가져옵니다. *;

Javax.swing.border 를 가져옵니다. *;

Javax.swing.event 를 가져옵니다. *;

Java.util. *;

Java.io. *;

공용 클래스 인쇄는 인쇄 가능합니다 {

Int m _ w 페이지

Int m _ hPage

Int m _ orientation

인쇄 가능한 m _ target

Intmaxnumpage =1;

String title= "데이터 테이블 인쇄";

Font titleFont=new Font ("bold ",글꼴. 굵게,14);

부울 hasTail = true

Inttail align = 0;

Intheadalign = 0;

Inttopspace = 0;

Intleft space = 0;

Int yStart = 0;;

Intyend = 0;

Int xStart = topSpace

Intxend = 0;

Int x=0, y = 0;;

String strTemp= "콘텐츠 인쇄";

Public void doPrint(){

시도 {

M _ orientation = 페이지 형식. 초상화

//인쇄 개체 및 기본 용지를 설정합니다.

Printerjobprnjob = printerjob.getprinterjob ();

Pageformat pageformat = prnjob.defaultpage ();

Pageformat.set orientation (m _ orientation);

M _ w page = (int) (pageformat.getwidth ());

M _ hpage = (int) (pageformat.getheight ());

//기본 용지 설정에 따라 인쇄할 양식을 인쇄 개체에 전달합니다.

PrnJob.setPrintable(this, 페이지 형식);

만약 (! PrnJob.printDialog ()) 가 반환됩니다.

Prnjob.print ();

}catch(PrinterException ex){

Ex.printstacktrace ();

System.err.println ("인쇄 오류:"+ex.tostring ());

}

}

/* *

* 초기화 인쇄 매개 변수

*/

Public void initPrintParameter ()

{

}

/* *

* 프린터에서 인쇄할 인쇄 내용을 구성합니다.

*/

공용 int print (그래픽 pg, 페이지 형식 페이지 형식,

Int pageIndex) 는 PrinterException {

//인쇄 매개 변수 초기화

Initprintparameter ();

//캔버스를 페이지 크기로 설정

Pg.translate ((int) pageformat.getimageablex (),

(int) pageformat.getimageabley ());

Intwpage = 0;

Inthpage = 0;

//프린터 페이지 설정에 따라 캔버스 크기를 조정합니다.

If (pageformat.getorientation () = = = pageformat. 초상화) {

W 페이지 = (int) pageformat.getimageablewidth ();

Hpage = (int) pageformat.getimageableheight ();

}

그렇지 않으면 {

W 페이지 = (int) pageformat.getimageablewidth ();

Wpage+= wpage/2;

Hpage = (int) pageformat.getimageableheight ();

Pg.setclip (0,0, w 페이지, h 페이지);

}

WPage = wPage-2 * left space;;

H 페이지 = h 페이지-2 * topspace;

XStart = leftSpace

Xend = w 페이지-2;

//캔버스 색상 및 글꼴 설정

Int y = topSpace

Pg.setfont (제목 글꼴);

Pg.setcolor (color.black);

//제목을 그리고 중심에 배치합니다.

Fontfn = pg.getfont ();

Fontmetricsfm = pg.getfontmetrics ();

Y+= fm.getascent ();

Aligntext (제목, pg, y, xStart, xEnd, headalign);

Y+= 30;

X = 왼쪽 공간+2;

Font headerFont = 새 글꼴입니다. 굵게,14);

Pg.setfont (헤더 글꼴);

Fm = pg.getfontmetrics ();

Inth = fm.getascent ();

Y start = y-1;

Y+= h;

Pg.setfont (헤더 글꼴);

Fm = pg.getfontmetrics ();

Intheader = y;

H = fm.getheight ();

//행 높이, 페이지당 행 수, 총 행 수 및 지정된 페이지 번호의 시작 및 끝 행을 계산합니다.

Int rowH=Math.max(h,10);

Inttailh = rowh+30;

Introwperpage = 0;

Intleft pix = 0;

If(hasTail){

Rowperpage = (h page-header-tailh)/rowh;

Leftpix = (h page-header-tailh)% rowh;

Yend = h page-left pix-tailh+2;

}

그렇지 않으면 {

Rowperpage = (h page-header)/rowh;

Leftpix = (h page-header)% rowh;

Yend = h 페이지-왼쪽 pix+2;

}

Pg.drawString(strTemp, x, y);

//테이블 경계 그리기

Pg.drawLine(xStart, yStart, xStart, yend);

Pg.drawLine(xStart, yStart, xEnd, ystart);

Pg.drawLine(xEnd, yStart, xEnd, yend);

Pg.drawLine(xStart, yEnd, xEnd, yend);

//페이지 번호 인쇄

If(hasTail){

Intpagenumber = pageindex+1;

Strings = "페이지"+페이지 번호+";

AlignText(s, pg, yEnd+30, xStart, xEnd, tailalign);

}

System.gc ();

PAGE _ EXISTS 를 반환합니다

}

/* *

* 텍스트 배열, y 좌표, 표시 범위 (시작-끝)

* 0 은 중심 표시, 1 은 왼쪽 정렬, 2 는 오른쪽 정렬을 나타냅니다.

*/

Private void alignText(String s, 그래픽 pg, int y, int start)

Int end, int mode){

Fontfn = pg.getfont ();

Fontmetricsfm = pg.getfontmetrics ();

Intwstring = fm.stringwidth (s);

Int x = start

스위치 (모드)

{

시나리오 0:

If (end-start-wstring) > 0) x = 시작+(끝 시작-시작)/2;

깨뜨리다

사례 1:

깨뜨리다

사례 2:

If (end-start-wstring) > 0) x = 시작+(끝 시작-시작);

깨뜨리다

}

Pg. 줄뽑기 (s, x, y);

}

공용 정적 void main(String[] args){

Print p = new print ();

P.doprint ();

}

}

[코드]

조작 방법:

& gt 자바츠 -Print.java

& gtjava 인쇄

혼자 달려라.