THotPDF.AddLoadedSignedSignatureField Method

Adiciona a um documento carregado um campo de assinatura pronto para assinar. O campo carrega um dicionário de assinatura com espaço reservado para /ByteRange e /Contents, de modo que SignPDFWithPFX, PreparePDFForSigning e InsertSignatureHex podem assiná-lo assim que o documento for salvo. Em conjunto com BeginIncrementalUpdate, é assim que um PDF já assinado recebe uma segunda assinatura

Declaração

function AddLoadedSignedSignatureField(PageIndex: Integer; X1, Y1, X2, Y2: Single;
  const AFieldName: AnsiString; ContentsBytes: Integer = 8192;
  const SubFilter: AnsiString = 'adbe.pkcs7.detached';
  const Reason: AnsiString = ''; const Location: AnsiString = '';
  const ContactName: AnsiString = ''): Integer;

Unidade

HPDFDoc

Parâmetros

NomeFinalidade
PageIndexÍndice baseado em zero da página carregada que exibe o widget de assinatura
X1, Y1, X2, Y2Retângulo do widget no espaço de usuário do PDF (pontos, origem no canto inferior esquerdo); largura e altura devem ser positivas
AFieldNameNome do novo campo de assinatura; não pode ser vazio nem já existir no documento
ContentsBytesBytes reservados para a assinatura CMS (gravados como o dobro de dígitos hexadecimais); devem comportar a assinatura completa, incluindo certificados e qualquer token de timestamp
SubFilterFormato da assinatura, por exemplo adbe.pkcs7.detached ou ETSI.CAdES.detached
Reason, Location, ContactNameEntradas opcionais /Reason, /Location e /ContactInfo do dicionário de assinatura

Valor de retorno

Retorna o índice do novo campo de formulário, ou -1 quando PageIndex está fora da faixa

Notas de uso

Exemplo

PDF := THotPDF.Create(nil);
try
  PDF.BeginIncrementalUpdate('Signed.pdf');
  PDF.AddLoadedSignedSignatureField(0, 300, 120, 500, 160, 'Approver', 8192,
    'adbe.pkcs7.detached', 'Approved');
  PDF.SaveIncrementalUpdate('Prepared.pdf');
finally
  PDF.Free;
end;
// Signs the reserved field; the first signature stays valid
THotPDF.SignPDFWithPFX('Prepared.pdf', 'SignedTwice.pdf', 'Signer.pfx', 'password');

APIs relacionadas