| 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 "core/src/fpdfapi/fpdf_font/font_int.h" | 7 #include "core/src/fpdfapi/fpdf_font/font_int.h" |
| 8 | 8 |
| 9 #include "core/include/fpdfapi/fpdf_module.h" | 9 #include "core/include/fpdfapi/fpdf_module.h" |
| 10 #include "core/include/fpdfapi/fpdf_page.h" | 10 #include "core/include/fpdfapi/fpdf_page.h" |
| (...skipping 948 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 959 return ret; | 959 return ret; |
| 960 return m_Encoding.CharCodeFromUnicode(unicode); | 960 return m_Encoding.CharCodeFromUnicode(unicode); |
| 961 } | 961 } |
| 962 | 962 |
| 963 CPDF_Type1Font::CPDF_Type1Font() : m_Base14Font(-1) {} | 963 CPDF_Type1Font::CPDF_Type1Font() : m_Base14Font(-1) {} |
| 964 | 964 |
| 965 FX_BOOL CPDF_Type1Font::Load() { | 965 FX_BOOL CPDF_Type1Font::Load() { |
| 966 m_Base14Font = PDF_GetStandardFontName(&m_BaseFont); | 966 m_Base14Font = PDF_GetStandardFontName(&m_BaseFont); |
| 967 if (m_Base14Font >= 0) { | 967 if (m_Base14Font >= 0) { |
| 968 CPDF_Dictionary* pFontDesc = m_pFontDict->GetDictBy("FontDescriptor"); | 968 CPDF_Dictionary* pFontDesc = m_pFontDict->GetDictBy("FontDescriptor"); |
| 969 if (pFontDesc && pFontDesc->KeyExist("Flags")) { | 969 if (pFontDesc && pFontDesc->KeyExist("Flags")) |
| 970 m_Flags = pFontDesc->GetIntegerBy("Flags"); | 970 m_Flags = pFontDesc->GetIntegerBy("Flags"); |
| 971 } else { | 971 else |
| 972 m_Flags = m_Base14Font >= 12 ? PDFFONT_SYMBOLIC : PDFFONT_NONSYMBOLIC; | 972 m_Flags = m_Base14Font >= 12 ? PDFFONT_SYMBOLIC : PDFFONT_NONSYMBOLIC; |
| 973 |
| 974 if (m_Base14Font < 4) { |
| 975 for (int i = 0; i < 256; i++) |
| 976 m_CharWidth[i] = 600; |
| 973 } | 977 } |
| 974 if (m_Base14Font < 4) | 978 if (m_Base14Font == 12) |
| 975 for (int i = 0; i < 256; i++) { | |
| 976 m_CharWidth[i] = 600; | |
| 977 } | |
| 978 if (m_Base14Font == 12) { | |
| 979 m_BaseEncoding = PDFFONT_ENCODING_ADOBE_SYMBOL; | 979 m_BaseEncoding = PDFFONT_ENCODING_ADOBE_SYMBOL; |
| 980 } else if (m_Base14Font == 13) { | 980 else if (m_Base14Font == 13) |
| 981 m_BaseEncoding = PDFFONT_ENCODING_ZAPFDINGBATS; | 981 m_BaseEncoding = PDFFONT_ENCODING_ZAPFDINGBATS; |
| 982 } else if (m_Flags & PDFFONT_NONSYMBOLIC) { | 982 else if (m_Flags & PDFFONT_NONSYMBOLIC) |
| 983 m_BaseEncoding = PDFFONT_ENCODING_STANDARD; | 983 m_BaseEncoding = PDFFONT_ENCODING_STANDARD; |
| 984 } | |
| 985 } | 984 } |
| 986 return LoadCommon(); | 985 return LoadCommon(); |
| 987 } | 986 } |
| 988 | 987 |
| 989 int CPDF_Type1Font::GlyphFromCharCodeExt(FX_DWORD charcode) { | 988 int CPDF_Type1Font::GlyphFromCharCodeExt(FX_DWORD charcode) { |
| 990 if (charcode > 0xff) { | 989 if (charcode > 0xff) { |
| 991 return -1; | 990 return -1; |
| 992 } | 991 } |
| 993 int index = m_ExtGID[(uint8_t)charcode]; | 992 int index = m_ExtGID[(uint8_t)charcode]; |
| 994 if (index == 0xffff) { | 993 if (index == 0xffff) { |
| (...skipping 300 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1295 if (m_Unicodes[i] == unicode) { | 1294 if (m_Unicodes[i] == unicode) { |
| 1296 return i; | 1295 return i; |
| 1297 } | 1296 } |
| 1298 return -1; | 1297 return -1; |
| 1299 } | 1298 } |
| 1300 | 1299 |
| 1301 CPDF_FontEncoding::CPDF_FontEncoding(int PredefinedEncoding) { | 1300 CPDF_FontEncoding::CPDF_FontEncoding(int PredefinedEncoding) { |
| 1302 const FX_WORD* pSrc = PDF_UnicodesForPredefinedCharSet(PredefinedEncoding); | 1301 const FX_WORD* pSrc = PDF_UnicodesForPredefinedCharSet(PredefinedEncoding); |
| 1303 if (!pSrc) { | 1302 if (!pSrc) { |
| 1304 FXSYS_memset(m_Unicodes, 0, sizeof(m_Unicodes)); | 1303 FXSYS_memset(m_Unicodes, 0, sizeof(m_Unicodes)); |
| 1305 } else | 1304 } else { |
| 1306 for (int i = 0; i < 256; i++) { | 1305 for (int i = 0; i < 256; i++) |
| 1307 m_Unicodes[i] = pSrc[i]; | 1306 m_Unicodes[i] = pSrc[i]; |
| 1308 } | 1307 } |
| 1309 } | 1308 } |
| 1310 | 1309 |
| 1311 FX_BOOL CPDF_FontEncoding::IsIdentical(CPDF_FontEncoding* pAnother) const { | 1310 FX_BOOL CPDF_FontEncoding::IsIdentical(CPDF_FontEncoding* pAnother) const { |
| 1312 return FXSYS_memcmp(m_Unicodes, pAnother->m_Unicodes, sizeof(m_Unicodes)) == | 1311 return FXSYS_memcmp(m_Unicodes, pAnother->m_Unicodes, sizeof(m_Unicodes)) == |
| 1313 0; | 1312 0; |
| 1314 } | 1313 } |
| 1315 | 1314 |
| 1316 CPDF_Object* CPDF_FontEncoding::Realize() { | 1315 CPDF_Object* CPDF_FontEncoding::Realize() { |
| 1317 int predefined = 0; | 1316 int predefined = 0; |
| 1318 for (int cs = PDFFONT_ENCODING_WINANSI; cs < PDFFONT_ENCODING_ZAPFDINGBATS; | 1317 for (int cs = PDFFONT_ENCODING_WINANSI; cs < PDFFONT_ENCODING_ZAPFDINGBATS; |
| (...skipping 377 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1696 return pChar ? pChar->m_BBox : FX_RECT(); | 1695 return pChar ? pChar->m_BBox : FX_RECT(); |
| 1697 } | 1696 } |
| 1698 | 1697 |
| 1699 CPDF_Type3Char::CPDF_Type3Char(CPDF_Form* pForm) | 1698 CPDF_Type3Char::CPDF_Type3Char(CPDF_Form* pForm) |
| 1700 : m_pForm(pForm), m_pBitmap(nullptr), m_bColored(FALSE) {} | 1699 : m_pForm(pForm), m_pBitmap(nullptr), m_bColored(FALSE) {} |
| 1701 | 1700 |
| 1702 CPDF_Type3Char::~CPDF_Type3Char() { | 1701 CPDF_Type3Char::~CPDF_Type3Char() { |
| 1703 delete m_pForm; | 1702 delete m_pForm; |
| 1704 delete m_pBitmap; | 1703 delete m_pBitmap; |
| 1705 } | 1704 } |
| OLD | NEW |