void AnnotWriter::AddColor(Object* dict, char* key, GfxRGB* c) { Object a; a.initArray(mXRef); AddReal(&a, colToDbl(c->r)); AddReal(&a, colToDbl(c->g)); AddReal(&a, colToDbl(c->b)); dict->dictAdd(copyString(key), &a); }
void AnnotWriter::AddRect(Object* dict, char* key, PDFRectangle* rect) { ASSERT(dict->isDict()); Object a; a.initArray(mXRef); AddReal(&a, rect->x1); AddReal(&a, rect->y1); AddReal(&a, rect->x2); AddReal(&a, rect->y2); dict->dictAdd(copyString(key), &a); }
void GeneratorTest() { char* string; JsonObject* root = CreateJsonObject(); JsonObject* element = CreateJsonObject(); JsonArray* array = CreateJsonArray(); AddInteger(array, 0); AddReal(array, 0.0); AddBoolean(array, FALSE); AddObject(array, element); AddString(array, "element"); AddNull(array); PutNull(root, "0"); PutInteger(root, "Year", 1970); PutInteger(root, "Month", 3); PutInteger(root, "Date", 18); PutArray(root, "Array", array); PutBoolean(root, "Proposition", TRUE); PutString(root, "Text", "Hello World"); PutReal(root, "Pi", 3.14159265358979323846264338327950288419716939937510582097494459230781640); string = ToString(root); printf("%s", string); printf("\r\n"); EXPECT_EQUAL_STRING("{\"0\":null,\"Year\":1970,\"Month\":3,\"Date\":18,\"Array\":[0,0.000000,false,{},\"element\",null],\"Proposition\":true,\"Text\":\"Hello World\",\"Pi\":3.141593}", string); free(string); ClearJsonObject(root); ClearJsonArray(array); string = ToString(root); EXPECT_EQUAL_STRING("{}", string); free(string); }
void AnnotWriter::DoAnnotation(Annotation* a) { AddRect(&mAnnot, "Rect", a->GetRect()); if (a->HasColor()) { AddColor(&mAnnot, "C", a->GetColor()); } if (a->GetDate()[0] != 0) { AddString(&mAnnot, "M", (char*)a->GetDate()); } AddInteger(&mAnnot, "F", a->GetFlags()->Flags()); if (a->GetTitle() != NULL) { AddString(&mAnnot, "T", a->GetTitle()); } if (a->GetOpacity() != 1.0) { AddReal(&mAnnot, "CA", a->GetOpacity()); } PopupAnnot* popup = a->GetPopup(); if (popup != NULL) { popup->SetParentRef(a->GetRef()); if (is_empty_ref(popup->GetRef())) { popup->SetRef(mXRefTable.GetNewRef(xrefEntryUncompressed)); } AddRef(&mAnnot, "Popup", popup->GetRef()); } if (HasAppearanceStream(a)) { mASRef = mXRefTable.GetNewRef(xrefEntryUncompressed); Object ap; ap.initDict(mXRef); AddRef(&ap, "N", mASRef); AddDict(&mAnnot, "AP", &ap); } if (dynamic_cast<PopupAnnot*>(a) == NULL) { AddRef(&mAnnot, "P", mPageRef); } }
void VJSONArrayWriter::AddReals(const Real *inArray, sLONG inCountOfElements) { if(testAssert(inArray != NULL && inCountOfElements >= 0)) { if(inCountOfElements > 0) { _ReopenIfNeeded(); for(sLONG i = 0; i < inCountOfElements; ++i) AddReal(*inArray++); //Add(VReal(*inArray++)); } } }