WWW

[알림판목록 I] [알림판목록 II] [글목록][이 전][다 음]
[ WWW ] in KIDS
글 쓴 이(By): ddaeng (김 경 철)
날 짜 (Date): 1995년03월08일(수) 02시36분10초 KST
제 목(Title): [Re] [질문] Postcsript화일의 프린팅???



음.. 이런 이야기 전에 몇번 나온적 있는데요.. 최종판이 되길 바라면서..

일단, ghostview는 ps화일을 그냥 보여주는거구요..
거기서 print를 하드라도 그 ps화일을 그대로 프린터로 보내기만
합니다(정확히는 spooling시키지여)

그러니까 리눅스에서, 프린터에다 input filter 를 지정해 줘서
거기서 gs를 돌려서, ps화일을 프린터에 맞는 빗맵으로 바꾸게
해주면 virtural한 ps 프린터가 되는 셈이지요.

리눅스 에서 /etc/printcap 이 프린터를 지정해 주는건데요..
일단 거기서 # 으로 시작하는 라인은 전부  코멘트 이니까
무시해도 되고요.

거기 이미 지정된 프린터가 있을꺼야요. 그거를 고쳐주면 됩니다.
일단, 현재 커널이 어느 디바이스를 인식하고 있는지
확인해야 돼요, /var/adm/messages화일을 보면 부팅할때 나오는
메시지 들이 계속 쌓여 있는데
거기를 봐서 패러럴 포트(프린터 포트)가 무엇인지 확인하세여
lp_init: 으로  시작하는 게 프린터 포트에 관한 메시지이에여.
아마 /dev/lp1 일꺼야요(이후의 글은 lp1인것으로 가정함)

음.. 일단 순서적으로 말하자면



1) /etc/printcap에 다음과 같은  두 줄을 쳐넣는다.

-------------------cut here-----------------
lp:lp=/dev/lp1:sd=/usr/spool/lp1:\
        :if=/usr/local/bin/lpf_gs:
-------------------cut here-----------------
아마도 위의 두 줄과 비슷한 엔트리가 이미 printcap 에 있을겁니다
그것을 고쳐도 되고, 그것을 commend-out해버리고 위의 내용을 쳐넣어도 됩니다.

여기에서 /usr/spool/lp1라는 디렉토리가 존재하는지 확인하고,
만약 존재하지 않는다면, 빈 디렉토리를 그 이름으로 하나 만들어 주면 됩니다.


2) 다음 프로그램을 쳐 넣는다(lpf_gs.c라고 합세다)

-------------------cut here-----------------
#include        <stdio.h>

#define GS_BIN  "/usr/bin/gs"

main()
{
        execlp( GS_BIN,
                GS_BIN,
                "-q",
                "-sPAPERSIZE=a4",
                "-sDEVICE=djet500",
                "-r300",
                "-dSAFER",
                "-dNOPAUSE",
                "-sOUTPUTFILE=-",
                "-",
                NULL );
}
-------------------cut here-----------------
프린터가 데스크젯500인 경우를 가정하슴메다.
만약 그렇지 않다면 해당되는 다른 디바이스 이름을 지정해주면 되구여,
/usr/src/ghostscript-2.6.1/Makefile 안에 디바이스에 대한
항목들이 나옵니다, 참고 하시길.

3) 위의 프로그램을 컴파일 해서  /usr/local/bin에 둔다.

# cc -o lpf_gs lpf_gs.c
# cp lpf_gs /usr/local/bin



위의 1), 2), 3) 과정이 문제 없이 끝났다면 셋업이 완료된 셈입니다
/usr/lib/ghostscript/examples 로 가서 tiger.ps같은 예제
화일들을 한번 찍어보세여.

# cd /usr/lib/ghostscript/examples
# lpr tiger.ps

이러고 나서 ps -ax 해보면 아마도 gs가 돌고 있을꺼에여.
현재 spooling 되고 있는 (프린트 하고있는) 화일을 보려면
lpq 명령을 이용하문 댑니다.


---
(김 경 철)Kim, Kyoung-chul                      ddaeng7@glory.kaist.ac.kr
Computer System Lab. #1                         +82-2-958-3385
Dept. of Infomation and Communication, KAIST, Seoul, Korea
[알림판목록 I] [알림판목록 II] [글 목록][이 전][다 음]
키 즈 는 열 린 사 람 들 의 모 임 입 니 다.