Unix계열의 시스템에서 한글 출력의 기본은 Ghostscript의 한글화에서부터 시작합니다.
다음의 내용은 최준호 님(www.kr.FreeBSD.org/~cjh)의 "한글과 프린팅"이라는 웹
페이지를 참조해서 제 나름대로 설치 방법을 적어 놓은 것입니다.
권장드리는 것은 6.x버전을 설치하시는 것이 좋습니다.
그럼 좋은 하루되시길 빌며, 많은 도움이 되길 빌겠습니다.
p.s. 본 내용은 Digital Unix 4.0D에 맞게끔 LDFLAGS와 CFLAGS의 내용이 설정되어
있습니다. 리눅스 사용자 분들은 이것을 무시하셔도 됩니다.
... 여기부터...
o Ghostscript과 한글
+ Download File
1. Adobe CID 한글 폰트
ak11.tar.gz를 받아온다.
[ ftp://ftp.oreilly.com/pub/examples/nutshell/cjkv/adobe ]
2. Ghostscript src file
ghostscript-<ver-no>.tar.gz, ghostscript-<ver-no>jpeg.tar.gz
ghostscript-<ver-no>libpng.tar.gz, ghostscript-<ver-no>zlib.tar.gz
ghostscript-fonts-other-<ver-no>.tar.gz
ghostscript-fonts-std-<ver-no>.tar.gz
등을 받아 온다.
[ ftp://ftp.kreonet.re.kr/pub/tools/graphics/ghost/aladin/gs550 ]
3. GS 컴파일
% gunzip -c <ghostscript file> | tar xvf -
% cd gs<version-no>
% cd src
% gunzip -c <jpeg 소스 화일> | tar xvf -
% ln -s jpeg-6 jpeg
libpng, zlib도 마찬가지로 version-no를 제외하고 링크
% cd ..
% ln -s unixansi.make Makefile
리눅스 사용자들은 다른 화일을 씁니다. 일단은 배포판 내의 Readme를
읽어 보시면 쉽게 아실 수 있을 겁니다.
% vi Makefile
다음으로 편집
INSTALL=installbsd -c <-- Digital Unix에서만
CFLAGS=-std1 -Olimit 1000 -O2 $(XCFLAGS)
LDFLAGS=-lots $(XLDFLAGS)
GS_LIB_DEFAULT=GS_LIB_DEFAULT=$(gsdatadir):$(gsdir)/fonts:
/usr/lib/X11/fonts/KoreanPS:/usr/lib/X11/fonts/Type1:
/usr/lib/X11/fonts/Type1Adobe:$(gsdir)/cid_fonts
% make
% su
$ mkdir <설치할 상위 디렉토리>
$ /usr/local/bin/make install prefix=<설치할 상위 디렉토리>
4. 한글화 작업
a. ftp://ftp.ora.com/pub/examples/nutshell/ujip/adobe/sample 에서 Munhwa-Regular와 MunhwaGot
hic-Regular등의 화일을 받아 온다. 이를 풀어서 $(gsdir)/cid_fonts에 설치
(Makefile에 정의되어 있는대로)
b. ftp://ftp.ora.com/pub/examples/nutshell/ujip/adobe/ak11.tar.Z을 얻어다가 CMap을 $(gsd
ir)/cid_fonts에 설치 c. Ghostscript 폰트 만들기
폰트 이름이 Munhwa-Regular이면, 여기에 CMap의 인코딩을 덧붙여 폰트
이름은 Munhwa-Regular-KSC-EUC-H라고 부릅니다(KSC-EUC는 euc-kr
인코딩이고, H는 가로쓰기이다. 자세한 내용과 다른 CMap의 의미는
ak11/cid2code.txt를 참조하세요). 폰트 stub을 만들어야 하므로, 다음
파일을 만듬.
------ Munhwa-Regular-KSC-EUC-H.gsf --------------
/Munhwa-Regular-KSC-EUC-H
/Munhwa-Regular (Munhwa-Regular)
/KSC-EUC-H (KSC-EUC-H)
1 index /CMap resourcestatus
{pop pop pop}
{runlibfile} ifelse
/CMap findresource
3 1 roll
1 index /CIDFont resourcestatus
{pop pop pop}
{runlibfile} ifelse
/CIDFont findresource
[ exch ] composefont pop
------------여기 전까지---------------------------------
MunhwaGothic-Regular의 경우도 동일하게 만든다. 위 파일에서
Munhwa-Regular를 MunhwaGothic-Regular로 만들고,
MunhwaGothic-Regular-KSC-EUC-H.gsf라는 이름으로 저장한다.
이제 폰트와 CMap, stub font를 설치한다. 모두 gs의 폰트 디렉토리에
넣어도 상관없으며, 별도의 디렉토리에 설치하는 경우에도 *.gsf는 gs의
폰트 서치 패스에 있어야 한다. 다른 파일(폰트와 CMap)을 별도의
디렉토리에 설치하였다면 위 *.gsf파일에서 2,3행에 있는 ( )안에 있는
이름이 파일명이므로(폰트와 CMap 이름과 같지만) 적당하게 바꾸어 주면
됩니다. 예를 들어 폰트가 /usr/local/share/fonts/cid에 있다면 *.gsf의
앞부분을
/Munhwa-Regular-KSC-EUC-H
/Munhwa-Regular (/usr/local/share/fonts/cid/Munhwa-Regular)
/KSC-EUC-H (/usr/local/share/fonts/cid/KSC-EUC-H)
이런 식으로 바꾸어 주면 됨.
모두 gs의 기본 font디렉토리에 넣고 싶으면 파일을 모두 그곳에
복사.
cp Munhwa* KSC-EUC-H $(gsdir)/fonts
d. Fontmap
이 부분은 꼭 할 필요가 없으나 참조.
$(gsdir)/cid_fonts 밑에 Fontmap이라는 화일을 만들고 다음과 같은
내용을 쳐 넣는다.
% CID-Keyed font
% Korean(Adobe)
/Munhwa-Regular-KSC-EUC-H (Munhwa-Regular-KSC-EUC-H.gsf) ;
/MunhwaGothic-Regular-KSC-EUC-H (MunhwaGothic-Regular-KSC-EUC-H.gsf);
e. gs_init.ps수정
맨 마지막 부분에 다음을 첨가. $(gsdir)/<version> 디렉토리에 있음.
% The interpreter will run the initial procedure (start).
% load initial CID-keyed fonts(Korean. KSC-EUC-H).
% It should be in Fontmap, but to avoid loading two or more time.
% (it can stop the interpreter - /rangecheck error)
%
QUIET not { (Loading CID(Korean) Fonts:) print } if
% font loading start
(Munhwa-Regular-KSC-EUC-H.gsf) runlibfile
QUIET not { (Munhwa-Regular-KSC-EUC-H ) print } if
% end of font loading
QUIET not { () print } if
o Ghostscript 6.01버전대 설치 방법
대부분은 5.5버전 대와 일치하며 다음과 같이 Makefile을 바꾼다.
% gunzip -c ghostscript-<ver-no>.tar.gz | tar xvf -
% gunzip -c ghostscript-<ver-no>jpeg.tar.gz | tar xvf -
% gunzip -c ghostscript-<ver-no>libpng.tar.gz | tar xvf -
% gunzip -c ghostscript-<ver-no>zlib.tar.gz | tar xvf -
% mv jpeg-<xxx> gs<ver-no>/jpeg
% mv libpng-<xxx> gs<ver-no>/libpng
% mv zlib-<xxx> gs<ver-no>/zlib
% cd gs<ver-no>
% cp src/unixansi.mak Makefile
% vi Makefile
Makefile을 다음과 같이 편집
CFLAGS=-std1 -Olimit 1000 -O2 $(XCFLAGS)
LDFLAGS=-lots $(XLDFLAGS)
x11fonts=/usr/lib/X11/fonts
GS_LIB_DEFAULT=GS_LIB_DEFAULT=.:$(gsdatadir):
$(prefix)/lib/X11/fonts/gsfonts:$(prefix)/lib/X11/fonts/cid_fonts:
$(prefix)/lib/X11/fonts/misc:$(x11fonts)/KoreanPS:$(x11fonts)/Type1:
$(x11fonts)/Type1Adobe
% make
% make prefix=<원하는 위치> install
% cp <font> <font director>
<prefix>/lib/X11/fonts 디렉토리 밑에 gsfonts와 cid_fonts에 각각의 fonts들
설치한다. 이때 cid_font들의 경로가 제대로 설정되었는지 확인한다.
(cid 폰트 중에 *.gsf화일들을 참조)
% vi Fontmap.GS에 5.5에서와 같이 한글 폰트들을 등록시켜준다.
참고로 6.x 버전에서는 gs_init.ps를 조정할 필요가 없다.
% 한글 폰트 등록 방법은 다음과 같다.
다음의 내용과 같이 Fontmap.CID라는 화일을 만들고 Ghostscript의 Fontmap
있는 디렉토리로 카피를 해준다.
% CID-Keyed font
% Korean(Adobe)
/Munhwa-Regular-KSC-EUC-H (Munhwa-Regular-KSC-EUC-H.gsf) ;
/MunhwaGothic-Regular-KSC-EUC-H (MunhwaGothic-Regular-KSC-EUC-H.gsf) ;
/Munhwa-Bold-KSC-EUC-H (Munhwa-Bold-KSC-EUC-H.gsf) ;
/MunhwaGothic-Bold-KSC-EUC-H (MunhwaGothic-Bold-KSC-EUC-H.gsf) ;
/MunhwaGungSeo-Bold-KSC-EUC-H (MunhwaGungSeo-Bold-KSC-EUC-H.gsf);
/MunhwaGungSeo-Light-KSC-EUC-H (MunhwaGungSeo-Light-KSC-EUC-H.gsf) ;
/MunhwaGungSeoHeulim-Bold-KSC-EUC-H (MunhwaGungSeoHeulim-Bold-KSC-EUC-H.gsf) ;
/MunhwaGungSeoHeulim-Light-KSC-EUC-H (MunhwaGungSeoHeulim-Light-KSC-EUC-H.gsf) ;
/MunhwaHoonMin-Regular-KSC-EUC-H (MunhwaHoonMin-Regular-KSC-EUC-H.gsf) ;
그런 후 Fontmap 화일을 열어서 아래의 내용을 첨가하면 된다.
(Fontmap.CID) .runlibfile
--
내 서명???