summaryrefslogtreecommitdiff
path: root/core/fpdfapi/cpdf_modulemgr.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'core/fpdfapi/cpdf_modulemgr.cpp')
-rw-r--r--core/fpdfapi/cpdf_modulemgr.cpp96
1 files changed, 69 insertions, 27 deletions
diff --git a/core/fpdfapi/cpdf_modulemgr.cpp b/core/fpdfapi/cpdf_modulemgr.cpp
index 678997a8c9..34fe04996e 100644
--- a/core/fpdfapi/cpdf_modulemgr.cpp
+++ b/core/fpdfapi/cpdf_modulemgr.cpp
@@ -6,6 +6,10 @@
#include "core/fpdfapi/cpdf_modulemgr.h"
+#include "core/fpdfapi/cmaps/CNS1/cmaps_cns1.h"
+#include "core/fpdfapi/cmaps/GB1/cmaps_gb1.h"
+#include "core/fpdfapi/cmaps/Japan1/cmaps_japan1.h"
+#include "core/fpdfapi/cmaps/Korea1/cmaps_korea1.h"
#include "core/fpdfapi/page/cpdf_pagemodule.h"
#include "core/fxcodec/fx_codec.h"
#include "third_party/base/ptr_util.h"
@@ -56,11 +60,36 @@ void CPDF_ModuleMgr::Init() {
LoadCodecModules();
}
-void CPDF_ModuleMgr::LoadEmbeddedMaps() {
- LoadEmbeddedGB1CMaps();
- LoadEmbeddedJapan1CMaps();
- LoadEmbeddedCNS1CMaps();
- LoadEmbeddedKorea1CMaps();
+CCodec_FaxModule* CPDF_ModuleMgr::GetFaxModule() {
+ return m_pCodecModule->GetFaxModule();
+}
+
+CCodec_JpegModule* CPDF_ModuleMgr::GetJpegModule() {
+ return m_pCodecModule->GetJpegModule();
+}
+
+CCodec_JpxModule* CPDF_ModuleMgr::GetJpxModule() {
+ return m_pCodecModule->GetJpxModule();
+}
+
+CCodec_Jbig2Module* CPDF_ModuleMgr::GetJbig2Module() {
+ return m_pCodecModule->GetJbig2Module();
+}
+
+CCodec_IccModule* CPDF_ModuleMgr::GetIccModule() {
+ return m_pCodecModule->GetIccModule();
+}
+
+CCodec_FlateModule* CPDF_ModuleMgr::GetFlateModule() {
+ return m_pCodecModule->GetFlateModule();
+}
+
+void CPDF_ModuleMgr::InitPageModule() {
+ m_pPageModule = pdfium::MakeUnique<CPDF_PageModule>();
+}
+
+void CPDF_ModuleMgr::InitCodecModule() {
+ m_pCodecModule = pdfium::MakeUnique<CCodec_ModuleMgr>();
}
void CPDF_ModuleMgr::LoadCodecModules() {
@@ -81,34 +110,47 @@ void CPDF_ModuleMgr::LoadCodecModules() {
#endif
}
-void CPDF_ModuleMgr::InitCodecModule() {
- m_pCodecModule = pdfium::MakeUnique<CCodec_ModuleMgr>();
-}
-
-void CPDF_ModuleMgr::InitPageModule() {
- m_pPageModule = pdfium::MakeUnique<CPDF_PageModule>();
-}
-
-CCodec_FaxModule* CPDF_ModuleMgr::GetFaxModule() {
- return m_pCodecModule->GetFaxModule();
-}
-
-CCodec_JpegModule* CPDF_ModuleMgr::GetJpegModule() {
- return m_pCodecModule->GetJpegModule();
+void CPDF_ModuleMgr::LoadEmbeddedMaps() {
+ LoadEmbeddedGB1CMaps();
+ LoadEmbeddedCNS1CMaps();
+ LoadEmbeddedJapan1CMaps();
+ LoadEmbeddedKorea1CMaps();
}
-CCodec_JpxModule* CPDF_ModuleMgr::GetJpxModule() {
- return m_pCodecModule->GetJpxModule();
+void CPDF_ModuleMgr::LoadEmbeddedGB1CMaps() {
+ CPDF_FontGlobals* pFontGlobals =
+ CPDF_ModuleMgr::Get()->GetPageModule()->GetFontGlobals();
+ pFontGlobals->SetEmbeddedCharset(
+ CIDSET_GB1,
+ pdfium::make_span(g_FXCMAP_GB1_cmaps, g_FXCMAP_GB1_cmaps_size));
+ pFontGlobals->SetEmbeddedToUnicode(CIDSET_GB1, g_FXCMAP_GB1CID2Unicode_5);
}
-CCodec_Jbig2Module* CPDF_ModuleMgr::GetJbig2Module() {
- return m_pCodecModule->GetJbig2Module();
+void CPDF_ModuleMgr::LoadEmbeddedCNS1CMaps() {
+ CPDF_FontGlobals* pFontGlobals =
+ CPDF_ModuleMgr::Get()->GetPageModule()->GetFontGlobals();
+ pFontGlobals->SetEmbeddedCharset(
+ CIDSET_CNS1,
+ pdfium::make_span(g_FXCMAP_CNS1_cmaps, g_FXCMAP_CNS1_cmaps_size));
+ pFontGlobals->SetEmbeddedToUnicode(CIDSET_CNS1, g_FXCMAP_CNS1CID2Unicode_5);
}
-CCodec_IccModule* CPDF_ModuleMgr::GetIccModule() {
- return m_pCodecModule->GetIccModule();
+void CPDF_ModuleMgr::LoadEmbeddedJapan1CMaps() {
+ CPDF_FontGlobals* pFontGlobals =
+ CPDF_ModuleMgr::Get()->GetPageModule()->GetFontGlobals();
+ pFontGlobals->SetEmbeddedCharset(
+ CIDSET_JAPAN1,
+ pdfium::make_span(g_FXCMAP_Japan1_cmaps, g_FXCMAP_Japan1_cmaps_size));
+ pFontGlobals->SetEmbeddedToUnicode(CIDSET_JAPAN1,
+ g_FXCMAP_Japan1CID2Unicode_4);
}
-CCodec_FlateModule* CPDF_ModuleMgr::GetFlateModule() {
- return m_pCodecModule->GetFlateModule();
+void CPDF_ModuleMgr::LoadEmbeddedKorea1CMaps() {
+ CPDF_FontGlobals* pFontGlobals =
+ CPDF_ModuleMgr::Get()->GetPageModule()->GetFontGlobals();
+ pFontGlobals->SetEmbeddedCharset(
+ CIDSET_KOREA1,
+ pdfium::make_span(g_FXCMAP_Korea1_cmaps, g_FXCMAP_Korea1_cmaps_size));
+ pFontGlobals->SetEmbeddedToUnicode(CIDSET_KOREA1,
+ g_FXCMAP_Korea1CID2Unicode_2);
}