이 문서는 리눅스에서 ghostscript + STP driver + Gimp print를 이용하여
Epson 계열의 프린터에서 한글을 프린팅하는 방법을 소개하고자 합니다.
이 문서는 www.linuxprinting.org의 자료를 참조하여 만든 것입니다.
리눅스에서 프린팅 하는 부분 중 핵심 부분은 프린터 driver 설치와 ghostscript의
지원입니다. 대부분 리눅스 사용자 분들께서 한글 프린팅에 어려움응 겪는 이유는
지원 프린터 driver가 없든지, 아니면 ghostscript에서 한글이 지원되도록 설정이
안되어 있어서 그렇습니다. 요즘은 IBM(Omni)나 HP, Lexmark에서 지원 드라이버들을
내놓고 있어서 드라이버면에서는 형편이 많이 좋아진 편이고, Samba print 방식을
이용해서 리눅스와 윈도우들 사이의 호환성도 눈에 뜨이기 좋아진 편입니다.
그러나 몇 몇 프린터들은 아직도 지원의 정도가 부족한 편입니다.
이에 대한 논의가 www.linuxprinting.org에서 이루어지고 있습니다. 제가 쓰고
있는 Epson Stylus C80 프린터의 경우 기존의 supporting driver set에서는
찾아 볼 수 없습니다. 이 경우 할 수 있는 방법 중에 하나가 gimp-print와 같은
프린터 드라이버를 쓰는 방법입니다.
gimp-print는 원래 gimp에서 출력을 담당하던 파트로 이를 이용하면 HP, Lexmark
Epson등의 프린터들을 지원할 수 있고, 각각의 프린터들에 대해 desc라 불리우는
설정화일만 만들어 주면 거의 모든 프린터에 적용시킬 수 있어서, 상당한 유연성을
갖는 프린터 드라이버 중에 하나입니다.
제가 예를 들어 설치할 Epson C80 계열은 STP라는 형태의 프린팅 방식을 갖는데
이는 ghostscript에서 일단 처리를 해주어야 합니다.
보통의 경우 gs --help라고 치면 Avaiable devices라고 나타나는데 이는
각각의 프린팅 방식에 맞도록 ghostsript이 output을 만들어 준다는 것을 의미합니다.
현존하는 ghostscript은 STP 형태의 driver를 지원하지 않으므로 적절히 패치를
가해주어야 합니다. 현재 gs 5.5까지는 이 패치가 존재하지만, 그 이후 버전들은
나오지 않고 있어서, 제가 일일히 찾아서 패치판을 만들었습니다.
그리고 Linux에서 특히 모질라 같은 프로그램에서 한글 프린팅이 제대로 안되는
경우 ghostscript의 한글 CID 폰트 설정이 제대로 되어 있지 않기 때문입니다.
대부분 처음 리눅스를 접하시는 분들이 어려움을 겪는 부분이 일반적으로 나타나지
않는 ghostscript의 설정 부분 때문에 그렇습니다. 이러한 어려움을 조금이라도
덜고자 제가 한글 CID 폰트와 STP 프린팅 모드를 갖춘 ghostscript을 패키징해서
http://www.intosea.com 에 올려 놓았습니다. (주인장에 미리 양해를 구했어야
했는데 그냥 올려서 죄송합니다.)
설치 순서는 다음과 같습니다.
처음에 gimp-print를 설치하시고, 이후 STP와 한글 CID 설정이 된 ghostscript을
설치하시면 됩니다. 이것은 옵션 사항인데 lpd 데몬들이 업데이트가 되어 있습니다.
아마 redhat 계열에서는 이것을 올리시는 것도 나쁜 선택은 아니지 않을까 싶습니다.
(foomatic, Omni, LPR package등등..)
위에서 이야기 드렸듯이 gimp-print에서 불러 쓸 설정화일을 만드셔야 합니다.
이 부분은 다음의 홈페이지를 참조해서 만드시면 됩니다.
http://www.linuxprinting.org/show_driver.cgi?driver=gimp-print 저의 경우 Epson Stylus C80이라는 프린터를
쓰는데 위의 홈페이지에서 LPD
Matic/Direct
Matic이라는 선택 부분에서 Epson C80이라서 선택
해서 버튼을 누르면 자동으로 설정화일을 만들어 줍니다. 이것을 저장하시면 됩니다.
저는 eps_c80_desc라고 이것을 저장했습니다.
이후 아래와 같은 형태의 /etc/printcap을 설정하시면 됩니다.
% cat /etc/printcap
lp|0|lp0|Epson_C80:
:lp=/dev/lp0:
:ml=0:mx=0:sh:lf=/var/log/lpd/lp-errs.0:
:if=/usr/sbin/lpdomatic:
:filter_options= --lprng $Z /var/spool/lpd/lp0/eps_c80.desc:
:af=/var/spool/lpd/lp0/lp0.acct:sd=/var/spool/lpd/lp0:
대부분의 사용자들께서는 print-conf라는 명령어를 이용해서 printcap을 만드시는
것으로 알고 있습니다. 그러나 저는 직접 편집해서 만드시는 것을 권장합니다.
다음은 위의 과정을 순서적으로 적은 것입니다.
% su
# rpm -i --force gimp-print-4.2.0-1.i686.rpm
-i --force로 설치하는 이유는 gimp와 충돌하기 때문입니다. 차기 gimp부터는
gimp-print가 따로 분리된다고 합니다.
# rpm -Uvh ghostscript-7.04-4ea.i686.rpm
# rpm -Uvh ghostscript-fonts-cid_ko-7.04-4ea.i686.rpm
# mkdir -p /var/log/lpd
# mkdir -p /var/spool/lpd/lp0 <--- printcap에서 lp0로 해놓아서 그렇습니다.
# touch /var/log/lpd/lp-errs.0
# cp eps_c80.desc /var/spool/lpd/lp0 <-- 설정화일을 카피하는 부분입니다.
# vi /etc/printcap
이런 후에 /etc/init.d/lpd를 다시 실행시켜 주면 됩니다. 위에서 한글 CID 폰트도
포함되어 있어서 웹자료 같은 것은 바로 한글 필터링을 걸쳐서 프린팅이 가능합니다.
다른 프린터들이라 하더라도 제가 소개한 홈페이지나 아니면 HP 같은 것은
단순히 magicfilter라는 것만을 이용해서도 한글 프린팅이 가능하게 할 수 있습니다.
이 부분은 제가 다음에 글을 올리도록 하겠습니다.
참 모질라에서 한글로 프린팅하시려면 /usr/lib/mozilla/defaults/pref/unix.js
라는 화일을 열어서
pref("print.postscript.nativecode.ko", "euc-kr");
pref("print.postscript.nativefont.ko", "Munhwa-Regular-KSC-EUC-H");
라고 있는 부분을 보시면 됩니다. 이 폰트들은 CID 폰트들 이름입니다.
* 참고 페이지
www.kr.FreeBSD.org/~cjh/freetime/printing/gs www.linuxprinting.org gimp-print.sf.net
PS1. 아마 ghostscript에 FreeType을 이용해서 truetype printing을 하시려면
ghostscript의 패치가 필요할 겁니다. 이미 적용이 되어있는지도 모르겠습니다만
ttf,ttc 프린팅 보다는 CID 폰트로 프린팅하는 것이 리소스를 적게 먹을 겁니다.
PS2. 한글 프린팅에 관한 기본 개념을 익히기 위해서는 전에 제가 올린 한글 프린팅
에 관한 팁이나 위의 홈페이지들을 잘 참조해 보셔야 합니다.
PS3. 설정화일은 대부분 default로 letter용지를 기본으로 사용하도록 되어 있습니다.
이를 조정하시면 desc 설정화일 중에서 PageSize와 default라는 두 글자로
search를 해보시면 'default' => 'Letter'로 되어 있는 부분을 찾으실 수
있습니다. 이를 'default' => 'A4'로 조정해 주시면 됩니다. 그리고 외부에서
옵션을 주는 방법도 있는데 이는 www.linuxprinting.org 잘 찾아보시면
됩니다.
PS4. 제가 올려놓은 패키지들은 자유스럽게 쓰셔도 좋지만 ghostscript의 경우 가능
하시다면 제가 해놓은 로그는 남겨 주셨습니다.
전에 gcc를 재패키징해서 배포한 적이 있었는데, 몇 몇 분들이 그냥 제가
한 부분을 지워버리고 다시 배포하시더라고요. 그리 대단한 것을 한 것은
아니지만, 시간을 내어서 노력한 사람을 위해 로그 정도는 남겨 주시는 것이
좋지 않을까 싶습니다.
좋은 하루되시길.
--
내 서명???