Home | History | Annotate | Download | only in CNS1
      1 // Copyright 2014 PDFium Authors. All rights reserved.
      2 // Use of this source code is governed by a BSD-style license that can be
      3 // found in the LICENSE file.
      4 
      5 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
      6 
      7 #include "core/fpdfapi/cmaps/CNS1/cmaps_cns1.h"
      8 
      9 #include "core/fpdfapi/cmaps/cmap_int.h"
     10 #include "core/fpdfapi/cpdf_modulemgr.h"
     11 #include "core/fpdfapi/font/font_int.h"
     12 #include "core/fpdfapi/page/cpdf_pagemodule.h"
     13 #include "core/fxcrt/fx_basic.h"
     14 
     15 static const FXCMAP_CMap g_FXCMAP_CNS1_cmaps[] = {
     16     {"B5pc-H", FXCMAP_CMap::Range, g_FXCMAP_B5pc_H_0, 247, FXCMAP_CMap::None,
     17      nullptr, 0, 0},
     18     {"B5pc-V", FXCMAP_CMap::Range, g_FXCMAP_B5pc_V_0, 12, FXCMAP_CMap::None,
     19      nullptr, 0, -1},
     20     {"HKscs-B5-H", FXCMAP_CMap::Range, g_FXCMAP_HKscs_B5_H_5, 1210,
     21      FXCMAP_CMap::None, nullptr, 0, 0},
     22     {"HKscs-B5-V", FXCMAP_CMap::Range, g_FXCMAP_HKscs_B5_V_5, 13,
     23      FXCMAP_CMap::None, nullptr, 0, -1},
     24     {"ETen-B5-H", FXCMAP_CMap::Range, g_FXCMAP_ETen_B5_H_0, 254,
     25      FXCMAP_CMap::None, nullptr, 0, 0},
     26     {"ETen-B5-V", FXCMAP_CMap::Range, g_FXCMAP_ETen_B5_V_0, 13,
     27      FXCMAP_CMap::None, nullptr, 0, -1},
     28     {"ETenms-B5-H", FXCMAP_CMap::Range, g_FXCMAP_ETenms_B5_H_0, 1,
     29      FXCMAP_CMap::None, nullptr, 0, -2},
     30     {"ETenms-B5-V", FXCMAP_CMap::Range, g_FXCMAP_ETenms_B5_V_0, 18,
     31      FXCMAP_CMap::None, nullptr, 0, -1},
     32     {"CNS-EUC-H", FXCMAP_CMap::Range, g_FXCMAP_CNS_EUC_H_0, 157,
     33      FXCMAP_CMap::Range, g_FXCMAP_CNS_EUC_H_0_DWord, 238, 0},
     34     {"CNS-EUC-V", FXCMAP_CMap::Range, g_FXCMAP_CNS_EUC_V_0, 180,
     35      FXCMAP_CMap::Range, g_FXCMAP_CNS_EUC_V_0_DWord, 261, 0},
     36     {"UniCNS-UCS2-H", FXCMAP_CMap::Range, g_FXCMAP_UniCNS_UCS2_H_3, 16418,
     37      FXCMAP_CMap::None, nullptr, 0, 0},
     38     {"UniCNS-UCS2-V", FXCMAP_CMap::Range, g_FXCMAP_UniCNS_UCS2_V_3, 13,
     39      FXCMAP_CMap::None, nullptr, 0, -1},
     40     {"UniCNS-UTF16-H", FXCMAP_CMap::Single, g_FXCMAP_UniCNS_UTF16_H_0, 14557,
     41      FXCMAP_CMap::None, nullptr, 0, 0},
     42     {"UniCNS-UTF16-V", FXCMAP_CMap::Range, g_FXCMAP_UniCNS_UCS2_V_3, 13,
     43      FXCMAP_CMap::None, nullptr, 0, -1},
     44 };
     45 
     46 void CPDF_ModuleMgr::LoadEmbeddedCNS1CMaps() {
     47   CPDF_FontGlobals* pFontGlobals =
     48       CPDF_ModuleMgr::Get()->GetPageModule()->GetFontGlobals();
     49   pFontGlobals->m_EmbeddedCharsets[CIDSET_CNS1].m_pMapList =
     50       g_FXCMAP_CNS1_cmaps;
     51   pFontGlobals->m_EmbeddedCharsets[CIDSET_CNS1].m_Count =
     52       FX_ArraySize(g_FXCMAP_CNS1_cmaps);
     53   pFontGlobals->m_EmbeddedToUnicodes[CIDSET_CNS1].m_pMap =
     54       g_FXCMAP_CNS1CID2Unicode_5;
     55   pFontGlobals->m_EmbeddedToUnicodes[CIDSET_CNS1].m_Count = 19088;
     56 }
     57