本文整理汇总了C++中HPDF_Array_Add函数的典型用法代码示例。如果您正苦于以下问题:C++ HPDF_Array_Add函数的具体用法?C++ HPDF_Array_Add怎么用?C++ HPDF_Array_Add使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了HPDF_Array_Add函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的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;
}
开发者ID:12307,项目名称:poco,代码行数:25,代码来源:hpdf_array.c
示例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;
}
开发者ID:Jacktony,项目名称:iPhonePDF,代码行数:32,代码来源:hpdf_pages.c
示例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;
}
开发者ID:QuimFerrer,项目名称:core,代码行数:38,代码来源:hpdfpdfa.c
示例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;
}
开发者ID:Elena-Andr,项目名称:libharu-android,代码行数:50,代码来源:hpdf_namedict.c
示例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);
}
开发者ID:porchdog,项目名称:libharu,代码行数:27,代码来源:hpdf_pages.c
示例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;
}
开发者ID:porchdog,项目名称:libharu,代码行数:30,代码来源:hpdf_pages.c
示例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;
}
开发者ID:Allamaprabhu7,项目名称:APPDfTest,代码行数:35,代码来源:hpdf_destination.c
示例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;
}
开发者ID:Allamaprabhu7,项目名称:APPDfTest,代码行数:34,代码来源:hpdf_destination.c
示例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;
}
开发者ID:Allamaprabhu7,项目名称:APPDfTest,代码行数:28,代码来源:hpdf_destination.c
示例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;
}
开发者ID:binzhang,项目名称:libharu,代码行数:33,代码来源:hpdf_u3d.c
示例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;
}
开发者ID:binzhang,项目名称:libharu,代码行数:28,代码来源:hpdf_u3d.c
示例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);
}
开发者ID:Elena-Andr,项目名称:libharu-android,代码行数:12,代码来源:hpdf_array.c
示例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;
}
开发者ID:ProjectTegano,项目名称:Tegano,代码行数:52,代码来源:hpdf_image_png.c
示例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);
}
开发者ID:12307,项目名称:poco,代码行数:13,代码来源:hpdf_array.c
示例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);
}
开发者ID:12307,项目名称:poco,代码行数:13,代码来源:hpdf_array.c
示例16: HPDF_Array_AddNumber
HPDF_STATUS
HPDF_Array_AddNumber (HPDF_Array array,
HPDF_INT32 value)
{
HPDF_Number n = HPDF_Number_New (array->mmgr, value);
HPDF_PTRACE((" HPDF_Array_AddNumber\n"));
if (!n)
return HPDF_Error_GetCode (array->error);
else
return HPDF_Array_Add (array, n);
}
开发者ID:12307,项目名称:poco,代码行数:13,代码来源:hpdf_array.c
示例17: HPDF_Doc_PrepareEncryption
HPDF_STATUS
HPDF_Doc_PrepareEncryption (HPDF_Doc pdf)
{
HPDF_Encrypt e= HPDF_EncryptDict_GetAttr (pdf->encrypt_dict);
HPDF_Dict info = GetInfo (pdf);
HPDF_Array id;
if (!e)
return HPDF_DOC_ENCRYPTDICT_NOT_FOUND;
if (!info)
return pdf->error.error_no;
if (HPDF_EncryptDict_Prepare (pdf->encrypt_dict, info, pdf->xref) !=
HPDF_OK)
return pdf->error.error_no;
/* reset 'ID' to trailer-dictionary */
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;
} else
HPDF_Array_Clear (id);
if (HPDF_Array_Add (id, HPDF_Binary_New (pdf->mmgr, e->encrypt_id,
HPDF_ID_LEN)) != HPDF_OK)
return pdf->error.error_no;
if (HPDF_Array_Add (id, HPDF_Binary_New (pdf->mmgr, e->encrypt_id,
HPDF_ID_LEN)) != HPDF_OK)
return pdf->error.error_no;
return HPDF_OK;
}
开发者ID:GaryShearer,项目名称:BasicOCR,代码行数:37,代码来源:hpdf_doc.c
示例18: HPDF_LinkAnnot_SetBorderStyle
HPDF_LinkAnnot_SetBorderStyle (HPDF_Annotation annot,
HPDF_REAL width,
HPDF_UINT16 dash_on,
HPDF_UINT16 dash_off)
{
HPDF_Array array;
HPDF_STATUS ret;
HPDF_PTRACE((" HPDF_LinkAnnot_SetBorderStyle\n"));
if (!CheckSubType (annot, HPDF_ANNOT_LINK))
return HPDF_INVALID_ANNOTATION;
if (width < 0)
return HPDF_RaiseError (annot->error, HPDF_INVALID_PARAMETER, 0);
array = HPDF_Array_New (annot->mmgr);
if (!array)
return HPDF_CheckError (annot->error);
if ((ret = HPDF_Dict_Add (annot, "Border", array)) != HPDF_OK)
return HPDF_CheckError (annot->error);
ret += HPDF_Array_AddNumber (array, 0);
ret += HPDF_Array_AddNumber (array, 0);
ret += HPDF_Array_AddReal (array, width);
if (ret != HPDF_OK)
return HPDF_CheckError (annot->error);
if (dash_on && dash_off) {
HPDF_Array dash = HPDF_Array_New (annot->mmgr);
if (!dash)
return HPDF_CheckError (annot->error);
if ((ret = HPDF_Array_Add (array, dash)) != HPDF_OK)
return HPDF_CheckError (annot->error);
ret += HPDF_Array_AddNumber (dash, dash_on);
ret += HPDF_Array_AddNumber (dash, dash_off);
if (ret != HPDF_OK)
return HPDF_CheckError (annot->error);
}
return HPDF_OK;
}
开发者ID:AlexShiLucky,项目名称:luapower-all,代码行数:47,代码来源:hpdf_annotation.c
示例19: HPDF_PDFA_AppendOutputIntents
HPDF_STATUS
HPDF_PDFA_AppendOutputIntents(HPDF_Doc pdf, const char *iccname, HPDF_Dict iccdict)
{
HPDF_Array intents;
HPDF_Dict intent;
HPDF_STATUS ret;
if (!HPDF_HasDoc (pdf))
return HPDF_INVALID_DOCUMENT;
/* prepare intent */
intent = HPDF_Dict_New (pdf->mmgr);
ret = HPDF_Xref_Add (pdf->xref, intent);
if ( ret != HPDF_OK) {
HPDF_Dict_Free(intent);
return ret;
}
ret += HPDF_Dict_AddName (intent, "Type", "OutputIntent");
ret += HPDF_Dict_AddName (intent, "S", "GTS_PDFA1");
ret += HPDF_Dict_Add (intent, "OutputConditionIdentifier", HPDF_String_New (pdf->mmgr, iccname, NULL));
ret += HPDF_Dict_Add (intent, "OutputCondition", HPDF_String_New (pdf->mmgr, iccname,NULL));
ret += HPDF_Dict_Add (intent, "Info", HPDF_String_New (pdf->mmgr, iccname, NULL));
ret += HPDF_Dict_Add (intent, "DestOutputProfile ", iccdict);
if ( ret != HPDF_OK) {
HPDF_Dict_Free(intent);
return ret;
}
/* Copied from HPDF_AddIntent - not public function */
intents = HPDF_Dict_GetItem (pdf->catalog, "OutputIntents", HPDF_OCLASS_ARRAY);
if (intents == NULL) {
intents = HPDF_Array_New (pdf->mmgr);
if (intents) {
HPDF_STATUS ret = HPDF_Dict_Add (pdf->catalog, "OutputIntents", intents);
if (ret != HPDF_OK) {
HPDF_CheckError (&pdf->error);
return HPDF_Error_GetDetailCode (&pdf->error);
}
}
}
HPDF_Array_Add(intents,intent);
return HPDF_Error_GetDetailCode (&pdf->error);
}
开发者ID:QuimFerrer,项目名称:core,代码行数:43,代码来源:hpdfpdfa.c
示例20: HPDF_Catalog_AddPageLabel
HPDF_STATUS
HPDF_Catalog_AddPageLabel (HPDF_Catalog catalog,
HPDF_UINT page_num,
HPDF_Dict page_label)
{
HPDF_STATUS ret;
HPDF_Array nums;
HPDF_Dict labels = HPDF_Dict_GetItem (catalog, "PageLabels",
HPDF_OCLASS_DICT);
HPDF_PTRACE ((" HPDF_Catalog_AddPageLabel\n"));
if (!labels) {
labels = HPDF_Dict_New (catalog->mmgr);
if (!labels)
return catalog->error->error_no;
if ((ret = HPDF_Dict_Add (catalog, "PageLabels", labels)) != HPDF_OK)
return ret;
}
nums = HPDF_Dict_GetItem (labels, "Nums", HPDF_OCLASS_ARRAY);
if (!nums) {
nums = HPDF_Array_New (catalog->mmgr);
if (!nums)
return catalog->error->error_no;
if ((ret = HPDF_Dict_Add (labels, "Nums", nums)) != HPDF_OK)
return ret;
}
if ((ret = HPDF_Array_AddNumber (nums, page_num)) != HPDF_OK)
return ret;
return HPDF_Array_Add (nums, page_label);
}
开发者ID:Jacktony,项目名称:iPhonePDF,代码行数:39,代码来源:hpdf_catalog.c
注:本文中的HPDF_Array_Add函数示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论