Bagikan melalui


Menambahkan Permintaan Tanda Tangan ke Dokumen XPS

Topik ini menjelaskan cara menambahkan permintaan tanda tangan ke dokumen XPS. Permintaan tanda tangan meminta pengguna untuk menandatangani dokumen jika dia setuju dengan niat tanda tangan.

Sebelum menggunakan contoh kode berikut dalam program Anda, baca penafian di Tugas Pemrograman Tanda Tangan Digital Umum.

Untuk menambahkan permintaan tanda tangan ke Dokumen XPS:

  1. Muat dokumen XPS ke pengelola tanda tangan, seperti yang dijelaskan dalam Inisialisasi Signature Manager.
  2. Tambahkan blok tanda tangan ke pengelola tanda tangan.
  3. Buat permintaan tanda tangan di blok tanda tangan baru.
  4. Atur properti permintaan tanda tangan:
    1. Atur niat tanda tangan.
    2. Atur nama orang yang tanda tangannya diminta (penanda tangan yang diminta).
    3. Atur tanggal tanda tangan diperlukan.
    4. Atur properti tanda tangan lainnya sesuai kebutuhan.

Contoh kode berikut mengilustrasikan cara menambahkan permintaan tanda tangan ke dokumen 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;
}

Digunakan di bagian ini

IXpsSignatureBlock

IXpsSignatureBlock::CreateRequest

IXpsSignatureManager

IXpsSignatureManager::AddSignatureBlock

IXpsSignatureRequest

IXpsSignatureRequest::SetIntent

IXpsSignatureRequest::SetRequestedSigner

IXpsSignatureRequest::SetRequestSignByDate

Untuk informasi selengkapnya

Kesalahan API Tanda Tangan Digital XPS

Kesalahan Dokumen XPS

Spesifikasi Kertas XML