Assinar PDF com assinaturas de campo de formulário usando C#

Campos de formulário são vários tipos de campos de dados usados para coletar informações dos usuários. Como desenvolvedor C#, você pode criar facilmente documentos PDF para serem preenchidos e assinados pelos usuários eletronicamente. Isso pode ser útil para coletar comentários de clientes, consentimento de parceiros etc. Neste artigo, você aprenderá como assinar documentos PDF eletronicamente com assinaturas de campos de formulário usando C#.

Os seguintes tópicos são discutidos/abordados neste artigo:

API C# para assinar documentos PDF

Usarei a API GroupDocs.Signature for .NET para assinar os documentos PDF habilitados com assinaturas de campo de formulário. A API permite que você adicione assinaturas digitais aos formatos de documento suportados e implemente tipos populares de assinatura eletrônica em seus aplicativos .NET. Ele também permite opções de pesquisa simples e avançadas para localizar as assinaturas necessárias em um documento.

Assine documentos PDF com assinaturas de campo de formulário usando C#

Você pode assinar eletronicamente seus documentos PDF usando os seguintes tipos de assinaturas de campo de formulário programaticamente:

Assinar documentos PDF com assinaturas de campo de formulário de texto

Você pode assinar documentos PDF com assinaturas de campo de formulário de texto seguindo as etapas simples mencionadas abaixo:

  • Crie uma instância da classe Signature
  • Forneça o caminho do documento PDF de entrada
  • Crie uma instância da classe TextFormFieldSignature
  • Crie uma instância da classe FormFieldSignOptions com o objeto TextFormFieldSignature
  • Defina as opções de sinal necessárias, como Margem, Altura, Largura, etc.
  • Chame o método Sign() com FormFieldSignOptions e caminho do arquivo de saída

O exemplo de código a seguir mostra como assinar eletronicamente um documento PDF com assinaturas de campo de formulário de texto usando C#.

// criar uma instância de assinatura
Signature signature = new Signature(@"C:\Files\sample.pdf");

// instanciar assinatura de campo de formulário de texto
TextFormFieldSignature textSignature = new TextFormFieldSignature("textBoxData1", "Enter Your Name");
// instanciar opções com base na assinatura do campo de formulário de texto
FormFieldSignOptions optionsTextFF = new FormFieldSignOptions(textSignature);
optionsTextFF.HorizontalAlignment = HorizontalAlignment.Center;
optionsTextFF.VerticalAlignment = VerticalAlignment.Top;
optionsTextFF.Margin = new Padding(20, 0, 170, 0);
optionsTextFF.Height = 50;
optionsTextFF.Width = 200;

// assinar documento para arquivar
signature.Sign(@"C:\Files\TextFormFieldSignature.pdf", optionsTextFF);

A classe Signature é a classe principal que controla o processo de assinatura de documentos. Ele fornece vários métodos para assinar, pesquisar, excluir ou verificar assinaturas em um documento. O método Sign() desta classe é usado para assinar o documento com SignOptions definidas.

A classe TextFormFieldSignature fornece propriedades de assinatura de campo de formulário de entrada de texto para os documentos PDF.

Assinar Documentos PDF com Assinaturas de Campo de Formulário de Botão de Rádio

Você pode assinar documentos PDF com as assinaturas de campo de formulário de botão de opção seguindo as etapas mencionadas anteriormente. No entanto, você precisa criar uma instância da classe RadioButtonFormFieldSignature em vez de TextFormFieldSignature.

O exemplo de código a seguir mostra como assinar eletronicamente um documento PDF com assinaturas de campo de formulário de botão de opção usando C#.

// criar uma instância de assinatura
Signature signature = new Signature(@"C:\Files\sample.pdf");

// instanciar assinatura de campo de formulário de botão de opção
List<string> radioOptions = new List<string>() { "Male", "Female" };
RadioButtonFormFieldSignature rbSignature = new RadioButtonFormFieldSignature("radioData1", radioOptions, "Male");
// instanciar opções com base na assinatura do campo de formulário de texto
FormFieldSignOptions optionsTextRB = new FormFieldSignOptions(rbSignature);
optionsTextRB.HorizontalAlignment = HorizontalAlignment.Center;
optionsTextRB.VerticalAlignment = VerticalAlignment.Top;
optionsTextRB.Margin = new Padding(20, 0, 170, 0);
optionsTextRB.Height = 50;
optionsTextRB.Width = 200;

// assinar documento para arquivar
signature.Sign(@"C:\Files\RadioButtonFormFieldSignature.pdf", optionsTextRB);

A classe RadioButtonFormFieldSignature fornece propriedades de assinatura de campo de formulário de entrada de botão de opção para os documentos PDF.

Assine documentos PDF com assinaturas de campo de formulário de caixa de combinação

Você pode assinar documentos PDF com assinaturas de campo de formulário Combobox seguindo as etapas mencionadas anteriormente. No entanto, você precisa criar uma instância de ComboboxFormFieldSignature em vez de TextFormFieldSignature.

O exemplo de código a seguir mostra como assinar eletronicamente um documento PDF com assinaturas de campo de formulário de caixa de combinação usando C#.

// criar uma instância de assinatura
Signature signature = new Signature(@"C:\Files\sample.pdf");

// instanciar assinatura de campo de formulário de caixa de combinação
List<string> items = new List<string>() { "Australia", "United Kingdom", "United States" };
ComboboxFormFieldSignature cmbSignature = new ComboboxFormFieldSignature("combo1", items, "Australia");
// instanciar opções com base na assinatura do campo de formulário de texto
FormFieldSignOptions optionsTextCMB = new FormFieldSignOptions(cmbSignature);
optionsTextCMB.HorizontalAlignment = HorizontalAlignment.Center;
optionsTextCMB.VerticalAlignment = VerticalAlignment.Top;
optionsTextCMB.Margin = new Padding(20, 0, 238, 0);
optionsTextCMB.Height = 20;
optionsTextCMB.Width = 200;

// assinar documento para arquivar
signature.Sign(@"C:\Files\ComboboxFormFieldSignature.pdf", optionsTextCMB);

A classe ComboboxFormFieldSignature fornece propriedades de assinatura de campo de formulário de entrada de caixa de combinação para os documentos PDF.

Assinar documentos PDF com assinaturas de campo de formulário de caixa de seleção

Você pode assinar documentos PDF com assinaturas de campo de formulário Checkbox seguindo as mesmas etapas mencionadas anteriormente. No entanto, você precisa criar uma instância de CheckboxFormFieldSignature em vez de TextFormFieldSignature.

O exemplo de código a seguir mostra como assinar eletronicamente um documento PDF com assinaturas de campo de formulário de caixa de seleção.

// criar uma instância de assinatura
Signature signature = new Signature(@"C:\Files\sample.pdf");

List<SignOptions> listOptions = new List<SignOptions>();

// instanciar assinatura de campo de formulário de texto
CheckboxFormFieldSignature chbSignature = new CheckboxFormFieldSignature("chbData1", true);
// instanciar opções com base na assinatura do campo de formulário de texto
FormFieldSignOptions optionsTextCHB = new FormFieldSignOptions(chbSignature);
optionsTextCHB.HorizontalAlignment = HorizontalAlignment.Center;
optionsTextCHB.VerticalAlignment = VerticalAlignment.Top;
optionsTextCHB.Margin = new Padding(20, 0, 270, 0);
optionsTextCHB.Height = 20;
optionsTextCHB.Width = 20;

// assinar documento para arquivar
signature.Sign(@"C:\Files\CheckboxFormFieldSignature.pdf", optionsTextCHB);

A classe CheckboxFormFieldSignature fornece propriedades de assinatura de campo de formulário de entrada de caixa de seleção para os documentos PDF.

Assine documentos PDF com assinaturas de campo de formulário digital

Você pode assinar documentos PDF com assinaturas de campo de formulário digital seguindo as mesmas etapas mencionadas anteriormente. No entanto, você precisa criar uma instância de DigitalFormFieldSignature em vez de TextFormFieldSignature.

O exemplo de código a seguir mostra como assinar eletronicamente um documento PDF com assinaturas de campo de formulário digital.

// criar uma instância de assinatura
Signature signature = new Signature(@"C:\Files\sample.pdf");

// instanciar assinatura de campo de formulário de texto
DigitalFormFieldSignature digSignature = new DigitalFormFieldSignature("dgData1");
// instanciar opções com base na assinatura do campo de formulário de texto
FormFieldSignOptions optionsTextDIG = new FormFieldSignOptions(digSignature);
optionsTextDIG.HorizontalAlignment = HorizontalAlignment.Center;
optionsTextDIG.VerticalAlignment = VerticalAlignment.Top;
optionsTextDIG.Margin = new Padding(20, 0, 300, 0);
optionsTextDIG.Height = 50;
optionsTextDIG.Width = 200;
optionsTextDIG.ForeColor = System.Drawing.Color.Yellow;

// assinar documento para arquivar
signature.Sign(@"C:\Files\DigitalFormFieldSignature.pdf", optionsTextDIG);

A classe DigitalFormFieldSignature fornece propriedades de campo de formulário de entrada de assinatura digital para os documentos PDF. O usuário poderá assinar documentos com suas próprias assinaturas digitais neste campo.

Assine documentos PDF com várias assinaturas de campo de formulário usando C#

Você pode assinar eletronicamente seus documentos PDF com várias assinaturas de campo de formulário programaticamente seguindo as etapas simples mencionadas abaixo:

  • Crie uma instância da classe Signature
  • Forneça o caminho do documento PDF de entrada
  • Defina uma lista de SignOptions
  • Crie os objetos FormFieldSignature
  • Crie instâncias de FormFieldSignOptions para os objetos FormFieldSignature criados
  • Defina as opções de sinal necessárias, como posição (Margem, Altura, Largura, etc.) para cada objeto
  • Adicionar objetos FormFieldSignOptions à lista SignOptions
  • Chame o método Sign() com o SignOptions e o caminho do arquivo de saída

O exemplo de código a seguir mostra como assinar eletronicamente um documento PDF com várias assinaturas de campo de formulário usando C#.

// criar uma instância de assinatura
Signature signature = new Signature(@"C:\Files\sample.pdf");

List<SignOptions> listOptions = new List<SignOptions>();

// instanciar assinatura de campo de formulário de texto
TextFormFieldSignature textSignature = new TextFormFieldSignature("tbData1", "Enter Your Name");
// instanciar opções com base na assinatura do campo de formulário de texto
FormFieldSignOptions optionsTextFF = new FormFieldSignOptions(textSignature)
{
    HorizontalAlignment = HorizontalAlignment.Center,
    VerticalAlignment = VerticalAlignment.Top,
    Margin = new Padding(20, 0, 138, 0),
    Height = 20,
    Width = 200
};

// instanciar assinatura de campo de formulário de botão de opção
List<string> radioOptions = new List<string>() { "Male", "Female" };
RadioButtonFormFieldSignature rbSignature = new RadioButtonFormFieldSignature("radioData1", radioOptions, "Male");
// instanciar opções com base na assinatura do campo de formulário de texto
FormFieldSignOptions optionsTextRB = new FormFieldSignOptions(rbSignature)
{
    HorizontalAlignment = HorizontalAlignment.Center,
    VerticalAlignment = VerticalAlignment.Top,
    Margin = new Padding(20, 0, 170, 0),
    Height = 50,
    Width = 200,
};

// instanciar assinatura de campo de formulário de caixa de combinação
List<string> items = new List<string>() { "Australia", "United Kingdom", "United States" };
ComboboxFormFieldSignature cmbSignature = new ComboboxFormFieldSignature("combo1", items, "Australia");
// instanciar opções com base na assinatura do campo de formulário de texto
FormFieldSignOptions optionsTextCMB = new FormFieldSignOptions(cmbSignature)
{
    HorizontalAlignment = HorizontalAlignment.Center,
    VerticalAlignment = VerticalAlignment.Top,
    Margin = new Padding(20, 0, 238, 0),
    Height = 20,
    Width = 200,
};

// instanciar assinatura de campo de formulário de texto
CheckboxFormFieldSignature chbSignature = new CheckboxFormFieldSignature("chbData1", true);
// instanciar opções com base na assinatura do campo de formulário de texto
FormFieldSignOptions optionsTextCHB = new FormFieldSignOptions(chbSignature)
{
    HorizontalAlignment = HorizontalAlignment.Center,
    VerticalAlignment = VerticalAlignment.Top,
    Margin = new Padding(20, 0, 270, 0),
    Height = 20,
    Width = 20,
};


// instanciar assinatura de campo de formulário digital
DigitalFormFieldSignature digSignature = new DigitalFormFieldSignature("dgData1");
// instanciar opções com base na assinatura do campo de formulário de texto
FormFieldSignOptions optionsTextDIG = new FormFieldSignOptions(digSignature)
{
    HorizontalAlignment = HorizontalAlignment.Center,
    VerticalAlignment = VerticalAlignment.Top,
    Margin = new Padding(20, 0, 300, 0),
    Height = 50,
    Width = 200,
};

// adicionar campos de formulário à lista de opções de assinatura
listOptions.Add(optionsTextFF);
listOptions.Add(optionsTextCHB);
listOptions.Add(optionsTextRB);
listOptions.Add(optionsTextCMB);
listOptions.Add(optionsTextDIG);

// assinar documento para arquivar
signature.Sign(@"C:\Files\Signature\sample_output.pdf", listOptions);
Assine documentos PDF com várias assinaturas de campo de formulário usando C#

Assine documentos PDF com várias assinaturas de campo de formulário usando C#

O método Sign() da classe Signature é usado para assinar o documento com uma lista de SignOptions. A classe SignOptions permite definir as opções de assinatura, como aparência, tipos de assinatura, etc.

A classe FormFieldSignOptions fornece as opções de assinatura do Campo de formulário para os documentos PDF. Você pode definir as opções de campo de formulário como HorizontalAlignment, VerticalAlignment, Margin, Height e Width. Você precisa fornecer o objeto definido de uma das classes FormFieldSignature ao criar a instância da classe FormFieldSignOptions.

Obtenha uma licença gratuita

Você pode experimentar a API sem limitações de avaliação solicitando uma licença temporária gratuita.

Conclusão

Neste artigo, você aprendeu como criar um PDF com assinaturas de campo de formulário usando C#. Você também aprendeu como assinar eletronicamente documentos PDF com vários tipos de assinatura de campo de formulário programaticamente. Você pode aprender mais sobre GroupDocs.Signature para .NET API usando a documentação. Em caso de qualquer ambiguidade, não hesite em contactar-nos no fórum.

Veja também