pdfium
class CPDF_TestDocumentForPages : public CPDF_Document { public: CPDF_TestDocumentForPages() : CPDF_Document(nullptr) { // Set up test auto zeroToTwo = pdfium::MakeUnique<CPDF_Array>(); zeroToTwo->AddNew<CPDF_Reference>( this, AddIndirectObject(CreateNumberedPage(0))->GetObjNum()); zeroToTwo->AddNew<CPDF_Reference>( this, AddIndirectObject(CreateNumberedPage(1))->GetObjNum()); zeroToTwo->AddNew<CPDF_Reference>( this, AddIndirectObject(CreateNumberedPage(2))->GetObjNum()); CPDF_Dictionary* branch1 = CreatePageTreeNode(std::move(zeroToTwo), this, 3); auto zeroToThree = pdfium::MakeUnique<CPDF_Array>(); zeroToThree->AddNew<CPDF_Reference>(this, branch1->GetObjNum()); zeroToThree->AddNew<CPDF_Reference>( this, AddIndirectObject(CreateNumberedPage(3))->GetObjNum()); CPDF_Dictionary* branch2 = CreatePageTreeNode(std::move(zeroToThree), this, 4); auto fourFive = pdfium::MakeUnique<CPDF_Array>(); fourFive->AddNew<CPDF_Reference>( this, AddIndirectObject(CreateNumberedPage(4))->GetObjNum()); fourFive->AddNew<CPDF_Reference>( this, AddIndirectObject(CreateNumberedPage(5))->GetObjNum()); CPDF_Dictionary* branch3 = CreatePageTreeNode(std::move(fourFive), this, 2); auto justSix = pdfium::MakeUnique<CPDF_Array>(); justSix->AddNew<CPDF_Reference>( this, AddIndirectObject(CreateNumberedPage(6))->GetObjNum()); CPDF_Dictionary* branch4 = CreatePageTreeNode(std::move(justSix), this, 1); auto allPages = pdfium::MakeUnique<CPDF_Array>(); allPages->AddNew<CPDF_Reference>(this, branch2->GetObjNum()); allPages->AddNew<CPDF_Reference>(this, branch3->GetObjNum()); allPages->AddNew<CPDF_Reference>(this, branch4->GetObjNum()); CPDF_Dictionary* pagesDict = CreatePageTreeNode(std::move(allPages), this, 7); m_pOwnedRootDict = pdfium::MakeUnique<CPDF_Dictionary>(); m_pOwnedRootDict->SetNewFor<CPDF_Reference>("Pages", this, pagesDict->GetObjNum()); m_pRootDict = m_pOwnedRootDict.get(); m_PageList.resize(7); } private: std::unique_ptr<CPDF_Dictionary> m_pOwnedRootDict; };
继承自
CPDF_Document 内容
<CPDF_Dictionary