[Ghostscript] 고스트스크립트 Can’t find CID font “Batang”.
pdf 파일을 jpg 이미지로 변환해주는 VBS(Visual Basic Script)를 Ghostscript로 실행시킬 때, Can’t find CID font 오류가 발생해서 변환에 실패하는 경우가 있었다.
아래와 같이 여러가지 글꼴명으로 오류가 발생한다.

Can’t find CID font “Batang”.
Can’t find CID font “Dotum”.
Can’t find CID font “GulimChe”.
Can’t find CID font “맑은고딕”.
등등
|
해당 오류는 pdf 파일 안에 포함되어있는 글꼴에 대한 CID 폰트가 없기 때문에 발생하는 것으로 보인다. CID 폰트란 Character ID keyed Font 의 약자로 미국 어도비시스템즈 사가 개발한 폰트 형식이라고 하는데 주로 pdf 파일에서 내장 폰트로 사용한다고 한다.
이를 해결하는 방법은 2가지가 있는데 실제로 CID 폰트를 구하는 방법과, CID 폰트 대신 일반 폰트를 매핑해서 대체하는 방법이 있다.
찾아보니 CID 폰트를 구하기는 어려워서 일반 폰트로 대체하는 방법으로 해결했다.
CID 폰트를 일반 폰트로 대체하는 방법은 고스트스크립트 폴더 하위의 doc/Use.htm 파일에 나와있다. ex) C:\Program Files (x86)\gs\gs8.71\doc\Use.htm
위 파일에서 CID fonts, CID font substitution 항목을 찾아보면 된다.


간단히 설명하면 고스트스크립트 폴더 하위의 lib/cidfmap 파일 안에 폰트 정보를 매핑해주면 된다. ex) C:\Program Files (x86)\gs\gs8.71\lib\cidfmap


cidfmap 파일내용
%! % cidfmap generated automatically by mkcidfm.ps from fonts found in % C:/WINDOWS/fonts
% Substitutions /MS-PGothic << /FileType /TrueType /SubfontID 1 /CSI [(Japan1) 3] /Path (C:/WINDOWS/fonts/msgothic.ttc) >> ; /DotumChe << /FileType /TrueType /SubfontID 3 /CSI [(Korea1) 3] /Path (C:/WINDOWS/fonts/gulim.ttc) >> ; /SimSun << /FileType /TrueType /SubfontID 0 /CSI [(GB1) 2] /Path (C:/WINDOWS/fonts/simsun.ttc) >> ; /Gulim << /FileType /TrueType /SubfontID 0 /CSI [(Korea1) 3] /Path (C:/WINDOWS/fonts/gulim.ttc) >> ; /BatangChe << /FileType /TrueType /SubfontID 1 /CSI [(Korea1) 3] /Path (C:/WINDOWS/fonts/batang.ttc) >> ; /Dotum << /FileType /TrueType /SubfontID 2 /CSI [(Korea1) 3] /Path (C:/WINDOWS/fonts/gulim.ttc) >> ; /Gungsuh << /FileType /TrueType /SubfontID 2 /CSI [(Korea1) 3] /Path (C:/WINDOWS/fonts/batang.ttc) >> ; /MS-UI-Gothic << /FileType /TrueType /SubfontID 2 /CSI [(Japan1) 3] /Path (C:/WINDOWS/fonts/msgothic.ttc) >> ; /MS-Gothic << /FileType /TrueType /SubfontID 0 /CSI [(Japan1) 3] /Path (C:/WINDOWS/fonts/msgothic.ttc) >> ; /NSimSun << /FileType /TrueType /SubfontID 1 /CSI [(GB1) 2] /Path (C:/WINDOWS/fonts/simsun.ttc) >> ; /Batang << /FileType /TrueType /SubfontID 0 /CSI [(Korea1) 3] /Path (C:/WINDOWS/fonts/batang.ttc) >> ; /GulimChe << /FileType /TrueType /SubfontID 1 /CSI [(Korea1) 3] /Path (C:/WINDOWS/fonts/gulim.ttc) >> ; /GungsuhChe << /FileType /TrueType /SubfontID 3 /CSI [(Korea1) 3] /Path (C:/WINDOWS/fonts/batang.ttc) >> ;
% Aliases /STSong-Light /SimSun ; /HeiseiKakuGo-W5 /MS-Gothic ; /HYSMyeongJo-Medium /Batang ; /GothicBBB-Medium /MS-Gothic ; /HYRGoThic-Medium /Gulim ; /HYGoThic-Medium /Dotum ; /STFangsong-Light /SimSun ;
|
만약 고스트스크립트 폴더 하위의 lib/cidfmap 파일이 없다면 고스트스크립트를 다시 설치하는 것을 권장한다. ex) 설치파일명 gs871w32.exe
고스트스크립트를 설치할 때 “Use Windows TrueType fonts for Chinese, Japanese and Korean” 체크박스를 체크하면 된다.

만약 고스트스크립트 재설치 이후에도 오류가 재현될 경우, 폰트명을 보고 cidfmap 파일에 누락된 폰트 정보를 매핑시켜서 CID 폰트를 대체하는 방식으로 문제를 해결할 수 있다.
참고사이트 1 : https://m.blog.naver.com/naroo/221848383186