summaryrefslogtreecommitdiff
path: root/core/src/fpdfapi/fpdf_font/fpdf_font.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'core/src/fpdfapi/fpdf_font/fpdf_font.cpp')
-rw-r--r--core/src/fpdfapi/fpdf_font/fpdf_font.cpp84
1 files changed, 43 insertions, 41 deletions
diff --git a/core/src/fpdfapi/fpdf_font/fpdf_font.cpp b/core/src/fpdfapi/fpdf_font/fpdf_font.cpp
index b90d1147d6..e3d75076d7 100644
--- a/core/src/fpdfapi/fpdf_font/fpdf_font.cpp
+++ b/core/src/fpdfapi/fpdf_font/fpdf_font.cpp
@@ -194,11 +194,11 @@ CFX_ByteString CPDF_Font::EncodeString(const CFX_WideString& str) const {
}
void CPDF_Font::LoadFontDescriptor(CPDF_Dictionary* pFontDesc) {
- m_Flags = pFontDesc->GetInteger("Flags", PDFFONT_NONSYMBOLIC);
+ m_Flags = pFontDesc->GetIntegerBy("Flags", PDFFONT_NONSYMBOLIC);
int ItalicAngle = 0;
FX_BOOL bExistItalicAngle = FALSE;
if (pFontDesc->KeyExist("ItalicAngle")) {
- ItalicAngle = pFontDesc->GetInteger("ItalicAngle");
+ ItalicAngle = pFontDesc->GetIntegerBy("ItalicAngle");
bExistItalicAngle = TRUE;
}
if (ItalicAngle < 0) {
@@ -207,17 +207,17 @@ void CPDF_Font::LoadFontDescriptor(CPDF_Dictionary* pFontDesc) {
}
FX_BOOL bExistStemV = FALSE;
if (pFontDesc->KeyExist("StemV")) {
- m_StemV = pFontDesc->GetInteger("StemV");
+ m_StemV = pFontDesc->GetIntegerBy("StemV");
bExistStemV = TRUE;
}
FX_BOOL bExistAscent = FALSE;
if (pFontDesc->KeyExist("Ascent")) {
- m_Ascent = pFontDesc->GetInteger("Ascent");
+ m_Ascent = pFontDesc->GetIntegerBy("Ascent");
bExistAscent = TRUE;
}
FX_BOOL bExistDescent = FALSE;
if (pFontDesc->KeyExist("Descent")) {
- m_Descent = pFontDesc->GetInteger("Descent");
+ m_Descent = pFontDesc->GetIntegerBy("Descent");
bExistDescent = TRUE;
}
FX_BOOL bExistCapHeight = FALSE;
@@ -231,19 +231,19 @@ void CPDF_Font::LoadFontDescriptor(CPDF_Dictionary* pFontDesc) {
if (m_Descent > 10) {
m_Descent = -m_Descent;
}
- CPDF_Array* pBBox = pFontDesc->GetArray("FontBBox");
+ CPDF_Array* pBBox = pFontDesc->GetArrayBy("FontBBox");
if (pBBox) {
- m_FontBBox.left = pBBox->GetInteger(0);
- m_FontBBox.bottom = pBBox->GetInteger(1);
- m_FontBBox.right = pBBox->GetInteger(2);
- m_FontBBox.top = pBBox->GetInteger(3);
+ m_FontBBox.left = pBBox->GetIntegerAt(0);
+ m_FontBBox.bottom = pBBox->GetIntegerAt(1);
+ m_FontBBox.right = pBBox->GetIntegerAt(2);
+ m_FontBBox.top = pBBox->GetIntegerAt(3);
}
- CPDF_Stream* pFontFile = pFontDesc->GetStream("FontFile");
+ CPDF_Stream* pFontFile = pFontDesc->GetStreamBy("FontFile");
if (!pFontFile)
- pFontFile = pFontDesc->GetStream("FontFile2");
+ pFontFile = pFontDesc->GetStreamBy("FontFile2");
if (!pFontFile)
- pFontFile = pFontDesc->GetStream("FontFile3");
+ pFontFile = pFontDesc->GetStreamBy("FontFile3");
if (!pFontFile)
return;
@@ -324,7 +324,7 @@ void CPDF_Font::CheckFontMetrics() {
}
void CPDF_Font::LoadUnicodeMap() {
m_bToUnicodeLoaded = TRUE;
- CPDF_Stream* pStream = m_pFontDict->GetStream("ToUnicode");
+ CPDF_Stream* pStream = m_pFontDict->GetStreamBy("ToUnicode");
if (!pStream) {
return;
}
@@ -380,7 +380,7 @@ const uint8_t ChineseFontNames[][5] = {{0xCB, 0xCE, 0xCC, 0xE5, 0x00},
{0xD0, 0xC2, 0xCB, 0xCE, 0x00}};
CPDF_Font* CPDF_Font::CreateFontF(CPDF_Document* pDoc,
CPDF_Dictionary* pFontDict) {
- CFX_ByteString type = pFontDict->GetString("Subtype");
+ CFX_ByteString type = pFontDict->GetStringBy("Subtype");
CPDF_Font* pFont;
if (type == "TrueType") {
{
@@ -388,7 +388,7 @@ CPDF_Font* CPDF_Font::CreateFontF(CPDF_Document* pDoc,
_FXM_PLATFORM_ == _FXM_PLATFORM_LINUX_ || \
_FXM_PLATFORM_ == _FXM_PLATFORM_ANDROID_ || \
_FXM_PLATFORM_ == _FXM_PLATFORM_APPLE_
- CFX_ByteString basefont = pFontDict->GetString("BaseFont");
+ CFX_ByteString basefont = pFontDict->GetStringBy("BaseFont");
CFX_ByteString tag = basefont.Left(4);
int i;
int count = sizeof(ChineseFontNames) / sizeof(ChineseFontNames[0]);
@@ -398,7 +398,7 @@ CPDF_Font* CPDF_Font::CreateFontF(CPDF_Document* pDoc,
}
}
if (i < count) {
- CPDF_Dictionary* pFontDesc = pFontDict->GetDict("FontDescriptor");
+ CPDF_Dictionary* pFontDesc = pFontDict->GetDictBy("FontDescriptor");
if (!pFontDesc || !pFontDesc->KeyExist("FontFile2")) {
pFont = new CPDF_CIDFont;
pFont->m_pFontDict = pFontDict;
@@ -432,8 +432,8 @@ FX_BOOL CPDF_Font::Load() {
if (!m_pFontDict) {
return FALSE;
}
- CFX_ByteString type = m_pFontDict->GetString("Subtype");
- m_BaseFont = m_pFontDict->GetString("BaseFont");
+ CFX_ByteString type = m_pFontDict->GetStringBy("Subtype");
+ m_BaseFont = m_pFontDict->GetStringBy("BaseFont");
if (type == "MMType1") {
type = "Type1";
}
@@ -712,7 +712,7 @@ void CPDF_Font::LoadPDFEncoding(CPDF_Object* pEncoding,
if (iBaseEncoding != PDFFONT_ENCODING_ADOBE_SYMBOL &&
iBaseEncoding != PDFFONT_ENCODING_ZAPFDINGBATS) {
- CFX_ByteString bsEncoding = pDict->GetString("BaseEncoding");
+ CFX_ByteString bsEncoding = pDict->GetStringBy("BaseEncoding");
if (bsEncoding.Compare("MacExpertEncoding") == 0 && bTrueType) {
bsEncoding = "WinAnsiEncoding";
}
@@ -721,7 +721,7 @@ void CPDF_Font::LoadPDFEncoding(CPDF_Object* pEncoding,
if ((!bEmbedded || bTrueType) && iBaseEncoding == PDFFONT_ENCODING_BUILTIN) {
iBaseEncoding = PDFFONT_ENCODING_STANDARD;
}
- CPDF_Array* pDiffs = pDict->GetArray("Differences");
+ CPDF_Array* pDiffs = pDict->GetArrayBy("Differences");
if (!pDiffs) {
return;
}
@@ -859,23 +859,23 @@ const FX_CHAR* GetAdobeCharName(int iBaseEncoding,
return name && name[0] ? name : nullptr;
}
FX_BOOL CPDF_SimpleFont::LoadCommon() {
- CPDF_Dictionary* pFontDesc = m_pFontDict->GetDict("FontDescriptor");
+ CPDF_Dictionary* pFontDesc = m_pFontDict->GetDictBy("FontDescriptor");
if (pFontDesc) {
LoadFontDescriptor(pFontDesc);
}
- CPDF_Array* pWidthArray = m_pFontDict->GetArray("Widths");
+ CPDF_Array* pWidthArray = m_pFontDict->GetArrayBy("Widths");
int width_start = 0, width_end = -1;
m_bUseFontWidth = TRUE;
if (pWidthArray) {
m_bUseFontWidth = FALSE;
if (pFontDesc && pFontDesc->KeyExist("MissingWidth")) {
- int MissingWidth = pFontDesc->GetInteger("MissingWidth");
+ int MissingWidth = pFontDesc->GetIntegerBy("MissingWidth");
for (int i = 0; i < 256; i++) {
m_CharWidth[i] = MissingWidth;
}
}
- width_start = m_pFontDict->GetInteger("FirstChar", 0);
- width_end = m_pFontDict->GetInteger("LastChar", 0);
+ width_start = m_pFontDict->GetIntegerBy("FirstChar", 0);
+ width_end = m_pFontDict->GetIntegerBy("LastChar", 0);
if (width_start >= 0 && width_start <= 255) {
if (width_end <= 0 ||
width_end >= width_start + (int)pWidthArray->GetCount()) {
@@ -885,7 +885,7 @@ FX_BOOL CPDF_SimpleFont::LoadCommon() {
width_end = 255;
}
for (int i = width_start; i <= width_end; i++) {
- m_CharWidth[i] = pWidthArray->GetInteger(i - width_start);
+ m_CharWidth[i] = pWidthArray->GetIntegerAt(i - width_start);
}
}
}
@@ -960,9 +960,9 @@ CPDF_Type1Font::CPDF_Type1Font() : CPDF_SimpleFont(PDFFONT_TYPE1) {
FX_BOOL CPDF_Type1Font::_Load() {
m_Base14Font = PDF_GetStandardFontName(&m_BaseFont);
if (m_Base14Font >= 0) {
- CPDF_Dictionary* pFontDesc = m_pFontDict->GetDict("FontDescriptor");
+ CPDF_Dictionary* pFontDesc = m_pFontDict->GetDictBy("FontDescriptor");
if (pFontDesc && pFontDesc->KeyExist("Flags")) {
- m_Flags = pFontDesc->GetInteger("Flags");
+ m_Flags = pFontDesc->GetIntegerBy("Flags");
} else {
m_Flags = m_Base14Font >= 12 ? PDFFONT_SYMBOLIC : PDFFONT_NONSYMBOLIC;
}
@@ -1429,7 +1429,7 @@ void CPDF_TrueTypeFont::LoadGlyphMap() {
(m_Flags & PDFFONT_NONSYMBOLIC)) {
if (!FXFT_Has_Glyph_Names(m_Font.GetFace()) &&
(!m_Font.GetFace()->num_charmaps || !m_Font.GetFace()->charmaps)) {
- int nStartChar = m_pFontDict->GetInteger("FirstChar");
+ int nStartChar = m_pFontDict->GetIntegerBy("FirstChar");
if (nStartChar < 0 || nStartChar > 255)
return;
@@ -1605,24 +1605,26 @@ CPDF_Type3Font::~CPDF_Type3Font() {
}
FX_BOOL CPDF_Type3Font::_Load() {
- m_pFontResources = m_pFontDict->GetDict("Resources");
- CPDF_Array* pMatrix = m_pFontDict->GetArray("FontMatrix");
+ m_pFontResources = m_pFontDict->GetDictBy("Resources");
+ CPDF_Array* pMatrix = m_pFontDict->GetArrayBy("FontMatrix");
FX_FLOAT xscale = 1.0f, yscale = 1.0f;
if (pMatrix) {
m_FontMatrix = pMatrix->GetMatrix();
xscale = m_FontMatrix.a;
yscale = m_FontMatrix.d;
}
- CPDF_Array* pBBox = m_pFontDict->GetArray("FontBBox");
+ CPDF_Array* pBBox = m_pFontDict->GetArrayBy("FontBBox");
if (pBBox) {
- m_FontBBox.left = (int32_t)(FXSYS_Mul(pBBox->GetNumber(0), xscale) * 1000);
+ m_FontBBox.left =
+ (int32_t)(FXSYS_Mul(pBBox->GetNumberAt(0), xscale) * 1000);
m_FontBBox.bottom =
- (int32_t)(FXSYS_Mul(pBBox->GetNumber(1), yscale) * 1000);
- m_FontBBox.right = (int32_t)(FXSYS_Mul(pBBox->GetNumber(2), xscale) * 1000);
- m_FontBBox.top = (int32_t)(FXSYS_Mul(pBBox->GetNumber(3), yscale) * 1000);
+ (int32_t)(FXSYS_Mul(pBBox->GetNumberAt(1), yscale) * 1000);
+ m_FontBBox.right =
+ (int32_t)(FXSYS_Mul(pBBox->GetNumberAt(2), xscale) * 1000);
+ m_FontBBox.top = (int32_t)(FXSYS_Mul(pBBox->GetNumberAt(3), yscale) * 1000);
}
- int StartChar = m_pFontDict->GetInteger("FirstChar");
- CPDF_Array* pWidthArray = m_pFontDict->GetArray("Widths");
+ int StartChar = m_pFontDict->GetIntegerBy("FirstChar");
+ CPDF_Array* pWidthArray = m_pFontDict->GetArrayBy("Widths");
if (pWidthArray && (StartChar >= 0 && StartChar < 256)) {
FX_DWORD count = pWidthArray->GetCount();
if (count > 256) {
@@ -1633,10 +1635,10 @@ FX_BOOL CPDF_Type3Font::_Load() {
}
for (FX_DWORD i = 0; i < count; i++) {
m_CharWidthL[StartChar + i] =
- FXSYS_round(FXSYS_Mul(pWidthArray->GetNumber(i), xscale) * 1000);
+ FXSYS_round(FXSYS_Mul(pWidthArray->GetNumberAt(i), xscale) * 1000);
}
}
- m_pCharProcs = m_pFontDict->GetDict("CharProcs");
+ m_pCharProcs = m_pFontDict->GetDictBy("CharProcs");
CPDF_Object* pEncoding = m_pFontDict->GetElementValue("Encoding");
if (pEncoding) {
LoadPDFEncoding(pEncoding, m_BaseEncoding, m_pCharNames, FALSE, FALSE);