Preencha o formulário PDF

Os formulários PDF são frequentemente usados para coletar dados e informações. Por exemplo, os Questionários geralmente são projetados para coletar respostas para fins de pesquisa. Você pode preencher, editar, modificar formulários PDF em C# programaticamente à medida que interagimos com diferentes formulários PDF preenchíveis no mundo digital de hoje. Considerando o enorme escopo e importância dos formulários PDF, a API Aspose.PDF for .NET suporta muitos recursos para trabalhar com formulários PDF. Vamos explorar os seguintes casos de uso usando a linguagem C# neste artigo:

Criar formulários PDF preenchíveis usando C# programaticamente

Você pode criar um formulário PDF preenchível a partir do zero usando Aspose.PDF para .NET API. Aqui vamos considerar o exemplo básico de adicionar duas instâncias TextBoxField e RadioButton. No entanto, um dos TextBoxField é de linha única, enquanto o outro é de várias linhas. Abaixo estão as etapas para criar um formulário em documento PDF:

  1. Crie uma instância da classe Document
  2. Adicionar uma página em branco no documento PDF
  3. Adicionar campo TextBox no formulário
  4. Defina diferentes propriedades dos campos, incluindo Fonte, Borda, etc.
  5. Adicione Botão de Rádio no formulário
  6. Salvar documento PDF

O trecho de código a seguir mostra como criar um formulário em PDF usando C#:

Document pdfdoc = new Document();
Page page = pdfdoc.Pages.Add();
TextBoxField nameBox = new TextBoxField(pdfdoc, new Aspose.Pdf.Rectangle(275, 740, 440, 770));
nameBox.PartialName = "nameBox1";
nameBox.DefaultAppearance.FontSize = 10;
nameBox.Multiline = true;
Border nameBorder = new Border(nameBox);
nameBorder.Width = 1;
nameBox.Border = nameBorder;
nameBox.Characteristics.Border = System.Drawing.Color.Black;
nameBox.Color = Aspose.Pdf.Color.FromRgb(System.Drawing.Color.Red);
TextBoxField mrnBox = new TextBoxField(pdfdoc, new Aspose.Pdf.Rectangle(275, 718, 440, 738));
mrnBox.PartialName = "Box1";
mrnBox.DefaultAppearance.FontSize = 10;
Border mrnBorder = new Border(mrnBox);
mrnBorder.Width = 1;
mrnBox.Border = mrnBorder;
mrnBox.Characteristics.Border = System.Drawing.Color.Black;
mrnBox.Color = Aspose.Pdf.Color.FromRgb(System.Drawing.Color.Red);
// Adicionar campos de formulário à primeira página do documento PDF            
pdfdoc.Form.Add(nameBox, 1);
pdfdoc.Form.Add(mrnBox, 1);

//Adicione Radiobuttons em coordenadas de posição específicas em PDF
Aspose.Pdf.Table table = new Aspose.Pdf.Table();
//Definir posição aqui
table.Left = 200;
table.Top = 300;
table.ColumnWidths = "120";
page.Paragraphs.Add(table);
Aspose.Pdf.Row r1 = table.Rows.Add();
Aspose.Pdf.Row r2 = table.Rows.Add();
Aspose.Pdf.Cell c1 = r1.Cells.Add();
Aspose.Pdf.Cell c2 = r2.Cells.Add();
RadioButtonField rf = new RadioButtonField(page);
rf.PartialName = "radio";
pdfdoc.Form.Add(rf, 1);
RadioButtonOptionField opt1 = new RadioButtonOptionField();
RadioButtonOptionField opt2 = new RadioButtonOptionField();
opt1.OptionName = "Yes";
opt2.OptionName = "No";
opt1.Width = 15;
opt1.Height = 15;
opt2.Width = 15;
opt2.Height = 15;
rf.Add(opt1);
rf.Add(opt2);
opt1.Border = new Border(opt1);
opt1.Border.Width = 1;
opt1.Border.Style = BorderStyle.Solid;
opt1.Characteristics.Border = System.Drawing.Color.Black;
opt1.DefaultAppearance.TextColor = System.Drawing.Color.Red;
opt1.Caption = new TextFragment("Yes");
opt2.Border = new Border(opt1);
opt2.Border.Width = 1;
opt2.Border.Style = BorderStyle.Solid;
opt2.Characteristics.Border = System.Drawing.Color.Black;
opt2.DefaultAppearance.TextColor = System.Drawing.Color.Red;
opt2.Caption = new TextFragment("No");
c1.Paragraphs.Add(opt1);
c2.Paragraphs.Add(opt2);
pdfdoc.Save(dataDir + "Fillable_PDF_Form.pdf");

A captura de tela abaixo mostra o documento PDF de saída contendo campos de formulário conforme especificado no trecho de código acima:

Formulário PDF

Preencha, modifique ou exclua campos de formulário em PDF existente usando C#

Como exploramos a criação de um formulário em um documento PDF usando C#, o Aspose.PDF para .NET API também suporta o trabalho com formulários PDF existentes. Vamos discutir os seguintes recursos da API.

i) Preencha um campo de formulário em um arquivo PDF existente usando C# programaticamente

Para o preenchimento dos formulários PDF, continuaremos com o documento PDF que foi criado no exemplo acima. Abaixo estão as etapas para preencher campos em um documento PDF existente:

  1. Carregar documento PDF de origem
  2. Obter Textbox Campos e valores de preenchimento
  3. Obtenha Campo de botão de rádio e selecione uma opção do grupo
  4. Salvar formulário PDF preenchido

O trecho de código a seguir segue estas etapas e explica como preencher campos em um documento PDF usando C#:

// Abrir documento
Document pdfDocument = new Document(dataDir + "Fillable_PDF_Form.pdf");

// Obtenha os campos
TextBoxField textBoxField1 = pdfDocument.Form["nameBox1"] as TextBoxField;
TextBoxField textBoxField2 = pdfDocument.Form["Box1"] as TextBoxField;
// Preencha os valores dos campos do formulário
textBoxField1.Value = "A quick brown fox jumped over a lazy dog.";
textBoxField2.Value = "A quick brown fox jumped over a lazy dog.";

// Obter campo de botão de opção
RadioButtonField radioField = pdfDocument.Form["radio"] as RadioButtonField;
// Especifique o índice do botão de opção do grupo
radioField.Selected = 1;

dataDir = dataDir + "Fill_PDF_Form_Field.pdf";
// Salvar documento atualizado
pdfDocument.Save(dataDir);

A captura de tela abaixo mostra os campos de formulário preenchidos do formulário PDF usando C#:

PDF preenchível

ii) Modificar um campo de formulário em documento PDF usando C#

Às vezes, pode ser necessário alterar o valor em qualquer campo de um formulário PDF. Alterar um valor em um campo de formulário é um caso de uso básico que pode ser alcançado com as etapas abaixo:

  1. Carregar o formulário PDF
  2. Obter um campo específico usando seu nome
  3. Modificar valor do campo
  4. Salve o documento PDF atualizado

O trecho de código a seguir mostra como alterar um valor em um campo de formulário de um documento PDF:

// Abrir documento
Document pdfDocument = new Document(dataDir + "Fill_PDF_Form_Field.pdf");
// Obter um campo
TextBoxField textBoxField = pdfDocument.Form["nameBox1"] as TextBoxField;
// Modificar valor do campo
textBoxField.Value = "Changed Value";
textBoxField.ReadOnly = true;
dataDir = dataDir + "ModifyFormField.pdf";
// Salvar documento atualizado
pdfDocument.Save(dataDir);

Vale ressaltar aqui que você pode não apenas alterar o valor do formulário, mas outras propriedades também podem ser atualizadas. Por exemplo, o campo foi marcado como Somente leitura no trecho de código acima.

iii) Excluir um campo de formulário em um arquivo PDF existente usando C#

Já aprendemos sobre como adicionar e preencher campos de formulário PDF. Agora vamos explorar a remoção de um campo de formulário. Você precisa seguir os passos abaixo:

  1. Carregar o documento PDF
  2. Chame o método Delete com o nome do campo do formulário
  3. Salvar documento PDF

O trecho de código a seguir mostra como excluir o campo de formulário do arquivo PDF usando C#:

// Abrir documento
Document pdfDocument = new Document(dataDir + "Fill_PDF_Form_Field.pdf");
// Excluir um campo específico por nome
pdfDocument.Form.Delete("nameBox1");
dataDir = dataDir + "Delete_Form_Field.pdf";
// Salvar documento modificado
pdfDocument.Save(dataDir);

Preservar direitos estendidos de formulários PDF usando C#

Um formulário PDF pode ter direitos estendidos, também chamados de recursos estendidos, que você deseja preservar durante a manipulação do formulário. Você deve salvá-lo de forma incremental enquanto segue as etapas abaixo:

  • Carregar o documento PDF no Stream
  • Trabalhar com formulário
  • Salve o arquivo sem nenhum parâmetro

O trecho de código C# a seguir explica como preservar os direitos estendidos do formulário PDF:

// Leia o formulário PDF de origem com o FileAccess de leitura e gravação.
// Precisamos da permissão ReadWrite porque após a modificação,
// Precisamos salvar o conteúdo atualizado no mesmo documento/arquivo.
FileStream fs = new FileStream(dataDir + "Fill_PDF_Form_Field.pdf", FileMode.Open, FileAccess.ReadWrite);
// Instanciar instância de documento
Aspose.Pdf.Document pdfDocument = new Aspose.Pdf.Document(fs);
// Obter valores de todos os campos
foreach (Field formField in pdfDocument.Form)
{
    // Se o nome completo do campo contiver A1, execute a operação
    if (formField.FullName.Contains("nameBox1"))
    {
        // Campo de formulário de conversão como TextBox
        TextBoxField textBoxField = formField as TextBoxField;
        // Modificar valor do campo
        textBoxField.Value = "Preserve Extended Features";
    }
}
// Salve o documento atualizado em salvar FileStream
pdfDocument.Save();
// Feche o objeto File Stream
fs.Close();

Use JavaScript no formulário PDF usando C#

Você pode usar JavaScript em campos de formulário PDF com Aspose.PDF para .NET API. Vamos seguir os passos abaixo para atingir este requisito:

  1. Iniciar uma instância da classe Document
  2. Adicione um TextBoxField na primeira página em coordenadas de página específicas
  3. Configurar JavaScript
  4. Especificar ação do documento
  5. Salvar documento PDF

O trecho de código a seguir mostra como adicionar JavaScript em formato PDF usando C#:

Aspose.Pdf.Document pdfdoc = new Aspose.Pdf.Document();
pdfdoc.Pages.Add();
Aspose.Pdf.Forms.TextBoxField textBoxField = new Aspose.Pdf.Forms.TextBoxField(pdfdoc.Pages[1], new Aspose.Pdf.Rectangle(85, 750, 215, 770));
textBoxField.PartialName = "textbox1";
textBoxField.Value = "Text Box";
//TextBoxField.Border = new Border();
Border border = new Border(textBoxField);
border.Width = 2;
border.Dash = new Dash(1, 1);
textBoxField.Border = border;
textBoxField.DefaultAppearance.FontSize = 10;
textBoxField.Color = Aspose.Pdf.Color.FromRgb(System.Drawing.Color.Green);
// Adicionar campo ao documento
pdfdoc.Form.Add(textBoxField, 1);
string JS = @"var w = this.getField('" + textBoxField.PartialName + "'); var today = new Date(); w.value = today.toLocaleString();";
pdfdoc.OpenAction = new JavascriptAction(JS);
pdfdoc.Save(dataDir + "JS_Form.pdf");

O JavaScript obtém a data e hora atuais do sistema quando o documento PDF é aberto e esse valor é preenchido em uma caixa de texto.

Conclusão

Neste artigo, aprendemos diferentes aspectos do trabalho com formulários em documentos PDF. Criar, preencher ou editar formulários PDF é simples com o Aspose.PDF for .NET API. A API oferece muitos recursos interessantes para trabalhar com arquivos diferentes. Deixe-nos saber seus comentários ou comentários por meio do Fórum de suporte gratuito.

Veja também