기금넷 공식사이트 - 복권 조회 - 자바는 어떻게 인쇄 기능을 구현합니까?
자바는 어떻게 인쇄 기능을 구현합니까?
[코드]
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 인쇄
혼자 달려라.
- 관련 기사
- 오늘 밤 출시일 20 12220 3D?
- 중청보가 개발한 게임은 무엇입니까?
- 저녁 8 시에 무슨 애니메이션을 틀어요
- 어느 돈황 영화에 이원호가 있습니까?
- 어떻게 음질을 16 비트, 44 100 HZ 로 바꿀 수 있을까요? 그들은 사운드 아이콘을 마우스 오른쪽 단추로 클릭하면 바로 그 스피커라고 말했다. 어떻게 고치나요? 차근차근 분명히 말하다.
- 인터넷 도박은 파출소에 불려 필기를 했다. 후기에는 벌금만 부과될 수 있습니까?
- 처음으로 사위에게 장모를 만나라고 요구하다.
- 웅희령의 인물 생활
- 네 개의 숫자 중 몇 개의 숫자가 있습니까?
- 별거를 꿈꾸던 남편이 새로운 애인이 생겼나요?