돈 안 들이고 PDF 파일 만들기 3장 : 환경파일 설정
http://kldp.org/node/115099 에서의 궁금증을 풀어드립니다.
우선 한글 글꼴을 하나 받아 봅시다.
http://wiki.kldp.org/wiki.php/공개한글글꼴 들어가 보니 자유롭게 쓸 수 있는 글꼴이 많이 있네요.
저는 여기서 은글꼴을 써 보겠습니다.
http://kldp.net/projects/unfonts/
다운로드
UnBatang_0613.ttf 저는 이걸 받아서 써 보겠습니다. 물론 다른 글꼴을 선택해도 방법은 비슷합니다.
d:\lec\ 디렉토리를 만들어서 이 곳에 위의 글꼴파일을 넣습니다. 저는 이렇게 했지만 디렉토리 이름은 여러분 마음대로...
fop 설치된 디렉토리에서 fop.xconf 를 찾아서 작업할 디렉토리에 복사합니다. 복사하면서 이름은 cfg.xml로 바꾸겠습니다.
d:\lec> copy c:\fop\fop-0.95\conf\fop.xconf cfg.xml
fop 를 이용해서 만든 파일에 한글이 제대로 보이게 하려면 위의 파일을 좀 건드려 줘야 합니다.
cfg.xml 을 메모장에서 열어 보니 줄이 다닥다닥 붙어버려서 보기가 불편하네요.
워드패드로 열어서 내용은 바꾸지는 말고 그대로 저장하고 다시 메모장으로 열어 보면 아까보다는 좀 볼만하게 되었습니다.
XML 문서를 메모장만으로 편집을 못할 건 없지만, 복잡한 XML문서를 다루기엔 좀 불편하니 이 기회에 XML 전용 편집기를 하나 설치하셔도 됩니다.
저는 http://www.editix.com 에서 editix 2010 설치해서 쓰고 있는데, 다른 xml 편집기를 써도 되고, 그냥 계속 메모장만 써도 되고.
XML 편집기에 대한 자세한 내용은 나중에 기회가 되면 하기로 하겠습니다.
cfg.xml 에서 /fonts 를 찾습니다. font는 여러번 나오는데 끝에 s 붙은 /fonts 는 딱 한번 나옵니다.
바로 위에
<font embed-url="UnBatang_0613.ttf"> <font-triplet name="unbatang" style="normal" weight="normal"/> </font>
를 넣습니다. 그러면 cfg.xml 은
... 앞 부분 생략... <!-- <font metrics-url="arial.xml" kerning="yes" embed-url="arial.ttf"> <font-triplet name="Arial" style="normal" weight="normal"/> <font-triplet name="ArialMT" style="normal" weight="normal"/> </font> <font metrics-url="arialb.xml" kerning="yes" embed-url="arialb.ttf"> <font-triplet name="Arial" style="normal" weight="bold"/> <font-triplet name="ArialMT" style="normal" weight="bold"/> </font> --> <font embed-url="UnBatang_0613.ttf"> <font-triplet name="unbatang" style="normal" weight="normal"/> </font> </fonts> ... 뒤 부분도 생략 ...
이렇게 되겠습니다. 파일 내용 전체를 다 넣자니 너무 길어지네요.
이번에는 2장에서 다루었던 fok.fo 를 살짝 건드리겠습니다.
<fo:block font-family="unbatang"> 안녕 </fo:block>
이렇게 font-family="unbatang" 을 넣습니다. 그러면 아래와 같이 되겠죠.
fok2.fo
<?xml version="1.0" encoding="UTF-8"?> <fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format"> <fo:layout-master-set> <fo:simple-page-master master-name="my-page"> <fo:region-body margin="1cm"/> </fo:simple-page-master> </fo:layout-master-set> <fo:page-sequence master-reference="my-page"> <fo:flow flow-name="xsl-region-body"> <fo:block> Hi </fo:block> <fo:block font-family="unbatang"> 안녕 </fo:block> </fo:flow> </fo:page-sequence> </fo:root>
드디어 한글이 제대로 나오는 pdf 파일을 만들 때가 되었습니다.
d:\lec\> fop -c cfg.xml fok2.fo fok2.pdf
여기서 주의할 점 하나! cfg.xml 과 fok2.fo 두 파일에서 unbatang 라는 문자열입니다. 두 파일에서 같은 내용을 써야지 서로 다르면 안 됩니다.
예를 들어서 cfg.xml 은 그대로 두고 fok2.fo 에서 unbatang을 unBatang로 쓰면 경고가 나오고 생성된 파일에서 한글이 안 나옵니다.
대소문자도 구별하니 짝을 잘 맞추어 쓰셔요.
그런데 이런 식으로 파일을 수정하자니 좀 겁나네요.
내용을 편집하다가 실수로 엉뚱한 곳을 건드려서 에러가 나고 왜 에러가 났는지도 잘 모르는 상황이 될 수도 있겠죠?
다음 시간에는 내용과 형식을 분리하는 것에 대해 다루어 보겠습니다.
댓글 달기