Beispiel #1
0
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);
}
Beispiel #2
0
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);
}
Beispiel #3
0
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);
}
Beispiel #4
0
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++));
		}
	}
}