void CPDF_StructElementImpl::LoadKids(CPDF_Dictionary* pDict) { CPDF_Object* pObj = pDict->GetObjectBy("Pg"); uint32_t PageObjNum = 0; if (CPDF_Reference* pRef = ToReference(pObj)) PageObjNum = pRef->GetRefObjNum(); CPDF_Object* pKids = pDict->GetDirectObjectBy("K"); if (!pKids) return; m_Kids.clear(); if (CPDF_Array* pArray = pKids->AsArray()) { m_Kids.resize(pArray->GetCount()); for (uint32_t i = 0; i < pArray->GetCount(); i++) { CPDF_Object* pKid = pArray->GetDirectObjectAt(i); LoadKid(PageObjNum, pKid, &m_Kids[i]); } } else { m_Kids.resize(1); LoadKid(PageObjNum, pKids, &m_Kids[0]); } }
void CPDF_StructElementImpl::LoadKids(CPDF_Dictionary* pDict) { CPDF_Object* pObj = pDict->GetElement(FX_BSTRC("Pg")); FX_DWORD PageObjNum = 0; if (pObj && pObj->GetType() == PDFOBJ_REFERENCE) { PageObjNum = ((CPDF_Reference*)pObj)->GetRefObjNum(); } CPDF_Object* pKids = pDict->GetElementValue(FX_BSTRC("K")); if (pKids == NULL) { return; } if (pKids->GetType() == PDFOBJ_ARRAY) { CPDF_Array* pArray = (CPDF_Array*)pKids; m_Kids.SetSize(pArray->GetCount()); for (FX_DWORD i = 0; i < pArray->GetCount(); i ++) { CPDF_Object* pKid = pArray->GetElementValue(i); LoadKid(PageObjNum, pKid, &m_Kids[i]); } } else { m_Kids.SetSize(1); LoadKid(PageObjNum, pKids, &m_Kids[0]); } }