웹 프린팅 대체 방법 wfmazhenhai 블로그에서 선정
키워드 웹 프린팅 대체 방법
출처
B/S 방식으로 신청을 하신 분들이라면 누구나 이런 문제에 봉착하실 수 있을 것이라 생각합니다. 보고서 인쇄. 브라우저의 인쇄 메뉴를 이용하여 인쇄할 경우, 애플리케이션 메뉴 등 웹 페이지의 일부 불필요한 내용이 보고서에 인쇄됩니다. 웹 페이지를 인쇄하기 위해 인쇄 메뉴를 선택하면 웹 페이지의 모든 내용이 인쇄되기 때문입니다. 응용 프로그램에 프레임이 있는 경우 인쇄된 내용에는 각 프레임의 내용이 포함되며 실제로 원하는 내용은 그 일부일 뿐입니다. 따라서 많은 응용 프로그램은 백그라운드에서만 인쇄 기능을 완료할 수 있습니다. 이런 상황에서 우리는 어떻게 해야 합니까? 실제로 웹페이지 인쇄 기능을 구현하는 방법은 여러 가지가 있습니다.
한 가지 방법은 Crystal Reports와 같은 전문 인쇄 도구를 사용하는 것입니다. Visual Studio 5.0을 사용해본 친구들이라면 이 도구를 기억하고 있을 텐데요, 당시 버전은 4.0에 불과했습니다. 최신 버전은 이제 버전 9이며 최신 버전의 Crystal Reports는 웹 인쇄를 지원합니다. 가장 간단한 방법은 먼저 Crystal Reports를 사용하여 템플릿을 만든 다음 ASP를 사용하여 매개 변수와 함께 준비된 템플릿을 호출하는 것입니다. Crystal Reports가 웹 페이지에 보고서를 생성한 후 직접 인쇄하거나 Excel 파일과 같이 비교를 통과한 다른 파일로 전송할 수 있습니다. Crystal Reports를 사용하면 매우 아름다운 스타일을 만들 수 있습니다. 그러나 Crystal Reports의 높은 가격으로 인해 프로젝트의 수익성이 매우 높을 경우에만 감당할 수 있습니다.
두 번째 방법은 타사 온라인 인쇄 컨트롤을 구입하는 것입니다. 비용은 Crystal Reports보다 저렴하지만 효과와 성능이 다릅니다.
세 번째 방법은 스타일시트와 자바스크립트 커스텀 기능을 활용하는 것입니다. 웹 페이지 인쇄는 스타일 시트와 JavaScript를 통해 이루어지며 그 효과는 허용됩니다. 다음은 누구나 살펴볼 수 있는 예입니다. 다음은 인쇄 기능 구현에 대한 자세한 설명입니다.
OK, 모두 준비가 되었습니다. DP 함수를 호출하는 것입니다. 동일한 웹 페이지에서 호출되도록 디자인한 경우 프레임 메소드를 사용하고 호출할 버튼이 다른 페이지에 있으면 직접 호출할 수 있습니다. 웹 페이지를 선택한 다음 DP 함수에서 첫 번째 줄에 window.focus() 명령을 추가하세요. 그렇지 않으면 버튼이 있는 웹 페이지만 인쇄됩니다.
네 번째 방법인 구현은 까다로운 방법입니다. window.print()를 호출해도 마찬가지지만 인쇄하려는 내용이 특별히 웹 페이지로 생성되고 인쇄 버튼이 다른 프레임에 있습니다. 보고서 웹 페이지가 메인프레임에 있고 버튼이 topFrame에 있다고 가정합니다. 버튼은 PrintReports() 함수를 호출하여 인쇄를 수행합니다.
function PrintReports() //topFrame 웹 페이지의 함수
{
시도
//************************ ******* ************************************
// 오류 처리 , 메인프레임의 웹페이지에 DP 기능이 없는 경우 인쇄하지 마세요
//******************************** ***************** ************
{
window.parent.frames("mainFrame").DP() ;
}
catch(e)
{
alert("인쇄할 개체가 없습니다!")
}
}
function DP() // 메인프레임 웹 페이지 function
{
window.focus();
if (window.print)
{
window.print();
}
}
개인적으로는 이것이 가장 편리한 방법입니다.
마지막으로 IE 브라우저의 '파일 - 페이지 설정'에서 '머리글, 페이지 모서리' 설정을 제거하면 효과가 더 좋아집니다. (재게시)