public static DOCXField[] GetSignatureFields(string DocxFile) { int rc; int NumOfFields = 0; SAPIContext ctxSigField = new SAPIContextClass(); rc = SAPI.SignatureFieldEnumInit( hSession, ctxSigField, SAPI_ENUM_FILE_TYPE.SAPI_ENUM_FILE_OFFICE_XML_PACKAGE, DocxFile, 0, ref NumOfFields); if (rc != 0) { throw new Exception("Failed in SAPISignatureFieldEnumInit (" + rc.ToString("X") + ")"); } //There are no signature fields if (NumOfFields == 0) { return(null); } DOCXField[] Fields = new DOCXField[NumOfFields]; for (int i = 0; i < NumOfFields; i++) { Fields[i] = new DOCXField(); //Get Signature Field Handle rc = SAPI.SignatureFieldEnumCont(hSession, ctxSigField, out Fields[i].hSigField); if (rc != 0) { throw new Exception("Failed in SignatureFieldEnumCont (" + rc.ToString("X") + ")"); } //Get Signature Field Details rc = SAPI.SignatureFieldInfoGet( hSession, Fields[i].hSigField, Fields[i].sSettings, Fields[i].sInfo); if (rc != 0) { throw new Exception("Failed in SignatureFieldInfoGet (" + rc.ToString("X") + ")"); } } SAPI.ContextRelease(ctxSigField); return(Fields); }
public static void SignField(DOCXField Field) { int rc = SAPI.SignatureFieldSign(hSession, Field.hSigField, 0); if (rc != 0) { throw new Exception("Failed in SignatureFieldSign (" + rc.ToString("X") + ")"); } }
private void lstFields_SelectedIndexChanged(object sender, EventArgs e) { if (lstFields.SelectedIndex >= 0) { DOCXField fld = (DOCXField)lstFields.SelectedItem; if (fld.sInfo.IsSigned != 0) { btnSign.Enabled = false; } else { btnSign.Enabled = true; } } else { btnSign.Enabled = false; } }
public static void SignField(DOCXField Field) { int rc = SAPI.SignatureFieldSign(hSession, Field.hSigField, 0); if (rc != 0) throw new Exception("Failed in SignatureFieldSign (" + rc.ToString("X") + ")"); }
public static DOCXField[] GetSignatureFields(string DocxFile) { int rc; int NumOfFields = 0; SAPIContext ctxSigField = new SAPIContextClass(); rc = SAPI.SignatureFieldEnumInit( hSession, ctxSigField, SAPI_ENUM_FILE_TYPE.SAPI_ENUM_FILE_OFFICE_XML_PACKAGE, DocxFile, 0, ref NumOfFields); if (rc != 0) throw new Exception("Failed in SAPISignatureFieldEnumInit (" + rc.ToString("X") + ")"); //There are no signature fields if (NumOfFields == 0) return null; DOCXField[] Fields = new DOCXField[NumOfFields]; for (int i = 0; i < NumOfFields; i++) { Fields[i] = new DOCXField(); //Get Signature Field Handle rc = SAPI.SignatureFieldEnumCont(hSession, ctxSigField, out Fields[i].hSigField); if (rc != 0) throw new Exception("Failed in SignatureFieldEnumCont (" + rc.ToString("X") + ")"); //Get Signature Field Details rc = SAPI.SignatureFieldInfoGet( hSession, Fields[i].hSigField, Fields[i].sSettings, Fields[i].sInfo); if (rc != 0) throw new Exception("Failed in SignatureFieldInfoGet (" + rc.ToString("X") + ")"); } SAPI.ContextRelease(ctxSigField); return Fields; }