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/Japan1/cmaps_japan1.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_Japan1_cmaps[] = { 16 {"83pv-RKSJ-H", FXCMAP_CMap::Range, g_FXCMAP_83pv_RKSJ_H_1, 222, 17 FXCMAP_CMap::None, nullptr, 0, 0}, 18 {"90ms-RKSJ-H", FXCMAP_CMap::Range, g_FXCMAP_90ms_RKSJ_H_2, 171, 19 FXCMAP_CMap::None, nullptr, 0, 0}, 20 {"90ms-RKSJ-V", FXCMAP_CMap::Range, g_FXCMAP_90ms_RKSJ_V_2, 78, 21 FXCMAP_CMap::None, nullptr, 0, -1}, 22 {"90msp-RKSJ-H", FXCMAP_CMap::Range, g_FXCMAP_90msp_RKSJ_H_2, 170, 23 FXCMAP_CMap::None, nullptr, 0, -2}, 24 {"90msp-RKSJ-V", FXCMAP_CMap::Range, g_FXCMAP_90msp_RKSJ_V_2, 78, 25 FXCMAP_CMap::None, nullptr, 0, -1}, 26 {"90pv-RKSJ-H", FXCMAP_CMap::Range, g_FXCMAP_90pv_RKSJ_H_1, 263, 27 FXCMAP_CMap::None, nullptr, 0, 0}, 28 {"Add-RKSJ-H", FXCMAP_CMap::Range, g_FXCMAP_Add_RKSJ_H_1, 635, 29 FXCMAP_CMap::None, nullptr, 0, 0}, 30 {"Add-RKSJ-V", FXCMAP_CMap::Range, g_FXCMAP_Add_RKSJ_V_1, 57, 31 FXCMAP_CMap::None, nullptr, 0, -1}, 32 {"EUC-H", FXCMAP_CMap::Range, g_FXCMAP_EUC_H_1, 120, FXCMAP_CMap::None, 33 nullptr, 0, 0}, 34 {"EUC-V", FXCMAP_CMap::Range, g_FXCMAP_EUC_V_1, 27, FXCMAP_CMap::None, 35 nullptr, 0, -1}, 36 {"Ext-RKSJ-H", FXCMAP_CMap::Range, g_FXCMAP_Ext_RKSJ_H_2, 665, 37 FXCMAP_CMap::None, nullptr, 0, -4}, 38 {"Ext-RKSJ-V", FXCMAP_CMap::Range, g_FXCMAP_Ext_RKSJ_V_2, 39, 39 FXCMAP_CMap::None, nullptr, 0, -1}, 40 {"H", FXCMAP_CMap::Range, g_FXCMAP_H_1, 118, FXCMAP_CMap::None, nullptr, 0, 41 0}, 42 {"V", FXCMAP_CMap::Range, g_FXCMAP_V_1, 27, FXCMAP_CMap::None, nullptr, 0, 43 -1}, 44 {"UniJIS-UCS2-H", FXCMAP_CMap::Single, g_FXCMAP_UniJIS_UCS2_H_4, 9772, 45 FXCMAP_CMap::None, nullptr, 0, 0}, 46 {"UniJIS-UCS2-V", FXCMAP_CMap::Single, g_FXCMAP_UniJIS_UCS2_V_4, 251, 47 FXCMAP_CMap::None, nullptr, 0, -1}, 48 {"UniJIS-UCS2-HW-H", FXCMAP_CMap::Range, g_FXCMAP_UniJIS_UCS2_HW_H_4, 4, 49 FXCMAP_CMap::None, nullptr, 0, -2}, 50 {"UniJIS-UCS2-HW-V", FXCMAP_CMap::Range, g_FXCMAP_UniJIS_UCS2_HW_V_4, 199, 51 FXCMAP_CMap::None, nullptr, 0, -1}, 52 {"UniJIS-UTF16-H", FXCMAP_CMap::Single, g_FXCMAP_UniJIS_UCS2_H_4, 9772, 53 FXCMAP_CMap::None, nullptr, 0, 0}, 54 {"UniJIS-UTF16-V", FXCMAP_CMap::Single, g_FXCMAP_UniJIS_UCS2_V_4, 251, 55 FXCMAP_CMap::None, nullptr, 0, -1}, 56 }; 57 58 void CPDF_ModuleMgr::LoadEmbeddedJapan1CMaps() { 59 CPDF_FontGlobals* pFontGlobals = 60 CPDF_ModuleMgr::Get()->GetPageModule()->GetFontGlobals(); 61 pFontGlobals->m_EmbeddedCharsets[CIDSET_JAPAN1].m_pMapList = 62 g_FXCMAP_Japan1_cmaps; 63 pFontGlobals->m_EmbeddedCharsets[CIDSET_JAPAN1].m_Count = 64 FX_ArraySize(g_FXCMAP_Japan1_cmaps); 65 pFontGlobals->m_EmbeddedToUnicodes[CIDSET_JAPAN1].m_pMap = 66 g_FXCMAP_Japan1CID2Unicode_4; 67 pFontGlobals->m_EmbeddedToUnicodes[CIDSET_JAPAN1].m_Count = 15444; 68 } 69