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); }
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; }