You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
38 lines
1.2 KiB
38 lines
1.2 KiB
// Copyright 2014 PDFium Authors. All rights reserved. |
|
// Use of this source code is governed by a BSD-style license that can be |
|
// found in the LICENSE file. |
|
|
|
// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com |
|
|
|
#include "core/fpdfapi/font/cpdf_font.h" |
|
#include "core/fpdfapi/parser/fpdf_parser_decode.h" |
|
#include "core/fpdfdoc/cpvt_word.h" |
|
#include "core/fpdfdoc/ipvt_fontmap.h" |
|
#include "fpdfsdk/fxedit/fx_edit.h" |
|
#include "fpdfsdk/fxedit/fxet_edit.h" |
|
|
|
CFX_ByteString GetPDFWordString(IPVT_FontMap* pFontMap, |
|
int32_t nFontIndex, |
|
uint16_t Word, |
|
uint16_t SubWord) { |
|
CPDF_Font* pPDFFont = pFontMap->GetPDFFont(nFontIndex); |
|
if (!pPDFFont) |
|
return CFX_ByteString(); |
|
|
|
CFX_ByteString sWord; |
|
if (SubWord > 0) { |
|
Word = SubWord; |
|
} else { |
|
uint32_t dwCharCode = pPDFFont->IsUnicodeCompatible() |
|
? pPDFFont->CharCodeFromUnicode(Word) |
|
: pFontMap->CharCodeFromUnicode(nFontIndex, Word); |
|
|
|
if (dwCharCode > 0) { |
|
pPDFFont->AppendChar(sWord, dwCharCode); |
|
return sWord; |
|
} |
|
} |
|
|
|
pPDFFont->AppendChar(sWord, Word); |
|
return sWord; |
|
}
|
|
|