DLLEXPORT void STDCALL FPDFPage_TransformAnnots(FPDF_PAGE page, double a, double b, double c, double d, double e, double f) { CPDF_Page* pPage = CPDFPageFromFPDFPage(page); if (!pPage) return; CPDF_AnnotList AnnotList(pPage); for (size_t i = 0; i < AnnotList.Count(); ++i) { CPDF_Annot* pAnnot = AnnotList.GetAt(i); // transformAnnots Rectangle CPDF_Rect rect; pAnnot->GetRect(rect); CFX_AffineMatrix matrix((FX_FLOAT)a, (FX_FLOAT)b, (FX_FLOAT)c, (FX_FLOAT)d, (FX_FLOAT)e, (FX_FLOAT)f); rect.Transform(&matrix); CPDF_Array* pRectArray = NULL; pRectArray = pAnnot->GetAnnotDict()->GetArray("Rect"); if (!pRectArray) pRectArray = CPDF_Array::Create(); pRectArray->SetAt(0, new CPDF_Number(rect.left)); pRectArray->SetAt(1, new CPDF_Number(rect.bottom)); pRectArray->SetAt(2, new CPDF_Number(rect.right)); pRectArray->SetAt(3, new CPDF_Number(rect.top)); pAnnot->GetAnnotDict()->SetAt("Rect", pRectArray); // Transform AP's rectangle // To Do } }
void CPDFSDK_AnnotHandlerMgr::Annot_OnCreate(CPDFSDK_Annot* pAnnot) { CPDF_Annot* pPDFAnnot = pAnnot->GetPDFAnnot(); CPDFSDK_DateTime curTime; pPDFAnnot->GetAnnotDict()->SetAtString("M", curTime.ToPDFDateTimeString()); pPDFAnnot->GetAnnotDict()->SetAtNumber("F", 0); if (IPDFSDK_AnnotHandler* pAnnotHandler = GetAnnotHandler(pAnnot)) { pAnnotHandler->OnCreate(pAnnot); } }
FX_BOOL Annot::hidden(IJS_Context* cc, CJS_PropValue& vp, CFX_WideString& sError) { if (vp.IsGetting()) { CPDF_Annot* pPDFAnnot = m_BAAnnot->GetPDFAnnot(); vp << CPDF_Annot::IsAnnotationHidden(pPDFAnnot->GetAnnotDict()); return TRUE; } bool bHidden; vp >> bHidden; uint32_t flags = m_BAAnnot->GetFlags(); if (bHidden) { flags |= ANNOTFLAG_HIDDEN; flags |= ANNOTFLAG_INVISIBLE; flags |= ANNOTFLAG_NOVIEW; flags &= ~ANNOTFLAG_PRINT; } else { flags &= ~ANNOTFLAG_HIDDEN; flags &= ~ANNOTFLAG_INVISIBLE; flags &= ~ANNOTFLAG_NOVIEW; flags |= ANNOTFLAG_PRINT; } m_BAAnnot->SetFlags(flags); return TRUE; }