diff options
Diffstat (limited to 'fpdfsdk/fpdfxfa')
-rw-r--r-- | fpdfsdk/fpdfxfa/cpdfxfa_page.cpp | 56 | ||||
-rw-r--r-- | fpdfsdk/fpdfxfa/cpdfxfa_page.h | 2 |
2 files changed, 12 insertions, 46 deletions
diff --git a/fpdfsdk/fpdfxfa/cpdfxfa_page.cpp b/fpdfsdk/fpdfxfa/cpdfxfa_page.cpp index 809214dec6..f1d7aa9ad3 100644 --- a/fpdfsdk/fpdfxfa/cpdfxfa_page.cpp +++ b/fpdfsdk/fpdfxfa/cpdfxfa_page.cpp @@ -18,32 +18,25 @@ #include "xfa/fxfa/cxfa_ffpageview.h" CPDFXFA_Page::CPDFXFA_Page(CPDFXFA_Context* pContext, int page_index) - : m_pXFAPageView(nullptr), m_pContext(pContext), m_iPageIndex(page_index) {} + : m_pXFAPageView(nullptr), m_pContext(pContext), m_iPageIndex(page_index) { + CPDF_Document* pPDFDoc = m_pContext->GetPDFDoc(); + CPDF_Dictionary* pDict = nullptr; + if (pPDFDoc && m_pContext->GetFormType() != FormType::kXFAFull) + pDict = pPDFDoc->GetPage(m_iPageIndex); + m_pPDFPage = pdfium::MakeUnique<CPDF_Page>(pPDFDoc, pDict, true); + m_pPDFPage->SetPageExtension(this); +} CPDFXFA_Page::~CPDFXFA_Page() {} -bool CPDFXFA_Page::LoadPDFPage() { - if (!m_pContext) - return false; - - CPDF_Document* pPDFDoc = m_pContext->GetPDFDoc(); - if (!pPDFDoc) - return false; - - CPDF_Dictionary* pDict = pPDFDoc->GetPage(m_iPageIndex); - if (!pDict) +bool CPDFXFA_Page::LoadPage() { + if (!m_pContext || m_iPageIndex < 0) return false; - if (!m_pPDFPage || m_pPDFPage->m_pFormDict != pDict) { - m_pPDFPage = pdfium::MakeUnique<CPDF_Page>(pPDFDoc, pDict, true); + if (m_pContext->GetFormType() != FormType::kXFAFull) { m_pPDFPage->ParseContent(); + return true; } - return true; -} - -bool CPDFXFA_Page::LoadXFAPageView() { - if (!m_pContext) - return false; CXFA_FFDoc* pXFADoc = m_pContext->GetXFADoc(); if (!pXFADoc) @@ -61,31 +54,6 @@ bool CPDFXFA_Page::LoadXFAPageView() { return true; } -bool CPDFXFA_Page::LoadPage() { - if (!m_pContext || m_iPageIndex < 0) - return false; - - switch (m_pContext->GetFormType()) { - case FormType::kNone: - case FormType::kAcroForm: - case FormType::kXFAForeground: - return LoadPDFPage(); - case FormType::kXFAFull: - return LoadXFAPageView(); - } - return false; -} - -bool CPDFXFA_Page::LoadPDFPage(CPDF_Dictionary* pageDict) { - if (!m_pContext || m_iPageIndex < 0 || !pageDict) - return false; - - m_pPDFPage = - pdfium::MakeUnique<CPDF_Page>(m_pContext->GetPDFDoc(), pageDict, true); - m_pPDFPage->ParseContent(); - return true; -} - CPDF_Document::Extension* CPDFXFA_Page::GetDocumentExtension() const { return m_pContext.Get(); } diff --git a/fpdfsdk/fpdfxfa/cpdfxfa_page.h b/fpdfsdk/fpdfxfa/cpdfxfa_page.h index 4f4d6b0a22..faacf3e0b0 100644 --- a/fpdfsdk/fpdfxfa/cpdfxfa_page.h +++ b/fpdfsdk/fpdfxfa/cpdfxfa_page.h @@ -27,7 +27,6 @@ class CPDFXFA_Page : public CPDF_Page::Extension { friend RetainPtr<T> pdfium::MakeRetain(Args&&... args); bool LoadPage(); - bool LoadPDFPage(CPDF_Dictionary* pageDict); // CPDF_Page::Extension: CPDF_Document::Extension* GetDocumentExtension() const override; @@ -57,7 +56,6 @@ class CPDFXFA_Page : public CPDF_Page::Extension { CPDFXFA_Page(CPDFXFA_Context* pContext, int page_index); ~CPDFXFA_Page() override; - bool LoadPDFPage(); bool LoadXFAPageView(); private: |