인쇄 기능을 지원합니다에서 설명한 것처럼 인쇄 플러그인은 필자의 숙원사업(?) 중 하나였다. 그러나 텍스트큐브의 구조를 잘 모르는 필자로서는 섣부르게 시도하기도 힘든 플러그인이었다. 다행이 텍스트큐브에 사용된 함수를 플러그인에서 사용할 수 있다는 것을 알게된 덕에 의외로 쉽게 인쇄 플러그인을 만들 수 있었다.
미공개 플러그인 중 가장 먼저 만든 플러그인이 Firefox에서도 동작하도록 AnyLink를 적용한 수평분류 플러그인이고 그 다음에 만든 플러그인이 오즈용 최저가 주유소 검색 프로그램을 공개하면서 만든 dp.SyntaxHighlighter 플러그인지만 인쇄 플러그인을 가장 먼저 공개하는 것은 바로 이런 맥락이다. 플러그인을 설치하는 방법은 따로 설명하지 않겠다. 텍스트큐브를 사용하는 사람이라면 이미 알고 있을 것으로 생각하기 때문이다. 따라서 이 글에서는 환경설정과 스킨 및 Style.css 파일을 만드는 방법에 대해서만 설명하겠다.
내려받기
플러그인은 다음 링크에서 내려받을 수 있다. 내려받은 플러그인을 폴더채 플러그인 폴더(plugins/)에 올리면 된다.
보통 플러그인에서는 $blogURL과 $plugURL 변수를 사용할 수 있다. 그러나 가상의 plugin 디렉토리로 호출하는 경우 이 두 개의 변수를 사용할 수 없었다. 따라서 이 항목까지 환경설정에서 설정해 주어야 한다.
관리도구/플러그인/인쇄 버튼 3를 클릭한 뒤 환경설정 링크를 클릭한다.
다음 항목을 설정한다.
블로그 주소
자신의 블로그 주소를 입력한다. 루트 폴더에 텍스트큐브를 설치한 것이 아니라면 설치한 폴더의 주소까지 입력한다. 예를 들어 tc라는 폴더에 텍스트큐브를 설치했다면 블로그 주소는 http://offree.net/tc를 입력해야 한다. 마지막에 /를 입력하지 않도록 주의한다.
플러그인 주소
보통은 기본값을 사용하면 된다. 그러나 플러그인을 vPrintArticle2 폴더가 아닌 다른 폴더에 설치했다면 플러그인 주소에 이 폴더에 대한 경로를 입력하면 된다.
선행 문자
인쇄 기능을 이용하려면 블로그 페이지에 인쇄 링크를 달아야 한다. 이 인쇄링크의 앞 부분에 삽입할 문자를 입력하면 된다. 기본 값은 :: 이다.
후행 문자
선행 문자와 마찬가지로 인쇄 링크 뒷 부분에 출력될 문자이다. 자신이 사용하고 있는 스킨에 맞춰 설정하면 된다.
인쇄 라벨
인쇄 링크의 이름을 입력한다. 기본값은 인쇄이며, 프린트처럼 인쇄 링크임을 표시하는 라벨을 입력하면 된다.
환경 설정이 끝났다면 저장 단추를 클릭해서 플러그인의 환경을 저장한다.
스킨에 치환자 삽입
이제 남은 일은 스킨에 인쇄 링크를 달기 위해 치환자를 삽입하면 된다. 인쇄용 링크 치환자는 [##_print_article_##] 이므로 스킨의 적당한 위치에 이 치환자를 삽입하면 그림처럼 인쇄 링크가 나타난다.
인쇄 플러그인용 스킨
인쇄 플러그인은 자신이 사용하고 있는 스킨과 가장 비슷한 출력 화면을 만들기 위해 skin.html 파일을 사용한다. 아울러 사용되는 치환자는 텍스트큐브에서 사용하는 치환자와 똑 같다. 다만 지원하는 치환자가 별로없다. 따라서 자신만의 인쇄용 스킨을 만들고 싶은 사람은 다음 치환자를 이용해서 해서 인쇄용 스킨을 직접 만들 수 있다. 플러그인에 포함된 인쇄용 스킨은 현재 필자가 1단으로 고처 사용하고 있는 Moving Box(Green)을 인쇄용 스킨으로 수정한 것이다.
사용하고 있는 플러그인 중 자바스크립트나 스타일쉬트를 이용하는 플러그인이 있다면 <HEAD>와 </HEAD> 사이에 플러그인이 사용하는 자바스크립트를 삽입해야 한다.
페이지를 읽자마자 인쇄 창을 띄우고 싶다면 <BODY> 태그를 다음처럼 바꾸어야 한다.
인쇄용 스타일쉬트
인쇄용 스킨에서 스타일쉬트를 사용하고 있다면 마찬가지로 스타일쉬트 역시 만들어 주어야 한다. 필자는 Moving Box(Green)의 스타일쉬트에서 스킨에서 참조하고 있는 부분만 남기고 나머지는 삭제하는 방법으로 스타일쉬트를 만들었다.
마지막으로 작성된 스타일쉬트를 인쇄에서도 그대로 적용하고 싶다면 스킨에서 스타일쉬트를 지정하면 media 속성을 screen이 아니라 print나 all로 해야 한다.
현재 이 플러그인은 단일 사용자 환경에 텍스트큐브를 루트에 설치해서 테스트했다. 다중 사용자 환경과 루트 폴더 이외의 폴더에서의 동작도 염두에 두었지만 시험해 보지 않았기 때문에 잘 동작하는지는 필자도 모르고 있다. 따라서 다른 환경에서 이 플러그인이 잘 동작하지 않는다면 플러그인을 활성화한 뒤 동작하지 않는 페이지를 필자에게 알려 주기 바란다.
한가지 질문이 있습니다.
스타일시트에서 overflow property에 hidden이 아니라 visible을 해야지 제대로 출력되는 것이 아닌가요?
IE에서는 제대로 출력되나 FF에서는 본문이 짤려 나오기에 이를 수정(정확하게는 제 입맛에 맞게 수정하였지만 여튼 hidden을 visible로 바꾸었습니다.)하여 원하는 결과를 얻었습니다.
CSS에 대해 잘 모르는지라 이렇게 질문 드립니다.
스타일시트는 자신의 스킨에 맞춰서 알아서 편집하면 됩니다. 포함된 스킨은 제가 사용하는 스타일시트일 뿐입니다. 그리고 overflow는 벗어나는 부분에 대한 항목이기 때문에 hidden이든 visible든 상관없습니다. visible를 설정하면 상자를 벗어나 내용이 표시되고 hidden을 설정하면 마지을 벗어나는 내용을 숨깁니다. 그러나 인쇄할 때에는 거의 갈은 결과가 나옵니다.
Facebook