웹 인쇄 의 다른 방법 선택 하 다 wfmazhenhai 의 Blog 키워드 웹 인쇄 의 다른 방법 출처 B/S 방식 으로 응용 을 한 적 이 있 는 사람들 은 이런 문 제 를 만 날 수 있 고 보고서 인쇄 를 어떻게 편리 하고 아름 답 게 실현 할 수 있 을 것 이 라 고 믿 습 니 다.브 라 우 저의 인쇄 메뉴 를 사용 하여 인쇄 하면 웹 페이지 의 쓸모없는 것들 을 보고서 에 작성 합 니 다.예 를 들 어 응용 메뉴 등 입 니 다.인쇄 메뉴 를 선택 하여 웹 페이지 를 인쇄 하면 웹 페이지 의 모든 내용 을 인쇄 할 것 입 니 다.프레임 이 있 으 면 인쇄 내용 은 각 프레임 의 내용 을 포함 하고 실제 원 하 는 내용 은 그 중의 일부분 입 니 다.그래서 많은 응용 프로그램 들 이 인쇄 기능 을 백 엔 드 에 두 고 완성 할 수 밖 에 없다.이런 상황 에 대하 여 우 리 는 어떻게 해 야 합 니까?사실 웹 페이지 인쇄 기능 을 실현 하 는 여러 가지 방법 이 있다.하나의 방법 은 Crystal 과 같은 전문 적 인 인쇄 도 구 를 사용 하 는 것 이다. Reports(수정 보고서).Visual 사용 해 봤 어 요. Studio 5.0 의 친 구 는 이 도 구 를 기억 할 것 이다.그러나 그때 의 버 전 은 4 대 몇 개 였 다.현재 의 최신 버 전 은 이미 9 에 이 르 렀 으 며,최근 몇 버 전의 수정 보고 서 는 모두 WEB 인쇄 를 지원 한다.가장 쉬 운 방법 은 먼저 수정 보고서 로 템 플 릿 을 만 든 다음 에 ASP 테이프 파 라 메 터 를 사용 하여 만 든 템 플 릿 을 호출 하면 된다.수정 보고 서 는 웹 페이지 에 보고 서 를 생 성 한 후에 직접 인쇄 할 수도 있 고 엑셀 파일 과 같은 다른 비교 통 과 된 파일 로 저장 할 수도 있다.수정 보고 서 를 사용 하면 매우 아름 다운 스타일 을 만 들 수 있 습 니 다.관건 은 수정 보고서 의 개발 능력 에 있 지만 수정 보고서 의 가격 이 비교적 높 기 때문에 프로젝트 가 돈 을 많이 벌 때 만 살 수 있 습 니 다.두 번 째 방법 은 제3자 의 인터넷 인쇄 컨트롤 을 구 매 하 는 것 이다.비용 은 수정 보고서 에 비해 저렴 하지만 효과 성능 이 어떤 지 는 어 진 사람 이 어 진 것 을 볼 수 있다.세 번 째 방법 은 스타일 시트 와 자바 스 크 립 트 사용자 정의 함 수 를 이용 하여 이 루어 지 는 것 입 니 다.스타일 시트 와 자바 스 크 립 트 를 통 해 웹 페이지 인쇄 를 실현 하고 효과 도 괜 찮 습 니 다.여기 실례 가 하나 있 습 니 다.여러분 보 세 요.다음은 인쇄 함수 에 대한 상세 한 설명 입 니 다. <script language="JavaScript" type="text/JavaScript"> <!-- function DP() { if (window.print) { var Div1 = document.all.Div1.innerHTML; var Div2 = document.all.Div2.innerHTML; // ***************************************************** // Div1,Div2 는 인쇄 된 영역 에 있 습 니 다./ 인쇄 할 내용 에 따라 원 디 스 플레이 페이지 에서// <div id=Div1>Div1....</div><div id=Div2>Div2...</div> // 표시 가 나 오 면 인쇄 할 항목 이 있 는 만큼 표시 합 니 다// ***************************************************** var css = '<style type="text/css" media=all>' + 'p { line-height: 120%}' + '.ftitle { line-height: 120%; font-size: 18px; color: #000000}' + 'td { font-size: 10px; color: #000000}' + '</style>' ; // ***************************************************** // 인쇄 용 CSS 를 정의 합 니 다.구체 적 으로 어떤 형식 을 인쇄 하고 싶 은 지 는 당신 자신 에 게 달 려 있 습 니 다// 이 페이지 와 일치 하지 않 는 것 이 있 으 면 인쇄// 나 오 는 페이지 는 웹 페이지 형식,글꼴 과 다 를 수 있 습 니 다// ***************************************************** var body ='<table width="640" border="0" cellspacing="0" cellpadding="5">' + ' <tr> ' + ' <td class="fbody"> ' + ' <div align="center" class=ftitle>' + Div1 + '</div>' + Div2 + ' </td>' + ' </tr>' + '</table>'; // ****************************************************** // 인쇄 형식 을 다시 설정 합 니 다.인쇄 요구 에 따라 원래 표 시 된// 홈 페이지 의 DIV 내용 을 재 구성 하면 원래 표 의 내용 에 따라//를 지 울 수 있 습 니 다. 인쇄 하지 마 세 요.아래 에 정 의 된 noprint 는 때 리 고 싶 지 않 은 것 을 무시 할 수 있 습 니 다// 인쇄 할 것 은 인쇄 할 내용 만 호출 하지만 무시 되 는 곳 은// 인쇄 가 비어 서 그다지 아름 답지 않다.표 의 너 비 는 인쇄 된 종이 너비 와 일치 해 야 합 니 다./ ****************************************************** document.body.innerHTML = '<center>' + css + body + '</center>'; // ****************************************************** // document.body 를 다시 설정 하고 문서 인쇄 준비 완료// ****************************************************** window.print(); window.history.go(0); // ****************************************************** // 인쇄 명령 을 호출 하여 현재 창 내용 을 인쇄 합 니 다.인쇄 할 때 사실은 새// 홈 페이지 를 만 들 었 지만 홈 페이지 파일 은 그대로 입 니 다.바로 호출// window.history.go(0),인쇄 전 페이지 로 돌아 가면 효과 가 상당히 나 쁘 지 않 습 니 다// ****************************************************** } } --> </script> <style> @media print { .noprint {display:none} } </style> <!--//.noprint noprint 를 정의 합 니 다.인쇄 할 필요 가 없 는 곳 에 추가 합 니 다. class="noprint"후 window.print()로 인쇄 하면 무시 합 니 다-> 자,모든 것 이 준비 되 었 습 니 다.지금 해 야 할 일 은 DP 함 수 를 호출 하 는 것 입 니 다.만약 에 호출 단 추 를 같은 웹 페이지 에 디자인 하면 바로 호출 하면 됩 니 다.프레임 을 나 누 는 방법 을 사용 했다 면 호출 단 추 는 다른 웹 페이지 에 있 습 니 다.DP 함수 의 첫 줄 에 window.focus()명령 을 추가 합 니 다.그렇지 않 으 면 버튼 이 있 는 웹 페이지 만 인쇄 합 니 다. 네 번 째 방법 은 실현 은 교묘 한 방법 이다.마찬가지 로 window.print()를 호출 하여 인쇄 할 내용 만 웹 페이지 를 만 들 고 인쇄 단 추 는 다른 프레임 에 있 습 니 다.보고서 웹 페이지 가 mainFrame 에 있다 고 가정 하고 단 추 는 topFrame 에 있 으 며 단 추 는 PrintReports()함 수 를 호출 합 니 다.PrintReports()함 수 는 다음 과 같 으 면 인쇄 작업 을 실현 할 수 있 습 니 다.function PrintReports() //topFrame 웹 페이지 의 함수{try// ******************************************************* // 오류 처리,mainFrame 에 있 는 웹 페이지 에 DP 함수 가 없 으 면 인쇄 하지 않 습 니 다// ******************************************************* { window.parent.frames("mainFrame").DP(); } catch(e) { alert("no object to print!"); } } function DP() // mainFrame 웹 페이지 의 함수 { window.focus(); if (window.print) { window.print(); } } 나 는 개인 적 으로 이것 이 가장 편리 한 방법 이 라 고 생각한다.마지막 으로 IE 브 라 우 저의'파일-페이지 설정'의'머 릿 말,머 릿 말'설정 을 제거 하면 효과 가 더욱 좋 습 니 다.(옮 겨 싣다