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
- Preencha um campo de formulário em um arquivo PDF existente usando C# programaticamente
- Modificar um campo de formulário no documento PDF usando C#
- Excluir um campo de formulário em um arquivo PDF existente usando C#
- Preservar direitos estendidos de formulários PDF usando C#
- Use JavaScript no formulário PDF usando C#
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:
- Crie uma instância da classe Document
- Adicionar uma página em branco no documento PDF
- Adicionar campo TextBox no formulário
- Defina diferentes propriedades dos campos, incluindo Fonte, Borda, etc.
- Adicione Botão de Rádio no formulário
- 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:
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:
- Carregar documento PDF de origem
- Obter Textbox Campos e valores de preenchimento
- Obtenha Campo de botão de rádio e selecione uma opção do grupo
- 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#:
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:
- Carregar o formulário PDF
- Obter um campo específico usando seu nome
- Modificar valor do campo
- 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:
- Carregar o documento PDF
- Chame o método Delete com o nome do campo do formulário
- 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:
- Iniciar uma instância da classe Document
- Adicione um TextBoxField na primeira página em coordenadas de página específicas
- Configurar JavaScript
- Especificar ação do documento
- 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.