本文整理汇总了C++中CPDF_Dictionary::GetNumber方法的典型用法代码示例。如果您正苦于以下问题:C++ CPDF_Dictionary::GetNumber方法的具体用法?C++ CPDF_Dictionary::GetNumber怎么用?C++ CPDF_Dictionary::GetNumber使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类CPDF_Dictionary
的用法示例。
在下文中一共展示了CPDF_Dictionary::GetNumber方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: v_Load
FX_BOOL CPDF_CalGray::v_Load(CPDF_Document* pDoc, CPDF_Array* pArray) {
CPDF_Dictionary* pDict = pArray->GetDict(1);
CPDF_Array* pParam = pDict->GetArray(FX_BSTRC("WhitePoint"));
int i;
for (i = 0; i < 3; i++) {
m_WhitePoint[i] = pParam ? pParam->GetNumber(i) : 0;
}
pParam = pDict->GetArray(FX_BSTRC("BlackPoint"));
for (i = 0; i < 3; i++) {
m_BlackPoint[i] = pParam ? pParam->GetNumber(i) : 0;
}
m_Gamma = pDict->GetNumber(FX_BSTRC("Gamma"));
if (m_Gamma == 0) {
m_Gamma = 1.0f;
}
return TRUE;
}
示例2: Load
FX_BOOL CPDF_TilingPattern::Load()
{
if (m_pForm != NULL) {
return TRUE;
}
CPDF_Dictionary* pDict = m_pPatternObj->GetDict();
if (pDict == NULL) {
return FALSE;
}
m_bColored = pDict->GetInteger(FX_BSTRC("PaintType")) == 1;
m_XStep = (FX_FLOAT)FXSYS_fabs(pDict->GetNumber(FX_BSTRC("XStep")));
m_YStep = (FX_FLOAT)FXSYS_fabs(pDict->GetNumber(FX_BSTRC("YStep")));
if (m_pPatternObj->GetType() != PDFOBJ_STREAM) {
return FALSE;
}
CPDF_Stream* pStream = (CPDF_Stream*)m_pPatternObj;
m_pForm = FX_NEW CPDF_Form(m_pDocument, NULL, pStream);
m_pForm->ParseContent(NULL, &m_ParentMatrix, NULL, NULL);
m_BBox = pDict->GetRect(FX_BSTRC("BBox"));
return TRUE;
}
示例3: DrawBorder
void CPDF_Annot::DrawBorder(CFX_RenderDevice* pDevice, const CFX_AffineMatrix* pUser2Device, const CPDF_RenderOptions* pOptions)
{
if (GetSubType() == "Popup") {
return;
}
FX_DWORD annot_flags = GetFlags();
if (annot_flags & ANNOTFLAG_HIDDEN) {
return;
}
FX_BOOL bPrinting = pDevice->GetDeviceClass() == FXDC_PRINTER || (pOptions && (pOptions->m_Flags & RENDER_PRINTPREVIEW));
if (bPrinting && (annot_flags & ANNOTFLAG_PRINT) == 0) {
return;
}
if (!bPrinting && (annot_flags & ANNOTFLAG_NOVIEW)) {
return;
}
CPDF_Dictionary* pBS = m_pAnnotDict->GetDict("BS");
char style_char;
FX_FLOAT width;
CPDF_Array* pDashArray = NULL;
if (pBS == NULL) {
CPDF_Array* pBorderArray = m_pAnnotDict->GetArray("Border");
style_char = 'S';
if (pBorderArray) {
width = pBorderArray->GetNumber(2);
if (pBorderArray->GetCount() == 4) {
pDashArray = pBorderArray->GetArray(3);
if (pDashArray == NULL) {
return;
}
int nLen = pDashArray->GetCount();
int i = 0;
for (; i < nLen; ++i) {
CPDF_Object*pObj = pDashArray->GetElementValue(i);
if (pObj && pObj->GetInteger()) {
break;
}
}
if (i == nLen) {
return;
}
style_char = 'D';
}
} else {
width = 1;
}
} else {
CFX_ByteString style = pBS->GetString("S");
pDashArray = pBS->GetArray("D");
style_char = style[1];
width = pBS->GetNumber("W");
}
if (width <= 0) {
return;
}
CPDF_Array* pColor = m_pAnnotDict->GetArray("C");
FX_DWORD argb = 0xff000000;
if (pColor != NULL) {
int R = (FX_INT32)(pColor->GetNumber(0) * 255);
int G = (FX_INT32)(pColor->GetNumber(1) * 255);
int B = (FX_INT32)(pColor->GetNumber(2) * 255);
argb = ArgbEncode(0xff, R, G, B);
}
CPDF_GraphStateData graph_state;
graph_state.m_LineWidth = width;
if (style_char == 'D') {
if (pDashArray) {
FX_DWORD dash_count = pDashArray->GetCount();
if (dash_count % 2) {
dash_count ++;
}
graph_state.m_DashArray = FX_Alloc(FX_FLOAT, dash_count);
if (graph_state.m_DashArray == NULL) {
return ;
}
graph_state.m_DashCount = dash_count;
FX_DWORD i;
for (i = 0; i < pDashArray->GetCount(); i ++) {
graph_state.m_DashArray[i] = pDashArray->GetNumber(i);
}
if (i < dash_count) {
graph_state.m_DashArray[i] = graph_state.m_DashArray[i - 1];
}
} else {
graph_state.m_DashArray = FX_Alloc(FX_FLOAT, 2);
if (graph_state.m_DashArray == NULL) {
return ;
}
graph_state.m_DashCount = 2;
graph_state.m_DashArray[0] = graph_state.m_DashArray[1] = 3 * 1.0f;
}
}
CFX_FloatRect rect;
GetRect(rect);
CPDF_PathData path;
width /= 2;
path.AppendRect(rect.left + width, rect.bottom + width, rect.right - width, rect.top - width);
int fill_type = 0;
if (pOptions && (pOptions->m_Flags & RENDER_NOPATHSMOOTH)) {
fill_type |= FXFILL_NOPATHSMOOTH;
//.........这里部分代码省略.........
示例4: GetBorder
CPDF_PageObject* CPDF_Annot::GetBorder(FX_BOOL bPrint, const CPDF_RenderOptions* pOptions)
{
if (GetSubType() == "Popup") {
return NULL;
}
FX_DWORD annot_flags = GetFlags();
if (annot_flags & ANNOTFLAG_HIDDEN) {
return NULL;
}
FX_BOOL bPrinting = bPrint || (pOptions && (pOptions->m_Flags & RENDER_PRINTPREVIEW));
if (bPrinting && (annot_flags & ANNOTFLAG_PRINT) == 0) {
return NULL;
}
if (!bPrinting && (annot_flags & ANNOTFLAG_NOVIEW)) {
return NULL;
}
CPDF_Dictionary* pBS = m_pAnnotDict->GetDict("BS");
char style_char;
FX_FLOAT width;
CPDF_Array* pDashArray = NULL;
if (pBS == NULL) {
CPDF_Array* pBorderArray = m_pAnnotDict->GetArray("Border");
style_char = 'S';
if (pBorderArray) {
width = pBorderArray->GetNumber(2);
if (pBorderArray->GetCount() == 4) {
pDashArray = pBorderArray->GetArray(3);
if (pDashArray == NULL) {
return NULL;
}
style_char = 'D';
}
} else {
width = 1;
}
} else {
CFX_ByteString style = pBS->GetString("S");
pDashArray = pBS->GetArray("D");
style_char = style[1];
width = pBS->GetNumber("W");
}
if (width <= 0) {
return NULL;
}
CPDF_Array* pColor = m_pAnnotDict->GetArray("C");
FX_DWORD argb = 0xff000000;
if (pColor != NULL) {
int R = (FX_INT32)(pColor->GetNumber(0) * 255);
int G = (FX_INT32)(pColor->GetNumber(1) * 255);
int B = (FX_INT32)(pColor->GetNumber(2) * 255);
argb = ArgbEncode(0xff, R, G, B);
}
nonstd::unique_ptr<CPDF_PathObject> pPathObject(new CPDF_PathObject());
CPDF_GraphStateData *pGraphState = pPathObject->m_GraphState.GetModify();
if (!pGraphState) {
return NULL;
}
pGraphState->m_LineWidth = width;
CPDF_ColorStateData *pColorData = pPathObject->m_ColorState.GetModify();
if (!pColorData) {
return NULL;
}
pColorData->m_StrokeRGB = argb;
pPathObject->m_bStroke = TRUE;
pPathObject->m_FillType = 0;
if (style_char == 'D') {
if (pDashArray) {
FX_DWORD dash_count = pDashArray->GetCount();
if (dash_count % 2) {
dash_count ++;
}
pGraphState->m_DashArray = FX_Alloc(FX_FLOAT, dash_count);
if (pGraphState->m_DashArray == NULL) {
return NULL;
}
pGraphState->m_DashCount = dash_count;
FX_DWORD i;
for (i = 0; i < pDashArray->GetCount(); i ++) {
pGraphState->m_DashArray[i] = pDashArray->GetNumber(i);
}
if (i < dash_count) {
pGraphState->m_DashArray[i] = pGraphState->m_DashArray[i - 1];
}
} else {
pGraphState->m_DashArray = FX_Alloc(FX_FLOAT, 2);
if (pGraphState->m_DashArray == NULL) {
return NULL;
}
pGraphState->m_DashCount = 2;
pGraphState->m_DashArray[0] = pGraphState->m_DashArray[1] = 3 * 1.0f;
}
}
CFX_FloatRect rect;
GetRect(rect);
width /= 2;
CPDF_PathData *pPathData = pPathObject->m_Path.GetModify();
if (pPathData) {
pPathData->AppendRect(rect.left + width, rect.bottom + width, rect.right - width, rect.top - width);
}
pPathObject->CalcBoundingBox();
//.........这里部分代码省略.........