사실 리눅스를 보고 프린터를 구입하는 사람들은 그렇게 많지 않을 것이다. 대부분은 광고 선전문구나 주위 사람들의 권유로 구입한다고 본다. 그리고 프린터 역시 성능에 따라 가격 차이가 많이 나고 있어서 어떤 때는 메인보드/CPU/그래픽 카드/사운드 카드 등에 많은 돈을 소비하면 프린터는 나중에 구입하려고 미루는 경우도 많다.
프린터를 이미 구입하지 않았다면 이 글을 읽고 리눅스에서도 그리고 마이크로 소프트 제품에서도 만족할 만한 제품을 구입할 수 있는, 적어도 리눅스에서 괴롭지 않게 프린팅을 할 수 있는 제품을 구입할 수 있을 것이다.
리눅스의 프린터 지원은 전적으로 고스트스크립트(ghostscript)라고 하는 프로그램에서의 지원 여부에 달려있다.
윈도용 GDI 프린터는 구입하지 말것! 하드웨어적 지원 프린터를 구입하라. 단지 윈도 드라이버를 설치해야만 또는 특정 프로그램을 실행해야만 작동하는 엉뚱한 저가형 프린터들이 있다. 이것은 절대 금물이다. 최근에 나온 LG 프린터 중 그러한 모델이 있다는 이야기가 있다. GDI 프린터는 시스템 효율면에서 엉터리 프린터로서 하드웨어 생산원가를 낮추고 모든 부담을 CPU에게 떠맡긴다. 리눅스, 유닉스 계열에서 사용할 수 없음은 물론이다.
고스트스크립트가 가장 잘 지원하는 프린터는 여러분도 예상하듯 가장 많은 사용자 층을 가지고 있는 HP 프린터 전기종이다. 하지만 컬러 잉크젯 프린터처럼 최근에 나온 제품들에 대해서는 너무 기대하지 않은 것이 좋다.
리눅스에서 가장 잘 쓸 수 있는 프린터는 고가 레이저 프린터라고 할 수 있다. 리눅스도 유닉스 계열이라는 사실을 상기하면 왜 그러한가 알 수 있을 것이다. 특히 포스트스크립트를 자체 지원하는 프린터들은 상당히 비싸지만 리눅스에서 아무런 노력없이 쉽게 사용할 수 있다는 사실 하나는 분명하다. 레이저 프린터도 램의 양에 따라, 분당 프린트하는 속도에 따라 많은 차이가 있으니 적절한 가격 선은 여러분이 결정하기 바란다.
필자는 학교나 연구소에서 쓰는 프린터가 아닌 바에야 저가형 레이저 프린터 또는 잉크젯 프린터가 개인 사용자에게 걸맞지 않나 생각한다. 둘 다 HP 프린터 PCL 모드를 제대로 지원해주는가 여부가 중요하다. 당연히 HP 제품은 호환성 문제를 생각할 필요없다.
리눅스에서 그래픽 모드로 프린팅하는 유일한 방법은 바로 포스트스크립트 파일 형태로 만든 후, 고스트스크립트(이하 gs )를 이용하여 여러분의 프린터 기종별로 프린터 명령으로 번역해서 프린터 포트에 출력하는 것이다.
포스트스크립트 문서(*.ps) | 고스트스크립트(gs) | 프린터 포트 |
PS 형식 | PS형식 --> 프린터 언어변환 | 프린터 고유 언어 |
리눅스에서의 프린팅은 초보자들에게 약간의 이해가 필요하다. 우선 리눅스에서 가장 많이 사용되는 프린팅 직전의 중간형 형태의 문서는 바로 Adobe 포스트스크립트 문서이다. 여러분이 어떤 방법을 쓰든 일단 포스트스크립트 형식의 문서로 변환하면 그것을 개별적인 프린터로 인쇄하는 실제적인 작업은 모두 고스트스크립트(gs)라고 하는 아주 훌륭한 프로그램이 처리해준다.
다양한 문서를 어떻게 포스트스크립트 문서로 변환할 것인지 그리고 그 중요한 고스트스크립트가 우리가 갖고 있는 프린터를 어떻게 지원하게 만들 것인지, 이 두 가지에 대하여 알아보면 될 것이다.
현재 공식 GNU 버전의 gs 3.33에서 지원하는 프린터를 살펴보자.
디바이스 | 프린터 |
ap3250 | Epson AP3250 printer |
appledmp | Apple Dot Matrix Printer (Imagewriter와도 작동함) |
bj10e | Canon BubbleJet BJ10e |
bj200 | Canon BubbleJet BJ200 |
bjc600 | Canon Color BubbleJet BJC-600, BJC-4000 and BJC-70 also good for Apple printers like the StyleWriter 2x00 |
bjc800 | Canon Color BubbleJet BJC-800 |
ccr | CalComp Raster format |
cdeskjet | H-P DeskJet 500C with 1 bit/pixel color |
cdjcolor | H-P DeskJet 500C with 24 bit/pixel color and high-quality color (Floyd-Steinberg) dithering; DeskJet 540C |
cdjmono | H-P DeskJet 500C printing black only; also good for DeskJet 510, 520, and 540C (흑백전용) |
cdj500 | H-P DeskJet 500C (cdjcolor와 같다) |
cdj550 | H-P DeskJet 550C/560C |
cp50 | Mitsubishi CP50 color printer |
declj250 | alternate DEC LJ250 driver |
deskjet | H-P DeskJet and DeskJet Plus |
djet500 | H-P DeskJet 500 |
djet500c | H-P DeskJet 500C alternate driver (550C or 560C에선 동작하지 않는다) |
dnj650c | H-P DesignJet 650C |
epson | Epson-compatible dot matrix printers (9- or 24-pin) |
eps9mid | Epson-compatible 9-pin, interleaved lines (intermediate resolution) |
eps9high | Epson-compatible 9-pin, interleaved lines(triple resolution) |
epsonc | Epson LQ-2550 and Fujitsu 3400/2400/1200 color printers |
ibmpro | IBM 9-pin Proprinter |
imagen | Imagen ImPress printers |
iwhi | Apple Imagewriter in high-resolution mode |
iwlo | Apple Imagewriter in low-resolution mode |
iwlq | Apple Imagewriter LQ in 320 x 216 dpi mode |
jetp3852 | IBM Jetprinter ink-jet color printer (Model 3852) |
laserjet | H-P LaserJet |
la50 | DEC LA50 printer |
la70 | DEC LA70 printer |
la70t | DEC LA70 printer with low-resolution text enhancement |
la75 | DEC LA75 printer |
la75plus | DEC LA75plus printer |
lbp8 | Canon LBP-8II laser printer |
lips3 | Canon LIPS III laser printer in English (CaPSL) mode |
ln03 | DEC LN03 printer |
lj250 | DEC LJ250 Companion color printer |
ljet2p | H-P LaserJet IId/IIp/III- with TIFF compression |
ljet3 | H-P LaserJet III- with Delta Row compression |
ljet3d | H-P LaserJet IIID with duplex capability |
ljet4 | H-P LaserJet 4 (defaults to 600 dpi) |
lj4dith | H-P LaserJet 4 with Floyd-Steinberg dithering |
ljetplus | H-P LaserJet Plus |
lp2563 | H-P 2563B line printer |
m8510 | C.Itoh M8510 printer |
necp6 | NEC P6/P6+/P60 printers at 360 x 360 DPI resolution |
nwp533 | Sony Microsystems NWP533 laser printer [Sony only] |
oce9050 | OCE 9050 printer |
oki182 | Okidata MicroLine 182 |
okiibm | Okidata MicroLine IBM-compatible printers |
paintjet | alternate H-P PaintJet color printer |
pj | H-P PaintJet XL driver |
pjetxl | alternate H-P PaintJet XL driver |
pjxl | H-P PaintJet XL color printer |
pjxl300 | H-P PaintJet XL300 color printer; PaintJet 1200C |
r4081 | Ricoh 4081 laser printer |
sj48 | StarJet 48 inkjet printer |
sparc | SPARCprinter |
st800 | Epson Stylus 800 printer |
tcolor | Epson Stylus Color |
t4693d2 | Tektronix 4693d color printer, 2 bits per R/G/B component |
t4693d4 | Tektronix 4693d color printer, 4 bits per R/G/B component |
t4693d8 | Tektronix 4693d color printer, 8 bits per R/G/B component |
tek4696 | Tektronix 4695/4696 inkjet plotter |
xes | Xerox XES printers (2700, 3700, 4045, etc.) |
배포판에서는 제공할 수 없는 알라딘(Aladdin) 고스트스크립트 버전은 4.03까 지 나와 있으며 개인적으로 받아와서 컴파일해야 한다. 구할 수 있는 FTP 사이트는 다음과 같다.
ftp://ftp.cs.wisc.edu/ghost/
GNU와 리눅스 시스템에서 중요한 위치를 차지하고 있는 알라딘 고스트스크립트는 GNU 프로젝트에 의해 개발되는 것이 아니다. 이는 전적으로 알라딘 사가 제작하는 것으로서 알라딘 사 고유의 라이선스 방식을 따른다. 알라딘 사는 자기들이 개발하고 나서 1년이지나면 FSF 측에 자신들의 고스트스크립트를 소스 코드와 함께 GPL로 라이선스하여 기증한다. 최신 버전은 개인적으로 얼마 든지 받아갈 수 있으나 기업적/상업적 이용에는 제한이 따른다.
따라서 배포판에서는 오로지 GPL로 된 약간은 구버전만을 포함할 수 있다. 최신식 드라이버가 들어있는 고스트스크립트를 원할 때는 개인적으로 구해서 컴파일하여 사용해야 한다.
들어가보면 gnu 디렉터리와 aladdin디렉터리가 따로 있는 것을 볼 수 있을 것이다. 상당히 많은 파일이 있는 것 같지만 ghostscript-라는 이름으로 시작하여 최신 버전(지금 현재 4.03)이 붙어있는 파일을 전부 가져와서 컴파일하면 된다. 여러분이 리눅스에서 해보는 컴파일중 어려운 컴파일 과정 중 하나이다. 마음을 느긋이 먹고 하루 종일 걸릴 것이라고 생각하고 천천히 하면 어렵지 않다. 같은 고민했던 사람들이 분명히 있을 것이므로 리눅스 동호회를 찾아보는 것도 좋다. 누군가 고스트스크립트와 한 판 밤샘 전쟁을 벌인 후 다른 사람들을 위해 사용담을 올려주었을 것이다.
참고로 고스트스크립트를 컴파일한다는 일은 그리 쉬운 일이 아님을 다시 한 번 밝혀둔다. 여러 개의 소스를 한 곳에서 푸는 것은 물론이고 README 문서를 영어라 할지라도 꼼꼼히 읽고 진행하지 않으면 안된다.
앞에서 나열한 목록에 여러분의 프린터 이름이 들어있다면 아무런 문제가 없을 것이다.
여러분이 현재 가지고 있는 gs가 어떤 장치를 지원하도록 컴파일했는지 알아 보려면 명령행에서 gs -h라고 실행해보라.
[yong@redyong yong]$ gs -h | more
Aladdin Ghostscript 3.33 (4/10/1995)
Copyright (C) 1995 Aladdin Enterprises, Menlo Park, CA. All rights
reserved.
Usage: gs [switches] [file1.ps file2.ps ...]
Available devices: ( 사용가능한 장치 )
x11 x11alpha x11cmyk x11mono deskjet djet500 djet500c dnj650c
laserjet ljetplus ljet2p ljet3 ljet3d ljet4 cdeskjet cdjcolor cdjmono
cdj500 cdj550 pj pjxl pjxl300 bj10e bj200 bjc600 epson eps9mid eps9high
epsonc ibmpro jetp3852 dfaxhigh dfaxlow faxg3 faxg32d faxg4 cp50 tiffg3
tiffg32d tiffg4 pcxmono pcxgray pcx16 pcx256 pcx24b pbm pbmraw pgm
pgmraw ppm ppmraw bit bitrgb bitcmyk tiffcrle tiffg3 tiffg32d tiffg4 tifflzw
tiffpack
Language interpreters: ( 지원 언어 수준 )
PostScript PostScriptLevel1 PostScriptLevel2 PDF
Search path: ( 검색 디렉토리 )
.
/usr/share/ghostscript/3.33:/usr/share/ghostscript/fonts
고스트스크립트는 PostScript 페이지 기술(記述) 언어로 작성된 PS 문서를 각 프린터가 인식할 수 있는 고유의 언어로 변환해준다. 여러분이 프린터를 구입하면 별 관심을 갖지 않는 뒷부분을 보기 바란다. 보통은 베이식언어로 예제를 들어가면서 프린터의 종이 한 장 넘기는 명령, 몇 인치 전진하는 명령, 그래픽 모드로 전환하는 명령들이 적혀 있다. 잉크젯이 나오기 전에는 주로 EPSON계열의 프린터에서 사용되는 ESC 시퀀스의 명령 방식이 유행하였고 그 다음 HP의 PCL 언어도 유명하다. 주로 이 두 가지 언어에서 대동소이한데 잉크젯 프린터의 경우에는 PCL 언어를 어떤 레벨까지 지원하는지 여부를 아는 것이 중요하다. 고스트스크립트는 어떻게 보면 개별적으로 갖고 있는 프린터 드라이버를 하나의 프로그램 안에 총망라한 것이라고 할 수 있다.
만약 고가의 포스트스크립트 언어 지원 프린터를 구입하였다면 고스트스크립트는 필요치 않다. 프린터 자체가 포스트스크립트라는 고급 언어를 인식하고 처리해주기 때문이다. 고스트스크립트는 포스트스크립트 프린터가 아닌 프린터를 마치 포스트스크립트 프린터인 것처럼 속이는 멋진 프로그램 중 하나이다. 포스트스크립트 프린터는 같은 레이저 프린트 중에서도 상당한 고가에 속한다. 대부분의 레이저 프린터들은 포스트스크립트 모듈을 장착하지 않은 저가의 제품들이다. 특히 GDI 프린터를 조심하라.
다시 한 번 강조하지만 특별한 도스 드라이버를 띄워야 하는 제품은 절대 구입하지 말것. 전세계인이 사용하는 범용 프린터 또는 확실한 호환모드를 가진 제품을 구입하라. 소비자의 당당한 구매행위를 통해 소프트웨어적 속임수가 없는 제품이 나오도록 리눅서들이 앞장서야 할 것이다.