• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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 "core/fpdfapi/font/cpdf_font.h"
8 #include "core/fpdfapi/parser/fpdf_parser_decode.h"
9 #include "core/fpdfdoc/cpvt_word.h"
10 #include "core/fpdfdoc/ipvt_fontmap.h"
11 #include "fpdfsdk/fxedit/fx_edit.h"
12 #include "fpdfsdk/fxedit/fxet_edit.h"
13 
GetPDFWordString(IPVT_FontMap * pFontMap,int32_t nFontIndex,uint16_t Word,uint16_t SubWord)14 CFX_ByteString GetPDFWordString(IPVT_FontMap* pFontMap,
15                                 int32_t nFontIndex,
16                                 uint16_t Word,
17                                 uint16_t SubWord) {
18   CPDF_Font* pPDFFont = pFontMap->GetPDFFont(nFontIndex);
19   if (!pPDFFont)
20     return CFX_ByteString();
21 
22   CFX_ByteString sWord;
23   if (SubWord > 0) {
24     Word = SubWord;
25   } else {
26     uint32_t dwCharCode = pPDFFont->IsUnicodeCompatible()
27                               ? pPDFFont->CharCodeFromUnicode(Word)
28                               : pFontMap->CharCodeFromUnicode(nFontIndex, Word);
29 
30     if (dwCharCode > 0) {
31       pPDFFont->AppendChar(sWord, dwCharCode);
32       return sWord;
33     }
34   }
35 
36   pPDFFont->AppendChar(sWord, Word);
37   return sWord;
38 }
39