本文整理汇总了C++中HPDF_Array_Add函数的典型用法代码示例。如果您正苦于以下问题:C++ HPDF_Array_Add函数的具体用法?C++ HPDF_Array_Add怎么用?C++ HPDF_Array_Add使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了HPDF_Array_Add函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: HPDF_Box_Array_New
HPDF_Array
HPDF_Box_Array_New (HPDF_MMgr mmgr,
HPDF_Box box)
{
HPDF_Array obj;
HPDF_STATUS ret = HPDF_OK;
HPDF_PTRACE((" HPDF_Box_Array_New\n"));
obj = HPDF_Array_New (mmgr);
if (!obj)
return NULL;
ret += HPDF_Array_Add (obj, HPDF_Real_New (mmgr, box.left));
ret += HPDF_Array_Add (obj, HPDF_Real_New (mmgr, box.bottom));
ret += HPDF_Array_Add (obj, HPDF_Real_New (mmgr, box.right));
ret += HPDF_Array_Add (obj, HPDF_Real_New (mmgr, box.top));
if (ret != HPDF_OK) {
HPDF_Array_Free (obj);
return NULL;
}
return obj;
}
示例2: AddResource
HPDF_STATUS
AddResource (HPDF_Page page)
{
HPDF_STATUS ret = HPDF_OK;
HPDF_Dict resource;
HPDF_Array procset;
HPDF_PTRACE((" HPDF_Page_AddResource\n"));
resource = HPDF_Dict_New (page->mmgr);
if (!resource)
return HPDF_Error_GetCode (page->error);
/* althoth ProcSet-entry is obsolete, add it to resouce for
* compatibility
*/
ret += HPDF_Dict_Add (page, "Resources", resource);
procset = HPDF_Array_New (page->mmgr);
if (!procset)
return HPDF_Error_GetCode (page->error);
ret += HPDF_Dict_Add (resource, "ProcSet", procset);
ret += HPDF_Array_Add (procset, HPDF_Name_New (page->mmgr, "PDF"));
ret += HPDF_Array_Add (procset, HPDF_Name_New (page->mmgr, "Text"));
ret += HPDF_Array_Add (procset, HPDF_Name_New (page->mmgr, "ImageB"));
ret += HPDF_Array_Add (procset, HPDF_Name_New (page->mmgr, "ImageC"));
ret += HPDF_Array_Add (procset, HPDF_Name_New (page->mmgr, "ImageI"));
return ret;
}
示例3: HPDF_PDFA_GenerateID
/* Generate an ID for the trailer dict, PDF/A needs this.
TODO: Better algorithm for generate unique ID.
*/
HPDF_STATUS
HPDF_PDFA_GenerateID(HPDF_Doc pdf)
{
HPDF_Array id;
HPDF_BYTE *currentTime;
HPDF_BYTE idkey[HPDF_MD5_KEY_LEN];
HPDF_MD5_CTX md5_ctx;
time_t ltime;
ltime = time(NULL);
currentTime = (HPDF_BYTE *)ctime(<ime);
id = HPDF_Dict_GetItem(pdf->trailer, "ID", HPDF_OCLASS_ARRAY);
if (!id) {
id = HPDF_Array_New(pdf->mmgr);
if (!id || HPDF_Dict_Add(pdf->trailer, "ID", id) != HPDF_OK)
return pdf->error.error_no;
HPDF_MD5Init(&md5_ctx);
HPDF_MD5Update(&md5_ctx, (HPDF_BYTE *) "libHaru", sizeof("libHaru") - 1);
HPDF_MD5Update(&md5_ctx, currentTime, HPDF_StrLen((const char *)currentTime, -1));
HPDF_MD5Final(idkey, &md5_ctx);
if (HPDF_Array_Add (id, HPDF_Binary_New (pdf->mmgr, idkey, HPDF_MD5_KEY_LEN)) != HPDF_OK)
return pdf->error.error_no;
if (HPDF_Array_Add (id, HPDF_Binary_New (pdf->mmgr,idkey,HPDF_MD5_KEY_LEN)) != HPDF_OK)
return pdf->error.error_no;
return HPDF_OK;
}
return HPDF_OK;
}
示例4: HPDF_NameTree_Add
HPDF_STATUS
HPDF_NameTree_Add (HPDF_NameTree tree,
HPDF_String name,
void *obj)
{
HPDF_Array items;
HPDF_INT32 i, icount;
if (!tree || !name)
return HPDF_INVALID_PARAMETER;
items = HPDF_Dict_GetItem (tree, "Names", HPDF_OCLASS_ARRAY);
if (!items)
return HPDF_INVALID_OBJECT;
/* "The keys shall be sorted in lexical order" -- 7.9.6, Name Trees.
* Since we store keys sorted, it's best to do a linear insertion sort
* Find the first element larger than 'key', and insert 'key' and then
* 'obj' into the items. */
icount = HPDF_Array_Items(items);
/* If we're larger than the last element, append */
if (icount) {
HPDF_String last = HPDF_Array_GetItem(items, icount - 2, HPDF_OCLASS_STRING);
if (HPDF_String_Cmp(name, last) > 0) {
HPDF_Array_Add(items, name);
HPDF_Array_Add(items, obj);
return HPDF_OK;
}
}
/* Walk backwards through the list until we're smaller than an element=
* That's the element to insert in front of. */
for (i = icount - 4; i >= 0; i -= 2) {
HPDF_String elem = HPDF_Array_GetItem(items, i, HPDF_OCLASS_STRING);
if (i == 0 || HPDF_String_Cmp(name, elem) < 0) {
HPDF_Array_Insert(items, elem, name);
HPDF_Array_Insert(items, elem, obj);
return HPDF_OK;
}
}
/* Items list is empty */
HPDF_Array_Add(items, name);
HPDF_Array_Add(items, obj);
return HPDF_OK;
}
示例5: HPDF_Pages_AddKids
HPDF_STATUS
HPDF_Pages_AddKids (HPDF_Pages parent,
HPDF_Dict kid)
{
HPDF_Array kids;
HPDF_STATUS ret;
HPDF_PTRACE((" HPDF_Pages_AddKids\n"));
if (HPDF_Dict_GetItem (kid, "Parent", HPDF_OCLASS_DICT))
return HPDF_SetError (parent->error, HPDF_PAGE_CANNOT_SET_PARENT, 0);
if ((ret = HPDF_Dict_Add (kid, "Parent", parent)) != HPDF_OK)
return ret;
kids = (HPDF_Array )HPDF_Dict_GetItem (parent, "Kids", HPDF_OCLASS_ARRAY);
if (!kids)
return HPDF_SetError (parent->error, HPDF_PAGES_MISSING_KIDS_ENTRY, 0);
if (kid->header.obj_class == (HPDF_OCLASS_DICT | HPDF_OSUBCLASS_PAGE)) {
HPDF_PageAttr attr = (HPDF_PageAttr)kid->attr;
attr->parent = parent;
}
return HPDF_Array_Add (kids, kid);
}
示例6: AddAnnotation
static HPDF_STATUS
AddAnnotation (HPDF_Page page,
HPDF_Annotation annot)
{
HPDF_Array array;
HPDF_STATUS ret = HPDF_OK;
HPDF_PTRACE((" HPDF_Pages\n"));
/* find "Annots" entry */
array = HPDF_Dict_GetItem (page, "Annots", HPDF_OCLASS_ARRAY);
if (!array) {
array = HPDF_Array_New (page->mmgr);
if (!array)
return HPDF_Error_GetCode (page->error);
ret = HPDF_Dict_Add (page, "Annots", array);
if (ret != HPDF_OK)
return ret;
}
if ((ret = HPDF_Array_Add (array, annot)) != HPDF_OK)
return ret;
/* Add Parent to the annotation */
ret = HPDF_Dict_Add( annot, "P", page);
return ret;
}
示例7: HPDF_Destination_SetXYZ
HPDF_Destination_SetXYZ (HPDF_Destination dst,
HPDF_REAL left,
HPDF_REAL top,
HPDF_REAL zoom)
{
HPDF_STATUS ret = HPDF_OK;
HPDF_Page target;
HPDF_PTRACE((" HPDF_Destination_SetXYZ\n"));
if (!HPDF_Destination_Validate (dst))
return HPDF_INVALID_DESTINATION;
if (left < 0 || top < 0 || zoom < 0.08 || zoom > 32)
return HPDF_RaiseError (dst->error, HPDF_INVALID_PARAMETER, 0);
target = (HPDF_Page)HPDF_Array_GetItem (dst, 0, HPDF_OCLASS_DICT);
if (dst->list->count > 1) {
HPDF_Array_Clear (dst);
ret += HPDF_Array_Add (dst, target);
}
ret += HPDF_Array_AddName (dst,
HPDF_DESTINATION_TYPE_NAMES[(HPDF_INT)HPDF_XYZ]);
ret += HPDF_Array_AddReal (dst, left);
ret += HPDF_Array_AddReal (dst, top);
ret += HPDF_Array_AddReal (dst, zoom);
if (ret != HPDF_OK)
return HPDF_CheckError (dst->error);
return HPDF_OK;
}
示例8: HPDF_Destination_New
HPDF_Destination
HPDF_Destination_New (HPDF_MMgr mmgr,
HPDF_Page target,
HPDF_Xref xref)
{
HPDF_Destination dst;
HPDF_PTRACE((" HPDF_Destination_New\n"));
if (!HPDF_Page_Validate (target)) {
HPDF_SetError (mmgr->error, HPDF_INVALID_PAGE, 0);
return NULL;
}
dst = HPDF_Array_New (mmgr);
if (!dst)
return NULL;
dst->header.obj_class |= HPDF_OSUBCLASS_DESTINATION;
if (HPDF_Xref_Add (xref, dst) != HPDF_OK)
return NULL;
/* first item of array must be target page */
if (HPDF_Array_Add (dst, target) != HPDF_OK)
return NULL;
/* default type is HPDF_FIT */
if (HPDF_Array_AddName (dst,
HPDF_DESTINATION_TYPE_NAMES[(HPDF_INT)HPDF_FIT]) != HPDF_OK)
return NULL;
return dst;
}
示例9: HPDF_Destination_SetFitBV
HPDF_Destination_SetFitBV (HPDF_Destination dst,
HPDF_REAL left)
{
HPDF_STATUS ret = HPDF_OK;
HPDF_Page target;
HPDF_PTRACE((" HPDF_Destination_SetFitBV\n"));
if (!HPDF_Destination_Validate (dst))
return HPDF_INVALID_DESTINATION;
target = (HPDF_Page)HPDF_Array_GetItem (dst, 0, HPDF_OCLASS_DICT);
if (dst->list->count > 1) {
HPDF_Array_Clear (dst);
ret += HPDF_Array_Add (dst, target);
}
ret += HPDF_Array_AddName (dst,
HPDF_DESTINATION_TYPE_NAMES[(HPDF_INT)HPDF_FIT_BV]);
ret += HPDF_Array_AddReal (dst, left);
if (ret != HPDF_OK)
return HPDF_CheckError (dst->error);
return HPDF_OK;
}
示例10: HPDF_EXPORT
HPDF_EXPORT(HPDF_STATUS) HPDF_U3D_Add3DView(HPDF_U3D u3d, HPDF_Dict view)
{
HPDF_Array views = NULL;
HPDF_STATUS ret = HPDF_OK;
HPDF_PTRACE ((" HPDF_Add3DView\n"));
if (u3d == NULL || view == NULL) {
return HPDF_INVALID_U3D_DATA;
}
views = (HPDF_Array)HPDF_Dict_GetItem (u3d, "VA", HPDF_OCLASS_ARRAY);
if (views == NULL) {
views = HPDF_Array_New (u3d->mmgr);
if (!views) {
return HPDF_Error_GetCode (u3d->error);
}
ret = HPDF_Dict_Add (u3d, "VA", views);
if (ret == HPDF_OK) {
ret = HPDF_Dict_AddNumber (u3d, "DV", 0);
} else {
HPDF_Array_Free (views);
return ret;
}
}
if (ret == HPDF_OK) {
ret = HPDF_Array_Add( views, view);
}
return ret;
}
示例11: HPDF_3DView_Add3DC3DMeasure
HPDF_3DView_Add3DC3DMeasure(HPDF_Dict view,
HPDF_3DMeasure measure)
{
HPDF_STATUS ret = HPDF_OK;
HPDF_Array array;
void* a;
a = HPDF_Dict_GetItem (view, "MA", HPDF_OCLASS_ARRAY);
if ( a )
{
array = (HPDF_Array)a;
}
else
{
array = HPDF_Array_New (view->mmgr);
if (!array)
return 0;
if (HPDF_Dict_Add (view, "MA", array) != HPDF_OK)
return 0;
}
ret = HPDF_Array_Add(array, measure);
return ret;
}
示例12: HPDF_Array_AddNull
HPDF_STATUS
HPDF_Array_AddNull (HPDF_Array array)
{
HPDF_Null n = HPDF_Null_New (array->mmgr);
HPDF_PTRACE (" HPDF_Array_AddNull\n");
if (!n)
return HPDF_Error_GetCode (array->error);
else
return HPDF_Array_Add (array, n);
}
示例13: CreatePallet
static HPDF_STATUS
CreatePallet (HPDF_Dict image,
png_structp png_ptr,
png_infop info_ptr)
{
HPDF_INT num_pl = 0;
png_color *src_pl = NULL;
HPDF_BYTE *ppallet;
HPDF_BYTE *p;
HPDF_UINT i;
HPDF_Array array;
/* png_get_PLTE does not call PngErrorFunc even if it failed.
* so we call HPDF_Set_Error to set error-code.
*/
if (png_get_PLTE(png_ptr, info_ptr, (png_color**)&src_pl, &num_pl) !=
PNG_INFO_PLTE)
return HPDF_SetError (image->error, HPDF_LIBPNG_ERROR,
HPDF_CANNOT_GET_PALLET);
/* make a pallet array for indexed image. */
ppallet = HPDF_GetMem (image->mmgr, num_pl * 3);
if (!ppallet)
return image->error->error_no;
p = ppallet;
for (i = 0; i < num_pl; i++, src_pl++) {
*p++ = src_pl->red;
*p++ = src_pl->green;
*p++ = src_pl->blue;
}
array = HPDF_Array_New (image->mmgr);
if (array) {
HPDF_Binary b;
HPDF_Dict_Add (image, "ColorSpace", array);
HPDF_Array_AddName (array, "Indexed");
HPDF_Array_AddName (array, "DeviceRGB");
HPDF_Array_AddNumber (array, num_pl - 1);
b = HPDF_Binary_New (image->mmgr, ppallet, num_pl * 3);
if (b)
HPDF_Array_Add (array, b);
}
HPDF_FreeMem (image->mmgr, ppallet);
return image->error->error_no;
}
示例14: HPDF_Array_AddReal
HPDF_STATUS
HPDF_Array_AddReal (HPDF_Array array,
HPDF_REAL value)
{
HPDF_Real r = HPDF_Real_New (array->mmgr, value);
HPDF_PTRACE((" HPDF_Array_AddReal\n"));
if (!r)
return HPDF_Error_GetCode (array->error);
else
return HPDF_Array_Add (array, r);
}
示例15: HPDF_Array_AddName
HPDF_STATUS
HPDF_Array_AddName (HPDF_Array array,
const char *value)
{
HPDF_Name n = HPDF_Name_New (array->mmgr, value);
HPDF_PTRACE((" HPDF_Array_AddName\n"));
if (!n)
return HPDF_Error_GetCode (array->error);
else
return HPDF_Array_Add (array, n);
}