HPDF_LinkAnnot_SetHighlightMode (HPDF_Annotation annot, HPDF_AnnotHighlightMode mode) { HPDF_STATUS ret; HPDF_PTRACE((" HPDF_LinkAnnot_SetHighlightMode\n")); if (!CheckSubType (annot, HPDF_ANNOT_LINK)) return HPDF_INVALID_ANNOTATION; switch (mode) { case HPDF_ANNOT_NO_HIGHTLIGHT: ret = HPDF_Dict_AddName (annot, "H", "N"); break; case HPDF_ANNOT_INVERT_BORDER: ret = HPDF_Dict_AddName (annot, "H", "O"); break; case HPDF_ANNOT_DOWN_APPEARANCE: ret = HPDF_Dict_AddName (annot, "H", "P"); break; default: /* HPDF_ANNOT_INVERT_BOX */ /* default value */ HPDF_Dict_RemoveElement (annot, "H"); ret = HPDF_OK; } if (ret != HPDF_OK) return HPDF_CheckError (annot->error); return ret; }
HPDF_STATUS HPDF_Catalog_SetOpenAction (HPDF_Catalog catalog, HPDF_Destination open_action) { if (!open_action) { HPDF_Dict_RemoveElement (catalog, "OpenAction"); return HPDF_OK; } return HPDF_Dict_Add (catalog, "OpenAction", open_action); }
HPDF_STATUS HPDF_Doc_SetEncryptOff (HPDF_Doc pdf) { HPDF_PTRACE ((" HPDF_Doc_SetEncryptOff\n")); if (!pdf->encrypt_on) return HPDF_OK; /* if encrypy-dict object is registered to cross-reference-table, * replace it to null-object. * additionally remove encrypt-dict object from trailer-object. */ if (pdf->encrypt_dict) { HPDF_UINT obj_id = pdf->encrypt_dict->header.obj_id; if (obj_id & HPDF_OTYPE_INDIRECT) { HPDF_XrefEntry entry; HPDF_Null null_obj; HPDF_Dict_RemoveElement (pdf->trailer, "Encrypt"); entry = HPDF_Xref_GetEntryByObjectId (pdf->xref, obj_id & 0x00FFFFFF); if (!entry) { return HPDF_SetError (&pdf->error, HPDF_DOC_ENCRYPTDICT_NOT_FOUND, 0); } null_obj = HPDF_Null_New (pdf->mmgr); if (!null_obj) return pdf->error.error_no; entry->obj = null_obj; null_obj->header.obj_id = obj_id | HPDF_OTYPE_INDIRECT; pdf->encrypt_dict->header.obj_id = HPDF_OTYPE_NONE; } } pdf->encrypt_on = HPDF_FALSE; return HPDF_OK; }
HPDF_STATUS HPDF_Catalog_SetViewerPreference (HPDF_Catalog catalog, HPDF_UINT value) { HPDF_STATUS ret; HPDF_Dict preferences; HPDF_PTRACE ((" HPDF_Catalog_SetViewerPreference\n")); if (!value) { ret = HPDF_Dict_RemoveElement (catalog, "ViewerPreferences"); if (ret == HPDF_DICT_ITEM_NOT_FOUND) ret = HPDF_OK; return ret; } preferences = HPDF_Dict_New (catalog->mmgr); if (!preferences) return catalog->error->error_no; if ((ret = HPDF_Dict_Add (catalog, "ViewerPreferences", preferences)) != HPDF_OK) return ret; /* */ if (value & HPDF_HIDE_TOOLBAR) { if ((ret = HPDF_Dict_AddBoolean (preferences, "HideToolbar", HPDF_TRUE)) != HPDF_OK) return ret; } else { if ((ret = HPDF_Dict_RemoveElement (preferences, "HideToolbar")) != HPDF_OK) if (ret != HPDF_DICT_ITEM_NOT_FOUND) return ret; } if (value & HPDF_HIDE_MENUBAR) { if ((ret = HPDF_Dict_AddBoolean (preferences, "HideMenubar", HPDF_TRUE)) != HPDF_OK) return ret; } else { if ((ret = HPDF_Dict_RemoveElement (preferences, "HideMenubar")) != HPDF_OK) if (ret != HPDF_DICT_ITEM_NOT_FOUND) return ret; } if (value & HPDF_HIDE_WINDOW_UI) { if ((ret = HPDF_Dict_AddBoolean (preferences, "HideWindowUI", HPDF_TRUE)) != HPDF_OK) return ret; } else { if ((ret = HPDF_Dict_RemoveElement (preferences, "HideWindowUI")) != HPDF_OK) if (ret != HPDF_DICT_ITEM_NOT_FOUND) return ret; } if (value & HPDF_FIT_WINDOW) { if ((ret = HPDF_Dict_AddBoolean (preferences, "FitWindow", HPDF_TRUE)) != HPDF_OK) return ret; } else { if ((ret = HPDF_Dict_RemoveElement (preferences, "FitWindow")) != HPDF_OK) if (ret != HPDF_DICT_ITEM_NOT_FOUND) return ret; } if (value & HPDF_CENTER_WINDOW) { if ((ret = HPDF_Dict_AddBoolean (preferences, "CenterWindow", HPDF_TRUE)) != HPDF_OK) return ret; } else { if ((ret = HPDF_Dict_RemoveElement (preferences, "CenterWindow")) != HPDF_OK) if (ret != HPDF_DICT_ITEM_NOT_FOUND) return ret; } if (value & HPDF_PRINT_SCALING_NONE) { if ((ret = HPDF_Dict_AddName (preferences, "PrintScaling", "None")) != HPDF_OK) return ret; } else { if ((ret = HPDF_Dict_RemoveElement (preferences, "PrintScaling")) != HPDF_OK) if (ret != HPDF_DICT_ITEM_NOT_FOUND) return ret; } return HPDF_OK; }