| 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/fpdfapi/fpdf_parser/include/cpdf_document.h" | 7 #include "core/fpdfapi/fpdf_parser/include/cpdf_document.h" |
| 8 | 8 |
| 9 #include <set> | 9 #include <set> |
| 10 | 10 |
| (...skipping 1084 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1095 if (pLogFont->lfCharSet == ANSI_CHARSET || | 1095 if (pLogFont->lfCharSet == ANSI_CHARSET || |
| 1096 pLogFont->lfCharSet == DEFAULT_CHARSET || | 1096 pLogFont->lfCharSet == DEFAULT_CHARSET || |
| 1097 pLogFont->lfCharSet == SYMBOL_CHARSET) { | 1097 pLogFont->lfCharSet == SYMBOL_CHARSET) { |
| 1098 if (pLogFont->lfCharSet == SYMBOL_CHARSET) | 1098 if (pLogFont->lfCharSet == SYMBOL_CHARSET) |
| 1099 flags |= PDFFONT_SYMBOLIC; | 1099 flags |= PDFFONT_SYMBOLIC; |
| 1100 else | 1100 else |
| 1101 flags |= PDFFONT_NONSYMBOLIC; | 1101 flags |= PDFFONT_NONSYMBOLIC; |
| 1102 pBaseDict->SetAtName("Encoding", "WinAnsiEncoding"); | 1102 pBaseDict->SetAtName("Encoding", "WinAnsiEncoding"); |
| 1103 } else { | 1103 } else { |
| 1104 flags |= PDFFONT_NONSYMBOLIC; | 1104 flags |= PDFFONT_NONSYMBOLIC; |
| 1105 int i; | 1105 size_t i; |
| 1106 for (i = 0; i < FX_ArraySize(g_FX_CharsetUnicodes); ++i) { | 1106 for (i = 0; i < FX_ArraySize(g_FX_CharsetUnicodes); ++i) { |
| 1107 if (g_FX_CharsetUnicodes[i].m_Charset == pLogFont->lfCharSet) | 1107 if (g_FX_CharsetUnicodes[i].m_Charset == pLogFont->lfCharSet) |
| 1108 break; | 1108 break; |
| 1109 } | 1109 } |
| 1110 if (i < FX_ArraySize(g_FX_CharsetUnicodes)) { | 1110 if (i < FX_ArraySize(g_FX_CharsetUnicodes)) { |
| 1111 CPDF_Dictionary* pEncoding = new CPDF_Dictionary; | 1111 CPDF_Dictionary* pEncoding = new CPDF_Dictionary; |
| 1112 pEncoding->SetAtName("BaseEncoding", "WinAnsiEncoding"); | 1112 pEncoding->SetAtName("BaseEncoding", "WinAnsiEncoding"); |
| 1113 CPDF_Array* pArray = new CPDF_Array; | 1113 CPDF_Array* pArray = new CPDF_Array; |
| 1114 pArray->AddInteger(128); | 1114 pArray->AddInteger(128); |
| 1115 const uint16_t* pUnicodes = g_FX_CharsetUnicodes[i].m_pUnicodes; | 1115 const uint16_t* pUnicodes = g_FX_CharsetUnicodes[i].m_pUnicodes; |
| (...skipping 13 matching lines...) Expand all Loading... |
| 1129 else if (pLogFont->lfItalic) | 1129 else if (pLogFont->lfItalic) |
| 1130 basefont += ",Italic"; | 1130 basefont += ",Italic"; |
| 1131 | 1131 |
| 1132 pBaseDict->SetAtName("Subtype", "TrueType"); | 1132 pBaseDict->SetAtName("Subtype", "TrueType"); |
| 1133 pBaseDict->SetAtName("BaseFont", basefont); | 1133 pBaseDict->SetAtName("BaseFont", basefont); |
| 1134 pBaseDict->SetAtNumber("FirstChar", 32); | 1134 pBaseDict->SetAtNumber("FirstChar", 32); |
| 1135 pBaseDict->SetAtNumber("LastChar", 255); | 1135 pBaseDict->SetAtNumber("LastChar", 255); |
| 1136 int char_widths[224]; | 1136 int char_widths[224]; |
| 1137 GetCharWidth(hDC, 32, 255, char_widths); | 1137 GetCharWidth(hDC, 32, 255, char_widths); |
| 1138 CPDF_Array* pWidths = new CPDF_Array; | 1138 CPDF_Array* pWidths = new CPDF_Array; |
| 1139 for (int i = 0; i < 224; i++) | 1139 for (size_t i = 0; i < 224; i++) |
| 1140 pWidths->AddInteger(char_widths[i]); | 1140 pWidths->AddInteger(char_widths[i]); |
| 1141 | 1141 |
| 1142 pBaseDict->SetAt("Widths", pWidths); | 1142 pBaseDict->SetAt("Widths", pWidths); |
| 1143 } else { | 1143 } else { |
| 1144 flags |= PDFFONT_NONSYMBOLIC; | 1144 flags |= PDFFONT_NONSYMBOLIC; |
| 1145 pFontDict = new CPDF_Dictionary; | 1145 pFontDict = new CPDF_Dictionary; |
| 1146 CFX_ByteString cmap; | 1146 CFX_ByteString cmap; |
| 1147 CFX_ByteString ordering; | 1147 CFX_ByteString ordering; |
| 1148 int supplement = 0; | 1148 int supplement = 0; |
| 1149 CPDF_Array* pWidthArray = new CPDF_Array; | 1149 CPDF_Array* pWidthArray = new CPDF_Array; |
| (...skipping 289 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1439 } | 1439 } |
| 1440 } | 1440 } |
| 1441 pFontDesc->SetAtInteger("StemV", fStemV); | 1441 pFontDesc->SetAtInteger("StemV", fStemV); |
| 1442 AddIndirectObject(pFontDesc); | 1442 AddIndirectObject(pFontDesc); |
| 1443 pFontDict->SetAtReference("FontDescriptor", this, pFontDesc); | 1443 pFontDict->SetAtReference("FontDescriptor", this, pFontDesc); |
| 1444 CFRelease(traits); | 1444 CFRelease(traits); |
| 1445 CFRelease(languages); | 1445 CFRelease(languages); |
| 1446 return LoadFont(pBaseDict); | 1446 return LoadFont(pBaseDict); |
| 1447 } | 1447 } |
| 1448 #endif // _FXM_PLATFORM_ == _FXM_PLATFORM_APPLE_ | 1448 #endif // _FXM_PLATFORM_ == _FXM_PLATFORM_APPLE_ |
| OLD | NEW |