Category :
ColdFusion
Comments :
댓글쓰기
Posted by
장창학
at
7:21 PM
cfdocument 태그는 문서파일을 만들어 주는 태그입니다. 가령 간단하게 PDF를 생성하려면 아래와 같이 cfdocument의 format에 pdf만 입력하면 됩니다. 물론 flash로 하게 되면 Flash Paper(문서표준으로 인정받는데는 실패했지만 Macromedia시절 Macromedia가 나름 Adobe의 PDF에 대항하려고 만든 문서포맷입니다. swf가 기본 포맷확장자입니다. 물론 지금도 Flash Paper는 이용가능하지만 PDF에 밀려 더이상 제품의 업그레이드는 사실상 물건너 갔다고 보시면 되겠습니다.)가 생성됩니다.
<cfprocessingdirective pageencoding="UTF-8"> <cfdocument format="pdf" pageType="A4"> Korean : 한국어 공부합시다.<br /> Japanese : 日本語を勉強しましょう。 </cfdocument>
그런데, Adobe ColdFusion이 English버전과 Japanese버전만 출시되어서 인지 다른 국가언어권에서의 PDF생성은 제대로 표현되지 않습니다. 영어나 일본어 등 공식지원 언어외에 불어, 스페인어 등 라틴언어 문화권은 제대로 지원되지만 중국어나 한국어는 제대로 표기가 나오지 않습니다. 바로 Font문제 때문인데요. 꽁수를 쓰면 가능해지기는 합니다.

<한글표기가 제대로 되지 않음 - 비유니코드이거나, cffont.properties.ko설정이 없는 경우, 한글폰트가 시스템에 없는 경우, Linux시스템 등 특정 플랫폼인경우>


<cffont.properties.ko 설정 후 정상적으로 표기되는 한글>
ColdFusion 설치 디렉토리의 lib디렉토리안의 cffont.properties파일과 cffont.properties.ja 파일이 ColdFusion에서 cfdocument 또는 cfimage 등의 태그에서 문자를 표현할 때 쓰이는 Font를 정의한 파일입니다. cffont.properties는 영어권, cffont.properties.ja파일은 일본어를 위한 정의파일인데, 기본적으로 쓰이는 서체를 정의한 것 입니다. 메모장에서 열어보면 다음과 같습니다.
cffont.properties
defaultbasefont= dialog=Arial, Helvetica dialog.bold=Arial Bold, Helvetica-Bold dialog.italic=Arial Italic, Helvetica-Oblique dialog.bolditalic=Arial Bold Italic, Helvetica-BoldOblique dialoginput=Courier New, Courier dialoginput.bold=Courier New Bold, Courier-Bold dialoginput.italic=Courier New Italic, Courier-Oblique dialoginput.bolditalic=Courier New Bold Italic, Courier-BoldOblique serif=Times New Roman, Times-Roman serif.bold=Times New Roman Bold, Times-Bold serif.italic=Times New Roman Italic, Times-Italic serif.bolditalic=Times New Roman Bold Italic, Times-BoldItalic sansserif=Arial, Helvetica sansserif.bold=Arial Bold, Helvetica-Bold sansserif.italic=Arial Italic, Helvetica-Oblique sansserif.bolditalic=Arial Bold Italic, Helvetica-BoldOblique monospaced=Courier New, Courier monospaced.bold=Courier New Bold, Courier-Bold monospaced.italic=Courier New Italic, Courier-Oblique monospaced.bolditalic=Courier New Bold Italic, Courier-BoldOblique
cffont.properties.ja
defaultbasefont= dialog=MS UI Gothic dialog.bold=MS UI Gothic dialog.italic=MS UI Gothic dialog.bolditalic=MS UI Gothic dialoginput=MS UI Gothic dialoginput.bold=MS UI Gothic dialoginput.italic=MS UI Gothic dialoginput.bolditalic=MS UI Gothic serif=MS Mincho serif.bold=MS Mincho serif.italic=MS Mincho serif.bolditalic=MS Mincho sansserif=MS UI Gothic sansserif.bold=MS UI Gothic sansserif.italic=MS UI Gothic sansserif.bolditalic=MS UI Gothic monospaced=MS UI Gothic monospaced.bold=MS UI Gothic monospaced.italic=MS UI Gothic monospaced.bolditalic=MS UI Gothic
문제는 위 cffont.properties와 cffont.properties.ja파일에서 정의한 서체가 서버시스템상에 설치되어 있어야 하며, JVM의 로케일 역시 해당 서체를 지원해야 정상적으로 표현이 된다는 것 입니다. 따라서 UTF-8을 기본 로케일로 쓰거나 한글서체가 거의 없는 Linux서버 등에서는 사실상 한글 표기가 불가능하다고 보시면 될 것 같습니다. ColdFusion이 한국에서 워낙 인기가 없다보니 관심 부족이 아닐까 생각됩니다. 결국 이 글은 Windows Server상의 ColdFusion에서만 해당됩니다. 일단 cffont.properties.ja파일을 복사하여 cffont.properties.ko파일을 하나 만들고 안의 내용을 다음과 같이 Gulim(굴림)서체로 변경합니다. 이제 정상적으로 한글이 표기됨을 확인할 수 있습니다.
cffont.properties.ko
defaultbasefont= dialog=Gulim dialog.bold=Gulim dialog.italic=Gulim dialog.bolditalic=Gulim dialoginput=Gulim dialoginput.bold=Gulim dialoginput.italic=Gulim dialoginput.bolditalic=Gulim serif=Gulim serif.bold=Gulim serif.italic=Gulim serif.bolditalic=Gulim sansserif=Gulim sansserif.bold=Gulim sansserif.italic=Gulim sansserif.bolditalic=Gulim monospaced=Gulim monospaced.bold=Gulim monospaced.italic=Gulim monospaced.bolditalic=Gulim
참고로 Railo와 OpenBD에서는 cfdocument로 PDF를 생성하는 경우 아직 한글을 사용할 수 없습니다. 물론 Java의 Object를 생성하는 경우는 가능하겠지만 CFML만으로는 부족한게 사실입니다. ^^
다음의 포스트에서 Railo와 Open BD에서 CFDOCUMENT 태그를 이용해서 PDF를 생성할때 한글폰트문제를 사용할 수 있습니다.
Railo - CFDOCUMENT pdf font problem (Korean, Japanese) :
http://www.nooree.com/blog/post.cfm/railo-cfdocument-pdf-font-problem-korean-japanese
PHP와 Open BD가 설치된 환경에서 그누보드 PDF생성기능 만들기 :
http://www.nooree.com/blog/post.cfm/php-open-bd-pdf
cffont.properties.ko 파일 다운로드 (이 파일을 ColdFusion설치 디렉토리의 lib디렉토리안에 복사하세요.)

|


ColdFusion (74)
Comments