본문 바로가기
IT-개발,DB

[javascript] 프린트 제어 (웹페이지 여백조절,가로세로) - ActiveX : ScriptX

by SB리치퍼슨 2016. 4. 11.





기능이 제한된 프리웨어.. (상용임)
=================================================================================

무료로 사용가능한 기능

- javascript의 print와 같은 기능(프린트 대화창)

- page setup 호출

- print preview 미리보기 호출

- header/footer/marings /portrait 설정

- 프레임 지정 프린트

- 프린터 고르기 없이 직접 프린트


* 자바스크립트에 넣으시고..

function ThisWindowsPrint() {
with ( factory.printing ) 

header = ''; 
footer = ''; 
portrait = true; // true 세로출력 , false 가로출력
leftMargin = 0; 
rightMargin = 0; 
topMargin = 0; 
bottomMargin = 0; 
//printing.SetMarginMeasure(1); 
//printing.printBackground = true  //배경 및 이미지 인쇄

Print(true, window) // 첫번째 인자 : 대화상자표시여부 , 두번째인자 : 출력될 프레임
}
window.close();
}

* html 에 넣으시고...

<Object id='factory' viewastext style='display:none' classid='clsid:1663ed61-23eb-11d2-b92f-008048fdd814' codebase='http://www.meadroid.com/scriptx/ScriptX.cab#Version=6,1,432,1'>
</Object>


* 인쇄버튼 만드시고.. input으로 ... 레이어 만드시고 하셔도 되고요.. 
* 인쇄시 인쇄버튼이 나오면 안되니깐 클릭시 레이어 hidden 시키고 ThisWindowsPrint() 호출;;;

OnClick='ThisWindowsPrint()'

※ 딴지 - 공개용모듈이라 그런지 ActiveX가 죽지 않는 현상이 이따금 발생하여,
프로그램 에러가 발생입니다. 

파일은 여기서

MeadCo ScriptX 컴포넌트 사용 1. MeadCo 웹사이트에서 ScriptX.Cab을 다운 http://www.meadroid.com/scriptx/sxdownload.asp

 

------------------------------------

새페이지를 띄우지 않고 출력하는 방법

 

<HTML>
 <HEAD>
  <title>풀리백출력</title>
  <OBJECT id="factory" style="DISPLAY: none" codeBase="http://www.meadroid.com/scriptx/ScriptX.cab#Version=6,1,429,14"
   classid="clsid:1663ed61-23eb-11d2-b92f-008048fdd814" viewastext>
  </OBJECT>
  <script defer>
  {
  factory.printing.header = "";   // Header에 들어갈 문장
  factory.printing.footer = "";   // true 면 가로인쇄, false 면 세로 인쇄
  factory.printing.portrait = false;
  factory.printing.leftMargin = 0.4;   // 왼쪽 여백 사이즈
  factory.printing.topMargin =0.2; // 위 여백 사이즈
  factory.printing.rightMargin = 0.0;   // 오른쪽 여백 사이즈
  factory.printing.bottomMargin = 0.0;  // 아래 여백 사이즈
  //factory.printing.SetMarginMeasure(1); 
  // factory.printing.printBackground = true  //배경 및 이미지 인쇄
  }
  </script>
  <script>
 function printDiv () {
 if (document.all && window.print) {
  window.onbeforeprint = beforeDivs;
  window.onafterprint = afterDivs;
  //window.print();
  factory.printing.Print(true);
  }
 }
 function beforeDivs () {
 if (document.all) {
  objContents.style.display = 'none';
  objSelection.innerHTML = document.all['lblPrint'].innerHTML;
 }
 }
 function afterDivs () {
  if (document.all) {
   objContents.style.display = 'block';
   objSelection.innerHTML = "";
  }
 }

function Preview(){
 factory.printing.leftMargin = 0.4; // 왼쪽 여백 사이즈
 factory.printing.topMargin =0.2; // 위 여백 사이즈
 factory.printing.rightMargin = 0.0;  // 오른쪽 여백 사이즈
 factory.printing.bottomMargin = 0.0; // 아래 여백 사이즈

 factory.printing.portrait = false;
 factory.printing.Preview();
 
 }
  </script>
  <STYLE TYPE="text/css"> 
 .break { PAGE-BREAK-AFTER: always } 
  </STYLE>
 </HEAD>
<body>

...

<table style='Z-INDEX: 100; POSITION: absolute' align='center'>
     <TR>
      <TD align="center">
       <IMG style="CURSOR: hand" onclick='javascript:printDiv()' alt="프린트" src="../../image/print.gif">
       <IMG style="CURSOR: hand" onclick="javascript:self.close()" alt="창닫기" src="../../image/winclose.gif">
       <IMG style="CURSOR: hand" onclick="javascript:Preview()" src="../../image/btn_printt.gif"
        alt="프린터 설정">
      </TD>
     </TR>
    </table>
   </DIV>
   <DIV id="objSelection"><FONT face="굴림"></FONT></DIV>
</body>
</HTML>



Meadroid_ScriptX.zip


반응형

댓글