/*
 * << Haru Free PDF Library >> -- hpdf_fontdef_kr.c
 *
 * URL: http://libharu.org
 *
 * Copyright (c) 1999-2006 Takeshi Kanno <takeshi_kanno@est.hi-ho.ne.jp>
 * Copyright (c) 2007-2009 Antony Dovgal <tony@daylessday.org>
 *
 * Permission to use, copy, modify, distribute and sell this software
 * and its documentation for any purpose is hereby granted without fee,
 * provided that the above copyright notice appear in all copies and
 * that both that copyright notice and this permission notice appear
 * in supporting documentation.
 * It is provided "as is" without express or implied warranty.
 *
 */

#include "hpdf_conf.h"
#include "hpdf_utils.h"
#include "hpdf.h"

/*----------------------------------------------------------------------------*/

static const HPDF_CID_Width DotumChe_W_ARRAY[] = {
    {1, 500},
    {2, 500},
    {3, 500},
    {4, 500},
    {5, 500},
    {6, 500},
    {7, 500},
    {8, 500},
    {9, 500},
    {10, 500},
    {11, 500},
    {12, 500},
    {13, 500},
    {14, 500},
    {15, 500},
    {16, 500},
    {17, 500},
    {18, 500},
    {19, 500},
    {20, 500},
    {21, 500},
    {22, 500},
    {23, 500},
    {24, 500},
    {25, 500},
    {26, 500},
    {27, 500},
    {28, 500},
    {29, 500},
    {30, 500},
    {31, 500},
    {32, 500},
    {33, 500},
    {34, 500},
    {35, 500},
    {36, 500},
    {37, 500},
    {38, 500},
    {39, 500},
    {40, 500},
    {41, 500},
    {42, 500},
    {43, 500},
    {44, 500},
    {45, 500},
    {46, 500},
    {47, 500},
    {48, 500},
    {49, 500},
    {50, 500},
    {51, 500},
    {52, 500},
    {53, 500},
    {54, 500},
    {55, 500},
    {56, 500},
    {57, 500},
    {58, 500},
    {59, 500},
    {60, 500},
    {61, 500},
    {62, 500},
    {63, 500},
    {64, 500},
    {65, 500},
    {66, 500},
    {67, 500},
    {68, 500},
    {69, 500},
    {70, 500},
    {71, 500},
    {72, 500},
    {73, 500},
    {74, 500},
    {75, 500},
    {76, 500},
    {77, 500},
    {78, 500},
    {79, 500},
    {80, 500},
    {81, 500},
    {82, 500},
    {83, 500},
    {84, 500},
    {85, 500},
    {86, 500},
    {87, 500},
    {88, 500},
    {89, 500},
    {90, 500},
    {91, 500},
    {92, 500},
    {93, 500},
    {94, 500},
    {95, 500},
    {8094, 500},
    {8095, 500},
    {8096, 500},
    {8097, 500},
    {8098, 500},
    {8099, 500},
    {8100, 500},
    {8101, 500},
    {8102, 500},
    {8103, 500},
    {8104, 500},
    {8105, 500},
    {8106, 500},
    {8107, 500},
    {8108, 500},
    {8109, 500},
    {8110, 500},
    {8111, 500},
    {8112, 500},
    {8113, 500},
    {8114, 500},
    {8115, 500},
    {8116, 500},
    {8117, 500},
    {8118, 500},
    {8119, 500},
    {8120, 500},
    {8121, 500},
    {8122, 500},
    {8123, 500},
    {8124, 500},
    {8125, 500},
    {8126, 500},
    {8127, 500},
    {8128, 500},
    {8129, 500},
    {8130, 500},
    {8131, 500},
    {8132, 500},
    {8133, 500},
    {8134, 500},
    {8135, 500},
    {8136, 500},
    {8137, 500},
    {8138, 500},
    {8139, 500},
    {8140, 500},
    {8141, 500},
    {8142, 500},
    {8143, 500},
    {8144, 500},
    {8145, 500},
    {8146, 500},
    {8147, 500},
    {8148, 500},
    {8149, 500},
    {8150, 500},
    {8151, 500},
    {8152, 500},
    {8153, 500},
    {8154, 500},
    {8155, 500},
    {8156, 500},
    {8157, 500},
    {8158, 500},
    {8159, 500},
    {8160, 500},
    {8161, 500},
    {8162, 500},
    {8163, 500},
    {8164, 500},
    {8165, 500},
    {8166, 500},
    {8167, 500},
    {8168, 500},
    {8169, 500},
    {8170, 500},
    {8171, 500},
    {8172, 500},
    {8173, 500},
    {8174, 500},
    {8175, 500},
    {8176, 500},
    {8177, 500},
    {8178, 500},
    {8179, 500},
    {8180, 500},
    {8181, 500},
    {8182, 500},
    {8183, 500},
    {8184, 500},
    {8185, 500},
    {8186, 500},
    {8187, 500},
    {8188, 500},
    {0xFFFF, 0}
};


static const HPDF_CID_Width Dotum_W_ARRAY[] = {
    {1, 333},
    {2, 333},
    {3, 416},
    {4, 625},
    {5, 500},
    {6, 916},
    {7, 708},
    {8, 291},
    {9, 375},
    {10, 375},
    {11, 583},
    {12, 582},
    {13, 375},
    {14, 589},
    {15, 375},
    {16, 416},
    {17, 583},
    {18, 583},
    {19, 583},
    {20, 583},
    {21, 583},
    {22, 583},
    {23, 583},
    {24, 583},
    {25, 583},
    {26, 583},
    {27, 339},
    {28, 339},
    {29, 625},
    {30, 583},
    {31, 625},
    {32, 583},
    {34, 666},
    {35, 679},
    {36, 720},
    {37, 724},
    {38, 628},
    {39, 599},
    {40, 750},
    {41, 722},
    {42, 257},
    {43, 484},
    {44, 656},
    {45, 541},
    {46, 808},
    {47, 697},
    {48, 750},
    {49, 642},
    {50, 750},
    {51, 667},
    {52, 638},
    {53, 583},
    {54, 724},
    {55, 601},
    {56, 892},
    {57, 603},
    {58, 601},
    {59, 603},
    {60, 500},
    {61, 958},
    {62, 500},
    {63, 625},
    {64, 500},
    {65, 332},
    {66, 583},
    {67, 599},
    {68, 558},
    {69, 603},
    {70, 558},
    {71, 343},
    {72, 597},
    {73, 560},
    {74, 228},
    {75, 228},
    {76, 509},
    {77, 230},
    {78, 916},
    {79, 568},
    {80, 599},
    {81, 601},
    {82, 603},
    {83, 320},
    {84, 515},
    {85, 312},
    {86, 554},
    {87, 474},
    {88, 724},
    {89, 478},
    {90, 480},
    {91, 482},
    {92, 500},
    {93, 500},
    {94, 500},
    {95, 791},
    {104, 332},
    {107, 500},
    {109, 500},
    {110, 687},
    {114, 291},
    {115, 291},
    {116, 458},
    {117, 458},
    {130, 833},
    {131, 833},
    {132, 833},
    {133, 833},
    {134, 833},
    {135, 833},
    {136, 911},
    {138, 405},
    {139, 335},
    {140, 563},
    {146, 625},
    {147, 625},
    {151, 562},
    {153, 833},
    {155, 562},
    {160, 937},
    {164, 889},
    {165, 889},
    {167, 914},
    {169, 914},
    {172, 750},
    {173, 750},
    {178, 500},
    {182, 375},
    {191, 718},
    {199, 333},
    {201, 437},
    {202, 375},
    {203, 437},
    {204, 312},
    {205, 317},
    {206, 333},
    {207, 312},
    {208, 416},
    {209, 583},
    {212, 812},
    {213, 687},
    {214, 562},
    {222, 750},
    {224, 792},
    {226, 843},
    {244, 562},
    {245, 562},
    {246, 562},
    {247, 750},
    {254, 687},
    {471, 666},
    {472, 708},
    {473, 594},
    {474, 705},
    {475, 666},
    {476, 625},
    {477, 750},
    {478, 791},
    {479, 291},
    {480, 708},
    {481, 666},
    {482, 875},
    {483, 750},
    {484, 750},
    {485, 791},
    {486, 702},
    {487, 666},
    {488, 674},
    {489, 583},
    {490, 625},
    {491, 770},
    {492, 625},
    {493, 794},
    {494, 750},
    {495, 625},
    {496, 563},
    {497, 562},
    {498, 571},
    {499, 562},
    {500, 500},
    {501, 625},
    {502, 687},
    {503, 375},
    {504, 562},
    {505, 687},
    {506, 567},
    {507, 500},
    {508, 500},
    {509, 625},
    {510, 687},
    {511, 625},
    {512, 625},
    {513, 583},
    {514, 583},
    {515, 625},
    {516, 583},
    {517, 731},
    {518, 750},
    {590, 500},
    {643, 750},
    {666, 937},
    {667, 751},
    {668, 403},
    {669, 750},
    {670, 750},
    {671, 583},
    {672, 583},
    {673, 791},
    {674, 934},
    {675, 375},
    {676, 666},
    {677, 583},
    {678, 750},
    {748, 500},
    {751, 500},
    {752, 500},
    {753, 562},
    {754, 561},
    {755, 562},
    {756, 562},
    {757, 812},
    {758, 625},
    {759, 625},
    {760, 583},
    {761, 250},
    {762, 500},
    {763, 562},
    {764, 312},
    {765, 250},
    {766, 625},
    {767, 875},
    {768, 625},
    {769, 625},
    {770, 333},
    {771, 625},
    {772, 687},
    {842, 375},
    {843, 322},
    {844, 322},
    {846, 500},
    {1020, 666},
    {1021, 708},
    {1022, 708},
    {1023, 594},
    {1024, 812},
    {1025, 666},
    {1026, 666},
    {1027, 937},
    {1028, 583},
    {1029, 750},
    {1030, 750},
    {1031, 708},
    {1032, 714},
    {1033, 875},
    {1034, 750},
    {1035, 791},
    {1036, 750},
    {1037, 666},
    {1038, 750},
    {1039, 583},
    {1040, 500},
    {1041, 770},
    {1042, 625},
    {1043, 742},
    {1044, 583},
    {1045, 966},
    {1046, 966},
    {1047, 787},
    {1048, 825},
    {1049, 666},
    {1050, 738},
    {1051, 991},
    {1052, 708},
    {1053, 583},
    {1054, 583},
    {1055, 610},
    {1056, 583},
    {1057, 653},
    {1058, 583},
    {1059, 583},
    {1060, 768},
    {1061, 563},
    {1062, 658},
    {1063, 662},
    {1064, 562},
    {1065, 641},
    {1066, 740},
    {1067, 640},
    {1068, 625},
    {1069, 645},
    {1070, 625},
    {1071, 583},
    {1072, 595},
    {1073, 500},
    {1074, 763},
    {1075, 500},
    {1076, 619},
    {1077, 583},
    {1078, 840},
    {1079, 838},
    {1080, 609},
    {1081, 779},
    {1082, 512},
    {1083, 574},
    {1084, 770},
    {1085, 581},
    {8094, 333},
    {8095, 333},
    {8096, 416},
    {8097, 625},
    {8098, 500},
    {8099, 916},
    {8100, 708},
    {8101, 291},
    {8102, 375},
    {8103, 375},
    {8104, 583},
    {8105, 582},
    {8106, 375},
    {8107, 589},
    {8108, 375},
    {8109, 416},
    {8110, 583},
    {8111, 583},
    {8112, 583},
    {8113, 583},
    {8114, 583},
    {8115, 583},
    {8116, 583},
    {8117, 583},
    {8118, 583},
    {8119, 583},
    {8120, 339},
    {8121, 339},
    {8122, 625},
    {8123, 583},
    {8124, 625},
    {8125, 583},
    {8127, 666},
    {8128, 679},
    {8129, 720},
    {8130, 724},
    {8131, 628},
    {8132, 599},
    {8133, 750},
    {8134, 722},
    {8135, 257},
    {8136, 484},
    {8137, 656},
    {8138, 541},
    {8139, 808},
    {8140, 697},
    {8141, 750},
    {8142, 642},
    {8143, 750},
    {8144, 667},
    {8145, 638},
    {8146, 583},
    {8147, 724},
    {8148, 601},
    {8149, 892},
    {8150, 603},
    {8151, 601},
    {8152, 603},
    {8153, 500},
    {8154, 958},
    {8155, 500},
    {8156, 625},
    {8157, 500},
    {8158, 332},
    {8159, 583},
    {8160, 599},
    {8161, 558},
    {8162, 603},
    {8163, 558},
    {8164, 343},
    {8165, 597},
    {8166, 560},
    {8167, 228},
    {8168, 228},
    {8169, 509},
    {8170, 230},
    {8171, 916},
    {8172, 568},
    {8173, 599},
    {8174, 601},
    {8175, 603},
    {8176, 320},
    {8177, 515},
    {8178, 312},
    {8179, 554},
    {8180, 474},
    {8181, 724},
    {8182, 478},
    {8183, 480},
    {8184, 482},
    {8185, 500},
    {8186, 500},
    {8187, 500},
    {8188, 791},
    {0xFFFF, 0}
};


static const HPDF_CID_Width BatangChe_W_ARRAY[] = {
    {1, 500},
    {2, 500},
    {3, 500},
    {4, 500},
    {5, 500},
    {6, 500},
    {7, 500},
    {8, 500},
    {9, 500},
    {10, 500},
    {11, 500},
    {12, 500},
    {13, 500},
    {14, 500},
    {15, 500},
    {16, 500},
    {17, 500},
    {18, 500},
    {19, 500},
    {20, 500},
    {21, 500},
    {22, 500},
    {23, 500},
    {24, 500},
    {25, 500},
    {26, 500},
    {27, 500},
    {28, 500},
    {29, 500},
    {30, 500},
    {31, 500},
    {32, 500},
    {33, 500},
    {34, 500},
    {35, 500},
    {36, 500},
    {37, 500},
    {38, 500},
    {39, 500},
    {40, 500},
    {41, 500},
    {42, 500},
    {43, 500},
    {44, 500},
    {45, 500},
    {46, 500},
    {47, 500},
    {48, 500},
    {49, 500},
    {50, 500},
    {51, 500},
    {52, 500},
    {53, 500},
    {54, 500},
    {55, 500},
    {56, 500},
    {57, 500},
    {58, 500},
    {59, 500},
    {60, 500},
    {61, 500},
    {62, 500},
    {63, 500},
    {64, 500},
    {65, 500},
    {66, 500},
    {67, 500},
    {68, 500},
    {69, 500},
    {70, 500},
    {71, 500},
    {72, 500},
    {73, 500},
    {74, 500},
    {75, 500},
    {76, 500},
    {77, 500},
    {78, 500},
    {79, 500},
    {80, 500},
    {81, 500},
    {82, 500},
    {83, 500},
    {84, 500},
    {85, 500},
    {86, 500},
    {87, 500},
    {88, 500},
    {89, 500},
    {90, 500},
    {91, 500},
    {92, 500},
    {93, 500},
    {94, 500},
    {95, 500},
    {8094, 500},
    {8095, 500},
    {8096, 500},
    {8097, 500},
    {8098, 500},
    {8099, 500},
    {8100, 500},
    {8101, 500},
    {8102, 500},
    {8103, 500},
    {8104, 500},
    {8105, 500},
    {8106, 500},
    {8107, 500},
    {8108, 500},
    {8109, 500},
    {8110, 500},
    {8111, 500},
    {8112, 500},
    {8113, 500},
    {8114, 500},
    {8115, 500},
    {8116, 500},
    {8117, 500},
    {8118, 500},
    {8119, 500},
    {8120, 500},
    {8121, 500},
    {8122, 500},
    {8123, 500},
    {8124, 500},
    {8125, 500},
    {8126, 500},
    {8127, 500},
    {8128, 500},
    {8129, 500},
    {8130, 500},
    {8131, 500},
    {8132, 500},
    {8133, 500},
    {8134, 500},
    {8135, 500},
    {8136, 500},
    {8137, 500},
    {8138, 500},
    {8139, 500},
    {8140, 500},
    {8141, 500},
    {8142, 500},
    {8143, 500},
    {8144, 500},
    {8145, 500},
    {8146, 500},
    {8147, 500},
    {8148, 500},
    {8149, 500},
    {8150, 500},
    {8151, 500},
    {8152, 500},
    {8153, 500},
    {8154, 500},
    {8155, 500},
    {8156, 500},
    {8157, 500},
    {8158, 500},
    {8159, 500},
    {8160, 500},
    {8161, 500},
    {8162, 500},
    {8163, 500},
    {8164, 500},
    {8165, 500},
    {8166, 500},
    {8167, 500},
    {8168, 500},
    {8169, 500},
    {8170, 500},
    {8171, 500},
    {8172, 500},
    {8173, 500},
    {8174, 500},
    {8175, 500},
    {8176, 500},
    {8177, 500},
    {8178, 500},
    {8179, 500},
    {8180, 500},
    {8181, 500},
    {8182, 500},
    {8183, 500},
    {8184, 500},
    {8185, 500},
    {8186, 500},
    {8187, 500},
    {8188, 500},
    {0xFFFF, 0}
};



static const HPDF_CID_Width Batang_W_ARRAY[] = {
    {1, 333},
    {2, 416},
    {3, 416},
    {4, 625},
    {5, 541},
    {6, 666},
    {7, 583},
    {8, 291},
    {9, 416},
    {10, 416},
    {11, 500},
    {12, 625},
    {13, 333},
    {14, 832},
    {15, 333},
    {16, 375},
    {17, 583},
    {18, 583},
    {19, 583},
    {20, 583},
    {21, 583},
    {22, 583},
    {23, 583},
    {24, 583},
    {25, 583},
    {26, 583},
    {27, 333},
    {28, 333},
    {29, 708},
    {30, 625},
    {31, 708},
    {32, 583},
    {33, 735},
    {34, 687},
    {35, 683},
    {36, 687},
    {37, 678},
    {38, 657},
    {39, 656},
    {40, 700},
    {41, 702},
    {42, 462},
    {43, 562},
    {44, 687},
    {45, 625},
    {46, 812},
    {47, 711},
    {48, 672},
    {49, 651},
    {50, 702},
    {51, 702},
    {52, 619},
    {53, 648},
    {54, 712},
    {55, 682},
    {56, 792},
    {57, 666},
    {58, 667},
    {59, 634},
    {60, 500},
    {61, 750},
    {62, 500},
    {63, 562},
    {64, 500},
    {65, 327},
    {66, 613},
    {67, 637},
    {68, 615},
    {69, 637},
    {70, 610},
    {71, 500},
    {72, 637},
    {73, 650},
    {74, 469},
    {75, 471},
    {76, 641},
    {77, 500},
    {78, 875},
    {79, 646},
    {80, 657},
    {81, 655},
    {82, 655},
    {83, 583},
    {84, 583},
    {85, 562},
    {86, 645},
    {87, 645},
    {88, 750},
    {89, 613},
    {90, 647},
    {91, 551},
    {92, 500},
    {93, 500},
    {94, 500},
    {95, 791},
    {104, 332},
    {107, 500},
    {109, 437},
    {110, 687},
    {114, 333},
    {115, 333},
    {116, 500},
    {117, 500},
    {130, 833},
    {131, 833},
    {132, 833},
    {133, 833},
    {134, 833},
    {135, 833},
    {136, 913},
    {138, 437},
    {139, 333},
    {140, 525},
    {146, 625},
    {147, 625},
    {151, 593},
    {153, 833},
    {155, 625},
    {164, 889},
    {165, 889},
    {167, 914},
    {169, 914},
    {172, 750},
    {173, 750},
    {178, 549},
    {182, 569},
    {191, 718},
    {199, 375},
    {201, 375},
    {202, 375},
    {203, 500},
    {204, 312},
    {205, 312},
    {206, 333},
    {207, 375},
    {208, 416},
    {209, 583},
    {212, 897},
    {213, 798},
    {214, 500},
    {222, 750},
    {224, 792},
    {226, 843},
    {244, 687},
    {245, 562},
    {246, 562},
    {247, 750},
    {254, 687},
    {258, 959},
    {471, 708},
    {472, 708},
    {473, 666},
    {474, 687},
    {475, 708},
    {476, 687},
    {477, 750},
    {478, 708},
    {479, 587},
    {480, 750},
    {481, 708},
    {482, 833},
    {483, 750},
    {484, 791},
    {485, 708},
    {486, 763},
    {487, 666},
    {488, 708},
    {489, 708},
    {490, 708},
    {491, 687},
    {492, 708},
    {493, 883},
    {494, 812},
    {495, 666},
    {496, 625},
    {497, 666},
    {498, 597},
    {499, 562},
    {500, 500},
    {501, 666},
    {502, 625},
    {503, 543},
    {504, 666},
    {505, 750},
    {506, 666},
    {507, 666},
    {508, 500},
    {509, 616},
    {510, 728},
    {511, 666},
    {512, 687},
    {513, 599},
    {514, 625},
    {515, 666},
    {516, 730},
    {517, 812},
    {518, 777},
    {590, 525},
    {643, 812},
    {667, 708},
    {668, 500},
    {669, 750},
    {671, 666},
    {672, 666},
    {673, 708},
    {675, 500},
    {676, 666},
    {677, 708},
    {678, 750},
    {748, 500},
    {751, 500},
    {752, 500},
    {753, 500},
    {754, 500},
    {755, 500},
    {756, 500},
    {757, 812},
    {758, 666},
    {759, 625},
    {760, 666},
    {761, 541},
    {762, 901},
    {763, 666},
    {764, 541},
    {765, 541},
    {766, 666},
    {767, 948},
    {768, 750},
    {769, 666},
    {770, 583},
    {771, 666},
    {772, 666},
    {842, 500},
    {843, 500},
    {844, 500},
    {846, 500},
    {1020, 708},
    {1021, 708},
    {1022, 708},
    {1023, 666},
    {1024, 773},
    {1025, 708},
    {1026, 708},
    {1028, 687},
    {1029, 750},
    {1030, 750},
    {1031, 750},
    {1032, 797},
    {1033, 833},
    {1034, 750},
    {1035, 708},
    {1036, 750},
    {1037, 666},
    {1038, 708},
    {1039, 708},
    {1040, 666},
    {1041, 687},
    {1042, 708},
    {1043, 750},
    {1044, 666},
    {1047, 843},
    {1049, 647},
    {1050, 687},
    {1052, 750},
    {1053, 666},
    {1054, 625},
    {1055, 666},
    {1056, 605},
    {1057, 666},
    {1058, 625},
    {1059, 625},
    {1060, 812},
    {1061, 599},
    {1062, 715},
    {1063, 715},
    {1064, 666},
    {1065, 760},
    {1066, 729},
    {1067, 650},
    {1068, 616},
    {1069, 667},
    {1070, 666},
    {1071, 625},
    {1072, 625},
    {1073, 666},
    {1074, 767},
    {1075, 625},
    {1076, 720},
    {1077, 666},
    {1078, 797},
    {1079, 841},
    {1080, 733},
    {1081, 875},
    {1082, 649},
    {1083, 625},
    {1084, 887},
    {1085, 659},
    {8094, 333},
    {8095, 416},
    {8096, 416},
    {8097, 625},
    {8098, 541},
    {8099, 666},
    {8100, 583},
    {8101, 291},
    {8102, 416},
    {8103, 416},
    {8104, 500},
    {8105, 625},
    {8106, 333},
    {8107, 832},
    {8108, 333},
    {8109, 375},
    {8110, 583},
    {8111, 583},
    {8112, 583},
    {8113, 583},
    {8114, 583},
    {8115, 583},
    {8116, 583},
    {8117, 583},
    {8118, 583},
    {8119, 583},
    {8120, 333},
    {8121, 333},
    {8122, 708},
    {8123, 625},
    {8124, 708},
    {8125, 583},
    {8126, 735},
    {8127, 687},
    {8128, 683},
    {8129, 687},
    {8130, 678},
    {8131, 657},
    {8132, 656},
    {8133, 700},
    {8134, 702},
    {8135, 462},
    {8136, 562},
    {8137, 687},
    {8138, 625},
    {8139, 812},
    {8140, 711},
    {8141, 672},
    {8142, 651},
    {8143, 702},
    {8144, 702},
    {8145, 619},
    {8146, 648},
    {8147, 712},
    {8148, 682},
    {8149, 792},
    {8150, 666},
    {8151, 667},
    {8152, 634},
    {8153, 500},
    {8154, 750},
    {8155, 500},
    {8156, 562},
    {8157, 500},
    {8158, 327},
    {8159, 613},
    {8160, 637},
    {8161, 615},
    {8162, 637},
    {8163, 610},
    {8164, 500},
    {8165, 637},
    {8166, 650},
    {8167, 469},
    {8168, 471},
    {8169, 641},
    {8170, 500},
    {8171, 875},
    {8172, 646},
    {8173, 657},
    {8174, 655},
    {8175, 655},
    {8176, 583},
    {8177, 583},
    {8178, 562},
    {8179, 645},
    {8180, 645},
    {8181, 750},
    {8182, 613},
    {8183, 647},
    {8184, 551},
    {8185, 500},
    {8186, 500},
    {8187, 500},
    {8188, 791},
    {0xFFFF, 0}
};


/*---------------------------------------------------------------------------*/
/*----- BatangChe Font ---------------------------------------------------------*/


static HPDF_STATUS
DotumChe_Init  (HPDF_FontDef   fontdef)
{
    HPDF_STATUS ret;

    HPDF_PTRACE ((" HPDF_FontDef_DotumChe_Init\n"));

    fontdef->ascent = 858;
    fontdef->descent = -141;
    fontdef->cap_height = 679;
    fontdef->font_bbox = HPDF_ToBox(0, -150, 1000, 863);
    fontdef->flags = HPDF_FONT_SYMBOLIC + HPDF_FONT_FIXED_WIDTH;
    fontdef->italic_angle = 0;
    fontdef->stemv = 78;
    if ((ret = HPDF_CIDFontDef_AddWidth (fontdef, DotumChe_W_ARRAY)) !=
                HPDF_OK) {
        return ret;
    }

    fontdef->type = HPDF_FONTDEF_TYPE_CID;
    fontdef->valid = HPDF_TRUE;

    return HPDF_OK;
}


static HPDF_STATUS
DotumChe_Bold_Init  (HPDF_FontDef   fontdef)
{
    HPDF_STATUS ret = DotumChe_Init (fontdef);

    if (ret != HPDF_OK)
        return ret;

    return HPDF_CIDFontDef_ChangeStyle (fontdef, HPDF_TRUE, HPDF_FALSE);
}


static HPDF_STATUS
DotumChe_Italic_Init  (HPDF_FontDef   fontdef)
{
    HPDF_STATUS ret = DotumChe_Init (fontdef);

    if (ret != HPDF_OK)
        return ret;

    return HPDF_CIDFontDef_ChangeStyle (fontdef, HPDF_FALSE, HPDF_TRUE);
}

static HPDF_STATUS
DotumChe_BoldItalic_Init  (HPDF_FontDef   fontdef)
{
    HPDF_STATUS ret = DotumChe_Init (fontdef);

    if (ret != HPDF_OK)
        return ret;

    return HPDF_CIDFontDef_ChangeStyle (fontdef, HPDF_TRUE, HPDF_TRUE);
}


static HPDF_STATUS
Dotum_Init  (HPDF_FontDef   fontdef)
{
    HPDF_STATUS ret;

    HPDF_PTRACE ((" HPDF_FontDef_Dotum_Init\n"));

    fontdef->ascent = 858;
    fontdef->descent = -141;
    fontdef->cap_height = 679;
    fontdef->font_bbox = HPDF_ToBox(0, -150, 1000, 863);
    fontdef->flags = HPDF_FONT_SYMBOLIC;
    fontdef->italic_angle = 0;
    fontdef->stemv = 78;
    if ((ret = HPDF_CIDFontDef_AddWidth (fontdef, Dotum_W_ARRAY)) !=
                HPDF_OK) {
        return ret;
    }

    fontdef->type = HPDF_FONTDEF_TYPE_CID;
    fontdef->valid = HPDF_TRUE;

    return HPDF_OK;
}


static HPDF_STATUS
Dotum_Bold_Init  (HPDF_FontDef   fontdef)
{
    HPDF_STATUS ret = Dotum_Init (fontdef);

    if (ret != HPDF_OK)
        return ret;

    return HPDF_CIDFontDef_ChangeStyle (fontdef, HPDF_TRUE, HPDF_FALSE);
}


static HPDF_STATUS
Dotum_Italic_Init  (HPDF_FontDef   fontdef)
{
    HPDF_STATUS ret = Dotum_Init (fontdef);

    if (ret != HPDF_OK)
        return ret;

    return HPDF_CIDFontDef_ChangeStyle (fontdef, HPDF_FALSE, HPDF_TRUE);
}

static HPDF_STATUS
Dotum_BoldItalic_Init  (HPDF_FontDef   fontdef)
{
    HPDF_STATUS ret = Dotum_Init (fontdef);

    if (ret != HPDF_OK)
        return ret;

    return HPDF_CIDFontDef_ChangeStyle (fontdef, HPDF_TRUE, HPDF_TRUE);
}


static HPDF_STATUS
BatangChe_Init  (HPDF_FontDef   fontdef)
{
    HPDF_STATUS ret;

    HPDF_PTRACE ((" HPDF_FontDef_BatangChe_Init\n"));

    fontdef->ascent = 858;
    fontdef->descent = -141;
    fontdef->cap_height = 769;
    fontdef->font_bbox = HPDF_ToBox(-0, -154, 1000, 861);
    fontdef->flags = HPDF_FONT_SYMBOLIC + HPDF_FONT_FIXED_WIDTH +
                HPDF_FONT_SERIF;
    fontdef->italic_angle = 0;
    fontdef->stemv = 78;
    if ((ret = HPDF_CIDFontDef_AddWidth (fontdef, DotumChe_W_ARRAY)) !=
                HPDF_OK) {
        return ret;
    }

    fontdef->type = HPDF_FONTDEF_TYPE_CID;
    fontdef->valid = HPDF_TRUE;

    return HPDF_OK;
}


static HPDF_STATUS
BatangChe_Bold_Init  (HPDF_FontDef   fontdef)
{
    HPDF_STATUS ret = BatangChe_Init (fontdef);

    if (ret != HPDF_OK)
        return ret;

    return HPDF_CIDFontDef_ChangeStyle (fontdef, HPDF_TRUE, HPDF_FALSE);
}


static HPDF_STATUS
BatangChe_Italic_Init  (HPDF_FontDef   fontdef)
{
    HPDF_STATUS ret = BatangChe_Init (fontdef);

    if (ret != HPDF_OK)
        return ret;

    return HPDF_CIDFontDef_ChangeStyle (fontdef, HPDF_FALSE, HPDF_TRUE);
}

static HPDF_STATUS
BatangChe_BoldItalic_Init  (HPDF_FontDef   fontdef)
{
    HPDF_STATUS ret = BatangChe_Init (fontdef);

    if (ret != HPDF_OK)
        return ret;

    return HPDF_CIDFontDef_ChangeStyle (fontdef, HPDF_TRUE, HPDF_TRUE);
}


static HPDF_STATUS
Batang_Init  (HPDF_FontDef   fontdef)
{
    HPDF_STATUS ret;

    HPDF_PTRACE ((" HPDF_FontDef_Batang_Init\n"));

    fontdef->ascent = 858;
    fontdef->descent = -141;
    fontdef->cap_height = 679;
    fontdef->font_bbox = HPDF_ToBox(0, -154, 1000, 861);
    fontdef->flags = HPDF_FONT_SYMBOLIC + HPDF_FONT_SERIF;
    fontdef->italic_angle = 0;
    fontdef->stemv = 78;
    if ((ret = HPDF_CIDFontDef_AddWidth (fontdef, Dotum_W_ARRAY)) !=
                HPDF_OK) {
        return ret;
    }

    fontdef->type = HPDF_FONTDEF_TYPE_CID;
    fontdef->valid = HPDF_TRUE;

    return HPDF_OK;
}


static HPDF_STATUS
Batang_Bold_Init  (HPDF_FontDef   fontdef)
{
    HPDF_STATUS ret = Batang_Init (fontdef);

    if (ret != HPDF_OK)
        return ret;

    return HPDF_CIDFontDef_ChangeStyle (fontdef, HPDF_TRUE, HPDF_FALSE);
}


static HPDF_STATUS
Batang_Italic_Init  (HPDF_FontDef   fontdef)
{
    HPDF_STATUS ret = Batang_Init (fontdef);

    if (ret != HPDF_OK)
        return ret;

    return HPDF_CIDFontDef_ChangeStyle (fontdef, HPDF_FALSE, HPDF_TRUE);
}

static HPDF_STATUS
Batang_BoldItalic_Init  (HPDF_FontDef   fontdef)
{
    HPDF_STATUS ret = Batang_Init (fontdef);

    if (ret != HPDF_OK)
        return ret;

    return HPDF_CIDFontDef_ChangeStyle (fontdef, HPDF_TRUE, HPDF_TRUE);
}


HPDF_EXPORT(HPDF_STATUS)
HPDF_UseKRFonts   (HPDF_Doc   pdf)
{
    HPDF_FontDef fontdef;
    HPDF_STATUS ret;

    if (!HPDF_HasDoc (pdf))
        return HPDF_INVALID_DOCUMENT;

    /* DotumChe */
    fontdef = HPDF_CIDFontDef_New (pdf->mmgr,  "DotumChe",
                DotumChe_Init);

    if ((ret = HPDF_Doc_RegisterFontDef (pdf, fontdef)) != HPDF_OK)
        return ret;

    fontdef = HPDF_CIDFontDef_New (pdf->mmgr,  "DotumChe,Bold",
                DotumChe_Bold_Init);

    if ((ret = HPDF_Doc_RegisterFontDef (pdf, fontdef)) != HPDF_OK)
        return ret;

    fontdef = HPDF_CIDFontDef_New (pdf->mmgr,  "DotumChe,Italic",
                DotumChe_Italic_Init);

    if ((ret = HPDF_Doc_RegisterFontDef (pdf, fontdef)) != HPDF_OK)
        return ret;

    fontdef = HPDF_CIDFontDef_New (pdf->mmgr,  "DotumChe,BoldItalic",
                DotumChe_BoldItalic_Init);

    if ((ret = HPDF_Doc_RegisterFontDef (pdf, fontdef)) != HPDF_OK)
        return ret;

    /* Dotum */
    fontdef = HPDF_CIDFontDef_New (pdf->mmgr,  "Dotum",
                Dotum_Init);

    if ((ret = HPDF_Doc_RegisterFontDef (pdf, fontdef)) != HPDF_OK)
        return ret;

    fontdef = HPDF_CIDFontDef_New (pdf->mmgr,  "Dotum,Bold",
                Dotum_Bold_Init);

    if ((ret = HPDF_Doc_RegisterFontDef (pdf, fontdef)) != HPDF_OK)
        return ret;

    fontdef = HPDF_CIDFontDef_New (pdf->mmgr,  "Dotum,Italic",
                Dotum_Italic_Init);

    if ((ret = HPDF_Doc_RegisterFontDef (pdf, fontdef)) != HPDF_OK)
        return ret;

    fontdef = HPDF_CIDFontDef_New (pdf->mmgr,  "Dotum,BoldItalic",
                Dotum_BoldItalic_Init);

    if ((ret = HPDF_Doc_RegisterFontDef (pdf, fontdef)) != HPDF_OK)
        return ret;

    /* BatangChe */
    fontdef = HPDF_CIDFontDef_New (pdf->mmgr,  "BatangChe",
                BatangChe_Init);

    if ((ret = HPDF_Doc_RegisterFontDef (pdf, fontdef)) != HPDF_OK)
        return ret;

    fontdef = HPDF_CIDFontDef_New (pdf->mmgr,  "BatangChe,Bold",
                BatangChe_Bold_Init);

    if ((ret = HPDF_Doc_RegisterFontDef (pdf, fontdef)) != HPDF_OK)
        return ret;

    fontdef = HPDF_CIDFontDef_New (pdf->mmgr,  "BatangChe,Italic",
                BatangChe_Italic_Init);

    if ((ret = HPDF_Doc_RegisterFontDef (pdf, fontdef)) != HPDF_OK)
        return ret;

    fontdef = HPDF_CIDFontDef_New (pdf->mmgr,  "BatangChe,BoldItalic",
                BatangChe_BoldItalic_Init);

    if ((ret = HPDF_Doc_RegisterFontDef (pdf, fontdef)) != HPDF_OK)
        return ret;

    /* Batang */
    fontdef = HPDF_CIDFontDef_New (pdf->mmgr,  "Batang",
                Batang_Init);

    if ((ret = HPDF_Doc_RegisterFontDef (pdf, fontdef)) != HPDF_OK)
        return ret;

    fontdef = HPDF_CIDFontDef_New (pdf->mmgr,  "Batang,Bold",
                Batang_Bold_Init);

    if ((ret = HPDF_Doc_RegisterFontDef (pdf, fontdef)) != HPDF_OK)
        return ret;

    fontdef = HPDF_CIDFontDef_New (pdf->mmgr,  "Batang,Italic",
                Batang_Italic_Init);

    if ((ret = HPDF_Doc_RegisterFontDef (pdf, fontdef)) != HPDF_OK)
        return ret;

    fontdef = HPDF_CIDFontDef_New (pdf->mmgr,  "Batang,BoldItalic",
                Batang_BoldItalic_Init);

    if ((ret = HPDF_Doc_RegisterFontDef (pdf, fontdef)) != HPDF_OK)
        return ret;

    return HPDF_OK;
}