| OLD | NEW |
| 1 // Copyright 2014 PDFium Authors. All rights reserved. | 1 // Copyright 2014 PDFium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com | 5 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com |
| 6 | 6 |
| 7 #include "fpdfsdk/formfiller/cba_fontmap.h" | 7 #include "fpdfsdk/formfiller/cba_fontmap.h" |
| 8 | 8 |
| 9 #include "core/fpdfapi/fpdf_font/include/cpdf_font.h" | 9 #include "core/fpdfapi/fpdf_font/include/cpdf_font.h" |
| 10 #include "core/fpdfapi/fpdf_page/include/cpdf_page.h" | 10 #include "core/fpdfapi/fpdf_page/include/cpdf_page.h" |
| (...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 72 m_sDefaultFontName = sFontName; | 72 m_sDefaultFontName = sFontName; |
| 73 | 73 |
| 74 int32_t nCharset = DEFAULT_CHARSET; | 74 int32_t nCharset = DEFAULT_CHARSET; |
| 75 if (const CFX_SubstFont* pSubstFont = m_pDefaultFont->GetSubstFont()) | 75 if (const CFX_SubstFont* pSubstFont = m_pDefaultFont->GetSubstFont()) |
| 76 nCharset = pSubstFont->m_Charset; | 76 nCharset = pSubstFont->m_Charset; |
| 77 AddFontData(m_pDefaultFont, m_sDefaultFontName, nCharset); | 77 AddFontData(m_pDefaultFont, m_sDefaultFontName, nCharset); |
| 78 } | 78 } |
| 79 | 79 |
| 80 CPDF_Font* CBA_FontMap::FindFontSameCharset(CFX_ByteString& sFontAlias, | 80 CPDF_Font* CBA_FontMap::FindFontSameCharset(CFX_ByteString& sFontAlias, |
| 81 int32_t nCharset) { | 81 int32_t nCharset) { |
| 82 if (m_pAnnotDict->GetStringBy("Subtype") == "Widget") { | 82 if (m_pAnnotDict->GetStringBy("Subtype") != "Widget") |
| 83 CPDF_Document* pDocument = GetDocument(); | 83 return nullptr; |
| 84 CPDF_Dictionary* pRootDict = pDocument->GetRoot(); | |
| 85 if (!pRootDict) | |
| 86 return nullptr; | |
| 87 | 84 |
| 88 CPDF_Dictionary* pAcroFormDict = pRootDict->GetDictBy("AcroForm"); | 85 CPDF_Document* pDocument = GetDocument(); |
| 89 if (!pAcroFormDict) | 86 CPDF_Dictionary* pRootDict = pDocument->GetRoot(); |
| 90 return nullptr; | 87 if (!pRootDict) |
| 88 return nullptr; |
| 91 | 89 |
| 92 CPDF_Dictionary* pDRDict = pAcroFormDict->GetDictBy("DR"); | 90 CPDF_Dictionary* pAcroFormDict = pRootDict->GetDictBy("AcroForm"); |
| 93 if (!pDRDict) | 91 if (!pAcroFormDict) |
| 94 return nullptr; | 92 return nullptr; |
| 95 | 93 |
| 96 return FindResFontSameCharset(pDRDict, sFontAlias, nCharset); | 94 CPDF_Dictionary* pDRDict = pAcroFormDict->GetDictBy("DR"); |
| 97 } | 95 if (!pDRDict) |
| 96 return nullptr; |
| 98 | 97 |
| 99 return nullptr; | 98 return FindResFontSameCharset(pDRDict, sFontAlias, nCharset); |
| 100 } | 99 } |
| 101 | 100 |
| 102 CPDF_Document* CBA_FontMap::GetDocument() { | 101 CPDF_Document* CBA_FontMap::GetDocument() { |
| 103 return m_pDocument; | 102 return m_pDocument; |
| 104 } | 103 } |
| 105 | 104 |
| 106 CPDF_Font* CBA_FontMap::FindResFontSameCharset(CPDF_Dictionary* pResDict, | 105 CPDF_Font* CBA_FontMap::FindResFontSameCharset(CPDF_Dictionary* pResDict, |
| 107 CFX_ByteString& sFontAlias, | 106 CFX_ByteString& sFontAlias, |
| 108 int32_t nCharset) { | 107 int32_t nCharset) { |
| 109 if (!pResDict) | 108 if (!pResDict) |
| (...skipping 142 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 252 | 251 |
| 253 return pFontDict ? m_pDocument->LoadFont(pFontDict) : nullptr; | 252 return pFontDict ? m_pDocument->LoadFont(pFontDict) : nullptr; |
| 254 } | 253 } |
| 255 | 254 |
| 256 void CBA_FontMap::SetAPType(const CFX_ByteString& sAPType) { | 255 void CBA_FontMap::SetAPType(const CFX_ByteString& sAPType) { |
| 257 m_sAPType = sAPType; | 256 m_sAPType = sAPType; |
| 258 | 257 |
| 259 Reset(); | 258 Reset(); |
| 260 Initialize(); | 259 Initialize(); |
| 261 } | 260 } |
| OLD | NEW |