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)14CFX_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