본문 바로가기
컴퓨터/자작 프로그램

한 칸의 많은 내용을 페이지에 적절히 프린트하기

by adnoctum 2011. 3. 16.



   한 칸의 내용이 너무 길어서 프린트를 하면 잘려 나가거나, 다음 페이지에 출력이 되는 경우가 있다. 이런 경우, 차라리 그 칸의 '높이'를 적절히 조절해서 각 행의 내용이 잘리지 않고 한 페이지에 출력이 되면 좋을 것이다. 이와 같은 목적으로 만들어서 가끔(ㅋㅋ) 사용하는 프로그램을 올려 놓는다. 어떤 기능을 하는지 그림으로 보자.


만약 다음과 같은 내용을 Excel에서 프린트를 하면,



아래와 같이 내용이 잘려서 프린트가 된다.



그런데 지금 말하는 프로그램으로 출력을 하면 다음과 같이 각 칸의 '높이'가 적절히 변환되어 한 행의 내용이 한 페이지에 적절히 출력이 된다.




실행 파일은 다음에 있다[각주:1].



소스 코드는 visual c++ 6.0 으로 (백년 전에 ㅋㅋ) 컴파일 되었고, 다음에 있다. 이것저것 신경쓰지 않고 만든 프로그램이니 에러가 날 수도 있다.



프로그램 사용법은 아래와 같다.

1. 엑셀 파일에서, 출력할 영역을 선택, 복사.
2. 지금 설명하는 프로그램에서 오른쪽 클릭 : 그러면 붙여 넣기가 된다.
3. 저장 : html 파일로 저장된다.
4. Firefox 로 3번에서 저장한 html 파일을 연 후, Print 한다.







소스코드의 저작권은 없으니, 마음대로 사용해도 된다. 소스 자체가 워낙 짧아서 주석은 거의 없다. 그렇긴 해도 어려운 내용이 없기 때문에 초보자가 이것저것 자잘하게 연습해 보기 좋을 것이다. 가령 Clear 같은 항목을 넣는다던가, 팝업을 띄워 본다던가, ShellExecuteEx 같은 API를 이용해서 임시로 저장된 html 을 직접 firefox로 여는 것(그리고 SendMessage 같은 것으로 출력까지...)을 해본다던가, 등등.



프로그램에 있어서는, 아이디어고 뭐고 아무 것도 없다. 그냥 코딩하면 된다. Firefox는 header로 된 행을 각 페이지마다 반복적으로 출력을 해준다. 즉, html tag 중 thead 와 th tag 에 감싸인 내용을 각 페이지마다 출력해 준다. 확인해 본 결과, 대중적으로 많이 사용되는 웹브라우저 중 유일하게 firefox 만이 그렇게 해 주었다. 나머지 웹브라우저들은 header 가 페이지마다 반복적으로 출력되지 않는다. 확인해 본 웹브라우저는 인터넷 익스플로러 8.0,오페라 10.6, 크롬 10., 사파리 5.0.4 이다.





  1. 파일 이름에 왜 merge 라는 것이 붙었는지는 나도 기억이 안난다. >.<"" 하도 오래 전에 만들어 놓은 프로그램이라서... [본문으로]

'컴퓨터 > 자작 프로그램' 카테고리의 다른 글

원격 접속해서 컴퓨터 끄기  (10) 2013.01.12
영어 듣기 반복 프로그램  (2) 2010.01.05