Sdílet prostřednictvím


Přidání žádosti o podpis do dokumentu XPS

Toto téma popisuje, jak přidat žádost o podpis do dokumentu XPS. Žádost o podpis vyzve uživatele k podepsání dokumentu, pokud souhlasí s záměrem podpisu.

Před použitím následujících příkladů kódu ve vašem programu si přečtěte upozornění v Běžné úlohy programování digitálních podpisů.

Přidání žádosti o podpis do dokumentu XPS:

  1. Načtěte dokument XPS do správce podpisů, jak je popsáno v Inicializace správce podpisů.
  2. Přidejte blok podpisu do správce podpisu.
  3. Vytvořte žádost o podpis v novém bloku podpisu.
  4. Nastavte vlastnosti žádosti o podpis:
    1. Nastavte záměr podpisu.
    2. Nastavte jméno osoby, jejíž podpis je požadován (požadovaný podepisující osoba).
    3. Nastavte datum, kdy je podpis povinný.
    4. Podle potřeby nastavte další vlastnosti podpisu.

Následující příklad kódu ukazuje, jak přidat žádost o podpis do dokumentu XPS.

HRESULT 
AddSignatureRequestToDocument (
    __in IXpsSignatureManager    *signatureManager,
    __in LPCWSTR                reasonForSignatureRequest,
    __in LPCWSTR                nameOfRequestedSigner,
    __in LPCWSTR                requestSignByDate
)
{
    HRESULT                  hr = S_OK;
    IXpsSignatureBlock       *signatureDefinition = NULL;
    IXpsSignatureRequest     *signatureRequest = NULL;
    
    // Create a new signature block and get a pointer to it
    hr = signatureManager->AddSignatureBlock (NULL, 0, &signatureDefinition);
    
    if (SUCCEEDED(hr)) {
        // Create a new signature request to use for this signature block
        hr = signatureDefinition->CreateRequest(NULL, &signatureRequest);
    }

    if (SUCCEEDED(hr)) {
        // Initialize the properties of the signature request

        //  Set the string that describes the purpose of the signature
        //  to the person who will sign the document.
        hr = signatureRequest->SetIntent(reasonForSignatureRequest);
    }

    if (SUCCEEDED(hr)) {
        //  Set the name of the person whose signature is requested.
        hr = signatureRequest->SetRequestedSigner(nameOfRequestedSigner);
    }

    if (SUCCEEDED(hr)) {
        //  Set the date that the person should sign the document.
        //  The person is requested to sign the document on or before
        //   the date specified in this field. Refer to the help text
        //   for the correct format of this string.
        hr = signatureRequest->SetRequestSignByDate(requestSignByDate);
    }

    if (NULL != signatureDefinition) signatureDefinition->Release();
    if (NULL != signatureRequest) signatureRequest->Release();

    return hr;
}

použitá v této části

IXpsSignatureBlock

IXpsSignatureBlock::CreateRequest

IXpsSignatureManager

IXpsSignatureManager::AddSignatureBlock

IXpsSignatureRequest

IXpsSignatureRequest::SetIntent

IXpsSignatureRequest::SetRequestedSigner (nastavit požadovaného signatáře)

IXpsSignatureRequest::SetRequestSignByDate

Pro více informací

chyby rozhraní API digitálního podpisu XPS

chyby dokumentu XPS

specifikace papíru XML