숙제 하나 던져 놓구 갑니다... > 자유게시판

자유게시판

숙제 하나 던져 놓구 갑니다... 정보

숙제 하나 던져 놓구 갑니다...

본문

letsgolee님께서 올려주신 코드 입니다.

아래 코드를 view.skin.php의 앞부분에 넣고 ...



적당한 곳에 아래 코드를 넣습니다.

<button onclick="print_contents()">프린트</button>

sir에 올라온 프린트 미리보기 기능은, 새로 db를 읽어와서 처리하는 것 입니다.
그런 경우에는 스킨별로 프린트용 스킨을 새로 만들어야 하는 문제가 있는거죠.

letsgolee님의 코드에서는 그런 문제가 없습니다. 지금 페이지의 요소에 있는
내용을 읽어서 그것을 가지고 새창을 만드는 것이니까요.

여기에서 수정할 포인트는

(1) 새창의 폭을 현재 게시글의 폭과 같이 하고, 새창에는 스크롤바를 달아주고
(2) 제목부터 코멘트까지 모두 출력이 되게 하고 (현재는 테스트 코드라서 안됩니다)
(3) 새창의 하단부에 프린트 버튼을 달아서 프린트 보내기를 만들고
(4) 배경페이지에 워터마크까지 팍~ 박아주는 것(어디서 프린트 한건지 보여주게)
(5) 가장 상단에는 게시글 주소를 넣어서 출력되는 위치도 보여주구요 ...

저보다 java에는 능하신 분들이 너무 많아서 숙제로 휙~ 던지고 튑니다. ㅋㅋ

추천
0

댓글 19개

깔끔해 보이겠지만, 지금 보이는 스타일과는 전혀 다른 형태가 되겠죠.
코멘트 보여주는 프로그램도 돌려야 하고 이래저래 복잡해 질 겁니다.
팝업이 미리보기 아닌가요?

게시물 상단 프린트아이콘 클릭

http://zombi.kr/bbs/board.php?bo_table=3_1&wr_id=7301&listStyle=Webzine
파일 만드는 것도 생각 봤는데, 파일을 만들면 데이타를 또 서버에서 읽어와야죠.
효율 측면에서도 떨어지고, 프로그램의 유지보수나 보안측면에서도 신경써야하고
제 판단으로 java를 쓰는게 최상의 선택인거 같더라구요.
아~ 스킨자료실의 print.php는 db에서 다시 읽어와서 작업을 하게 되어 있더라구요. java는 있는거 가지구 client 환경에서 처리를 할 수 있구요.
스킨자료실의 print.php 이야기 하는 것이 아니라 원론적으로 가능하다는 얘기예요.

예를 들어 팝업창에서 다음과 같이 가져올 수도 있어요.

var contents = opener.document.getElementById('writeContent').innerHTML;
document.getElementById('contents').innerHTML = contents;
예. 저도 그방법을 고민해 봤어요. 미리 만들어서 띄울지. 팝업창에서 가져올지. 고민을 좀 더 해보겠습니다.
1. width값과 height값이 새창의 크기입니다. 이걸 바꾸면 되는데 문제는 각 게시글의 width는 정해지지 않는한 구하기 힘들어요. 스크롤 바는 options값에 scrollbars=1를 추가하면 됩니다.

2. 제목부터 코멘트까지 하게 하려면 제목부터 코멘트까지 모두 한 div에 넣고 그 id를 부여합니다. 그 id를 writeContents대신 사용하면 되요.

3. 새창에서 그 프린트 버튼을 이용해 출력하게 하려면 win.document.body.innerHTML = contents + '프린트버튼이 들어가는 html소스' 식으로 작성하면 되구요. 프린트 버튼을 누를 때 그 버튼이 들어있는 div를 안보이게 적용하고 그다음 프린트 되게 하면 됩니다.

4. 배경에 window.location.href 값을 적용하면 됩니다. 이것도 3번에서 추가되는 html 소스에 있어야 하구요...

5. 상단에 주소는 3번에서 contents앞에다 추가하면 됩니다.

이정도면 됐나요????ㅎㅎㅎ

그런데 팝업창을 만들고 거기서 해도 되는데...
1. writeContents의 width + 적당한 값이 새창의 크기가 되지 않을까요?
2. 살짝 해보니까 form이 깨어지는 것 같더라구요.
4. 음... 그렇방법이 있었네요. 글자로 이미지를 만드는 소스를 봐야징. ㅎㅎ
간단한거 아니에요?
크기야 게시판 <?=$width?> 넣어 주고
내용이야 일단 빈 문서로 새창 띄운다음에 새창 빈 문서에 innerHTML 넘겨주면 되지 않을가요?
궁금한게 있는데 혹시 스킨 디자인을 그대로 가져가서 프린트 하는건가요?
아니면 임의의 프린트 디자인을 이용해서 하는건가요? ^^;

임의의 프린트 디자인이라면 (즉, 대충 골격이 잡힌 디자인) 자바스크립트로 활용 가능하겠지요 ^^
여기에서 임희의 프린트 디자인 file.php 를 만드시고 이걸 불러오고
file.php 안에는
<div id=''></div>
요런설 설정하셔서 inner html 로 값을 넣으시면 되는데
이런 기능을 한다면 팝업창에서 정보를 가져오는게 좋을듯 싶습니다

코멘트 같은경우 getelementsbynames 를 이용하시는것을 추천합니다
name을 이용한다면 array로 값을 넘겨받을 수 있기 때문에 쉽기도 하지요 ^^
참고로 프린트 function을 따로 만드셔서
거기에 프린트 버튼 id 와 함께 넣으시고

document.getelementbyid("프린트id").style.display = 'none';
win.print();

이렇게 가능하지요 ^ㅡ^;
전체 154 |RSS
자유게시판 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1402호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT