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