office-gobmx/hwpfilter/source/fontmap.cpp
Rüdiger Timm fac7cbc9de INTEGRATION: CWS ooo19126 (1.2.6); FILE MERGED
2005/09/05 17:20:31 rt 1.2.6.1: #i54170# Change license header: remove SISSL
2005-09-07 15:30:49 +00:00

182 lines
5.2 KiB
C++

/*************************************************************************
*
* OpenOffice.org - a multi-platform office productivity suite
*
* $RCSfile: fontmap.cpp,v $
*
* $Revision: 1.3 $
*
* last change: $Author: rt $ $Date: 2005-09-07 16:30:49 $
*
* The Contents of this file are made available subject to
* the terms of GNU Lesser General Public License Version 2.1.
*
*
* GNU Lesser General Public License Version 2.1
* =============================================
* Copyright 2005 by Sun Microsystems, Inc.
* 901 San Antonio Road, Palo Alto, CA 94303, USA
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License version 2.1, as published by the Free Software Foundation.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston,
* MA 02111-1307 USA
*
************************************************************************/
#include <stdio.h>
#ifdef SOLARIS
#include <strings.h>
#else
#include <string.h>
#endif
// #i42367# prevent MS compiler from using system locale for parsing
#ifdef _MSC_VER
#pragma setlocale("C")
#endif
struct FontEntry
{
const char *familyname;
int key;
double ratio;
};
/**
* ratio는 한글 70%, 숫자 10% 영문 20%의 비율로 구성되었다는 가정하에 정해진다.
*/
const struct FontEntry FontMapTab[] =
{
{"명조",0, 0.97},
{"고딕",1, 0.97},
{"샘물",1, 0.97},
{"필기",0, 0.97},
{"시스템",1, 0.84},
{"시스템 약자",1, 0.84},
{"시스템 간자",1, 0.84},
{"HY둥근 고딕",2, 0.97},
{"옛한글",0, 0.97},
{"가는공한",0, 0.72},
{"중간공한",0, 0.72},
{"굵은공한",0, 0.72},
{"가는한",0, 0.72},
{"중간한",0, 0.72},
{"굵은한",0, 0.72},
{"휴먼명조",0, 0.97},
{"휴먼고딕",1, 0.97},
{"가는안상수체",0, 0.55},
{"중간안상수체",0, 0.637},
{"굵은안상수체",0, 0.63},
{"휴먼가는샘체",0, 0.666},
{"휴먼중간샘체",0, 0.685},
{"휴먼굵은샘체",0, 0.727},
{"휴먼가는팸체",0, 0.666},
{"휴먼중간팸체",0, 0.685},
{"휴먼굵은팸체",0, 0.727},
{"휴먼옛체",3, 0.97},
{"한양신명조",0, 0.97},
{"한양견명조",1, 0.97},
{"한양중고딕",1, 0.97},
{"한양견고딕",1, 0.97},
{"한양그래픽",0, 0.97},
{"한양궁서",3, 0.97},
{"문화바탕",0, 0.97},
{"문화바탕제목",1, 0.97},
{"문화돋움",1, 0.97},
{"문화돋움제목",0, 0.97},
{"문화쓰기",0, 0.97},
{"문화쓰기흘림",0, 0.97},
{"펜흘림",0, 0.97},
{"복숭아",0, 0.827},
{"옥수수",0, 0.97},
{"오이",0, 0.97},
{"가지",0, 0.97},
{"강낭콩",2, 0.97},
{"딸기",3, 0.97},
{"타이프",0, 0.987},
{"태 나무",1, 0.97},
{"태 헤드라인",0, 0.97},
{"태 가는 헤드라인",0, 0.97},
{"태 헤드라인T",0, 0.97},
{"태 가는 헤드라인T",0, 0.97},
{"양재 다운명조M",0, 0.97},
{"양재 본목각M",0, 0.97},
{"양재 소슬",1, 0.97},
{"양재 매화",1, 0.987},
{"양재 튼튼",0, 0.97},
{"양재 참숯",1, 0.97},
{"양재 둘기",0, 0.97},
{"양재 샤넬",1, 0.97},
{"양재 와당",1, 0.97},
{"신명 세명조",0, 0.97},
{"신명 신명조",0, 0.97},
{"신명 신신명조",0, 0.97},
{"신명 중명조",0, 0.97},
{"신명 태명조",0, 0.97},
{"신명 견명조",0, 0.97},
{"신명 신문명조",0, 0.97},
{"신명 순명조",0, 0.97},
{"신명 세고딕",1, 0.97},
{"신명 중고딕",1, 0.97},
{"신명 태고딕",1, 0.97},
{"신명 견고딕",1, 0.97},
{"신명 세나루",2, 0.97},
{"신명 디나루",2, 0.97},
{"신명 신그래픽",2, 0.97},
{"신명 태그래픽",2, 0.97},
{"신명 궁서",3, 0.97}
};
#define FONTCOUNT 4
#ifndef WIN32
#if defined(LINUX)
char* RepFontTab[] =
{
"백묵 바탕", /* 0 */
"백묵 돋움", /* 1 */
"백묵 굴림", /* 2 */
"백묵 헤드라인" /* 3 */
};
#else
char* RepFontTab[] =
{
"Batang", /* 0 */
"Dotum", /* 1 */
"Gulim", /* 2 */
"Gungso" /* 3 */
};
#endif
#else
char* RepFontTab[] =
{
"바탕", /* 0 */
"돋움", /* 1 */
"굴림", /* 2 */
"궁서" /* 3 */
};
#endif
int getRepFamilyName(const char* orig, char *buf, double &ratio)
{
int i;
int size = sizeof(FontMapTab)/sizeof(FontEntry);
for( i = 0 ; i < size ; i++)
{
if( !strcmp(orig, FontMapTab[i].familyname) ){
ratio = FontMapTab[i].ratio;
return strlen( strcpy(buf,RepFontTab[FontMapTab[i].key]) );
}
}
ratio = FontMapTab[0].ratio;
return strlen( strcpy(buf, RepFontTab[0] ) );
}