DLLEXPORT void STDCALL FORM_DoPageAAction(FPDF_PAGE page, FPDF_FORMHANDLE hHandle, int aaType) { if (!hHandle) return; CPDFSDK_Document* pSDKDoc = ((CPDFDoc_Environment*)hHandle)->GetSDKDocument(); UnderlyingPageType* pPage = UnderlyingFromFPDFPage(page); CPDF_Page* pPDFPage = CPDFPageFromFPDFPage(page); if (!pPDFPage) return; if (pSDKDoc->GetPageView(pPage, FALSE)) { CPDFDoc_Environment* pEnv = pSDKDoc->GetEnv(); CPDFSDK_ActionHandler* pActionHandler = pEnv->GetActionHander(); CPDF_Dictionary* pPageDict = pPDFPage->m_pFormDict; CPDF_AAction aa(pPageDict->GetDictBy("AA")); if (FPDFPAGE_AACTION_OPEN == aaType) { if (aa.ActionExist(CPDF_AAction::OpenPage)) { CPDF_Action action = aa.GetAction(CPDF_AAction::OpenPage); pActionHandler->DoAction_Page(action, CPDF_AAction::OpenPage, pSDKDoc); } } else { if (aa.ActionExist(CPDF_AAction::ClosePage)) { CPDF_Action action = aa.GetAction(CPDF_AAction::ClosePage); pActionHandler->DoAction_Page(action, CPDF_AAction::ClosePage, pSDKDoc); } } } }
DLLEXPORT void STDCALL FORM_DoPageAAction(FPDF_PAGE page, FPDF_FORMHANDLE hHandle, int aaType) { if(!hHandle || !page) return; CPDFSDK_Document* pSDKDoc = ((CPDFDoc_Environment*)hHandle)->GetCurrentDoc(); CPDF_Page* pPage = (CPDF_Page*)page; CPDFSDK_PageView* pPageView = pSDKDoc->GetPageView(pPage, FALSE); if(pPageView) { CPDFDoc_Environment *pEnv = pSDKDoc->GetEnv(); ASSERT(pEnv != NULL); CPDFSDK_ActionHandler *pActionHandler = pEnv->GetActionHander(); ASSERT(pActionHandler != NULL); CPDF_Dictionary *pPageDict = pPage->m_pFormDict; ASSERT(pPageDict != NULL); CPDF_AAction aa = pPageDict->GetDict(FX_BSTRC("AA")); FX_BOOL bExistOAAction = FALSE; FX_BOOL bExistCAAction = FALSE; if (FPDFPAGE_AACTION_OPEN == aaType) { bExistOAAction = aa.ActionExist(CPDF_AAction::OpenPage); if (bExistOAAction) { CPDF_Action action = aa.GetAction(CPDF_AAction::OpenPage); pActionHandler->DoAction_Page(action, CPDF_AAction::OpenPage, pSDKDoc); } } else { bExistCAAction = aa.ActionExist(CPDF_AAction::ClosePage); if (bExistCAAction) { CPDF_Action action = aa.GetAction(CPDF_AAction::ClosePage); pActionHandler->DoAction_Page(action, CPDF_AAction::ClosePage, pSDKDoc); } } } }
FX_BOOL CPDFSDK_InterForm::OnValidate(CPDF_FormField* pFormField, const CFX_WideString& csValue) { CPDF_AAction aAction = pFormField->GetAdditionalAction(); if (!aAction.GetDict() || !aAction.ActionExist(CPDF_AAction::Validate)) return TRUE; CPDF_Action action = aAction.GetAction(CPDF_AAction::Validate); if (!action.GetDict()) return TRUE; CPDFSDK_Environment* pEnv = m_pDocument->GetEnv(); CPDFSDK_ActionHandler* pActionHandler = pEnv->GetActionHander(); PDFSDK_FieldAction fa; fa.bModifier = pEnv->IsCTRLKeyDown(0); fa.bShift = pEnv->IsSHIFTKeyDown(0); fa.sValue = csValue; pActionHandler->DoAction_FieldJavaScript(action, CPDF_AAction::Validate, m_pDocument, pFormField, fa); return fa.bRC; }
DLLEXPORT void STDCALL FORM_DoDocumentAAction(FPDF_FORMHANDLE hHandle, int aaType) { CPDFSDK_Document* pSDKDoc = CPDFSDK_Document::FromFPDFFormHandle(hHandle); if (!pSDKDoc) return; CPDF_Document* pDoc = pSDKDoc->GetPDFDocument(); CPDF_Dictionary* pDic = pDoc->GetRoot(); if (!pDic) return; CPDF_AAction aa(pDic->GetDictBy("AA")); if (aa.ActionExist((CPDF_AAction::AActionType)aaType)) { CPDF_Action action = aa.GetAction((CPDF_AAction::AActionType)aaType); CPDFSDK_ActionHandler* pActionHandler = ((CPDFDoc_Environment*)hHandle)->GetActionHander(); pActionHandler->DoAction_Document(action, (CPDF_AAction::AActionType)aaType, pSDKDoc); } }
DLLEXPORT void STDCALL FORM_DoDocumentAAction(FPDF_FORMHANDLE hHandle, int aaType) { CPDFSDK_FormFillEnvironment* pFormFillEnv = HandleToCPDFSDKEnvironment(hHandle); if (!pFormFillEnv) return; CPDF_Document* pDoc = pFormFillEnv->GetPDFDocument(); CPDF_Dictionary* pDic = pDoc->GetRoot(); if (!pDic) return; CPDF_AAction aa(pDic->GetDictFor("AA")); if (aa.ActionExist((CPDF_AAction::AActionType)aaType)) { CPDF_Action action = aa.GetAction((CPDF_AAction::AActionType)aaType); CPDFSDK_ActionHandler* pActionHandler = HandleToCPDFSDKEnvironment(hHandle)->GetActionHander(); pActionHandler->DoAction_Document(action, (CPDF_AAction::AActionType)aaType, pFormFillEnv); } }
DLLEXPORT void STDCALL FORM_DoDocumentAAction(FPDF_FORMHANDLE hHandle, int aaType) { if(!hHandle) return; CPDFSDK_Document* pSDKDoc = ((CPDFDoc_Environment*)hHandle)->GetCurrentDoc(); if(pSDKDoc) { CPDF_Document* pDoc = pSDKDoc->GetDocument(); CPDF_Dictionary* pDic = pDoc->GetRoot(); if (!pDic) return; CPDF_AAction aa = pDic->GetDict(FX_BSTRC("AA")); if(aa.ActionExist((CPDF_AAction::AActionType)aaType)) { CPDF_Action action = aa.GetAction((CPDF_AAction::AActionType)aaType); CPDFSDK_ActionHandler *pActionHandler = ((CPDFDoc_Environment*)hHandle)->GetActionHander(); ASSERT(pActionHandler != NULL); pActionHandler->DoAction_Document(action, (CPDF_AAction::AActionType)aaType, pSDKDoc); } } }
DLLEXPORT void STDCALL FORM_DoPageAAction(FPDF_PAGE page, FPDF_FORMHANDLE hHandle, int aaType) { if (!hHandle) return; CPDFSDK_FormFillEnvironment* pFormFillEnv = HandleToCPDFSDKEnvironment(hHandle); if (!pFormFillEnv) return; UnderlyingPageType* pPage = UnderlyingFromFPDFPage(page); CPDF_Page* pPDFPage = CPDFPageFromFPDFPage(page); if (!pPDFPage) return; if (!pFormFillEnv->GetPageView(pPage, false)) return; CPDFSDK_ActionHandler* pActionHandler = pFormFillEnv->GetActionHander(); CPDF_Dictionary* pPageDict = pPDFPage->m_pFormDict; CPDF_AAction aa(pPageDict->GetDictFor("AA")); if (FPDFPAGE_AACTION_OPEN == aaType) { if (aa.ActionExist(CPDF_AAction::OpenPage)) { CPDF_Action action = aa.GetAction(CPDF_AAction::OpenPage); pActionHandler->DoAction_Page(action, CPDF_AAction::OpenPage, pFormFillEnv); } } else { if (aa.ActionExist(CPDF_AAction::ClosePage)) { CPDF_Action action = aa.GetAction(CPDF_AAction::ClosePage); pActionHandler->DoAction_Page(action, CPDF_AAction::ClosePage, pFormFillEnv); } } }