Com o advento dos computadores e da internet, muitas informações são capturadas digitalmente. Diferentes empresas surgiram com soluções para tornar esse processo mais eficiente. Uma dessas soluções são os formulários PDF preenchíveis. Os formulários PDF são uma escolha popular que facilita a captura digital de informações. Formulários PDF podem ser usados para capturar dados de pesquisas ou como formulários de admissão. À luz disso, este artigo ensinará como criar, preencher e editar formulários PDF preenchíveis usando C++.
- API C++ para criar, preencher e editar formulários PDF preenchíveis
- Crie formulários PDF preenchíveis usando C++
- Preencha um formulário existente em um arquivo PDF usando C++
- Modificar o valor de um campo de formulário em um formulário PDF usando C++
- Excluir um campo de formulário de um formulário PDF existente usando C++
API C++ para criar, preencher e editar formulários PDF preenchíveis
Aspose.PDF for C++ é uma biblioteca C++ que permite criar, ler e atualizar documentos PDF. Além disso, a API suporta a criação, preenchimento e edição de formulários PDF preenchíveis. Você pode instalar a API por meio do NuGet ou baixá-la diretamente da seção downloads.
PM> Install-Package Aspose.PDF.Cpp
Crie formulários PDF preenchíveis usando C++
Neste exemplo, criaremos um formulário do zero com duas caixas de texto e um botão de opção. No entanto, uma caixa de texto é de várias linhas e a outra é de uma única linha. A seguir estão as etapas para criar um formulário em um arquivo PDF.
- Crie uma instância da classe Document.
- Adicione uma página em branco ao documento.
- Crie uma instância da classe TextBoxField.
- Defina as propriedades de TextBoxField como FontSize, Color, etc.
- Crie uma instância do segundo TextBoxField e defina suas propriedades.
- Adicione ambas as caixas de texto ao formulário usando o Document->getForm()->Add(System::SharedPtr campo, método int32t pageNumber).
- Crie uma tabela.
- Crie uma instância da classe RadioButtonField.
- Adicione o RadioButton ao formulário usando o Document->getForm()->Add(System::SharedPtr campo, método int32t pageNumber).
- Crie duas instâncias da classe RadioButtonOptionField para representar as opções do botão de opção.
- Defina o OptionName, Width e Height e adicione as opções ao botão de rádio usando o RadioButtonField->Add(System::SharedPtr const & newItem).
- Adicione as opções do botão de rádio às células da tabela usando o Cell->getParagraphs()->Add(System::SharedPtr parágrafo) método.
- Salve o arquivo de saída usando o método Document->Save(System::String outputFileName).
O código de exemplo a seguir mostra como criar um formulário em um arquivo PDF usando C++.
// Crie uma instância da classe Document
auto pdfDocument = MakeObject<Document>();
// Adicionar uma página em branco ao documento
System::SharedPtr<Page> page = pdfDocument->get_Pages()->Add();
System::SharedPtr<Aspose::Pdf::Rectangle> rectangle1 = MakeObject<Aspose::Pdf::Rectangle>(275, 740, 440, 770);
// Criar um TextBoxField
System::SharedPtr<TextBoxField> nameBox = MakeObject<TextBoxField>(pdfDocument, rectangle1);
nameBox->set_PartialName(u"nameBox1");
nameBox->get_DefaultAppearance()->set_FontSize(10);
nameBox->set_Multiline(true);
System::SharedPtr<Border> nameBorder = MakeObject<Border>(nameBox);
nameBorder->set_Width(1);
nameBox->set_Border(nameBorder);
nameBox->get_Characteristics()->set_Border(System::Drawing::Color::get_Black());
nameBox->set_Color(Aspose::Pdf::Color::FromRgb(System::Drawing::Color::get_Red()));
System::SharedPtr<Aspose::Pdf::Rectangle> rectangle2 = MakeObject<Aspose::Pdf::Rectangle>(275, 718, 440, 738);
// Criar um TextBoxField
System::SharedPtr<TextBoxField> mrnBox = MakeObject<TextBoxField>(pdfDocument, rectangle2);
mrnBox->set_PartialName(u"Box1");
mrnBox->get_DefaultAppearance()->set_FontSize(10);
System::SharedPtr<Border> mrnBorder = MakeObject<Border>(mrnBox);
mrnBox->set_Width(165);
mrnBox->set_Border(mrnBorder);
mrnBox->get_Characteristics()->set_Border(System::Drawing::Color::get_Black());
mrnBox->set_Color(Aspose::Pdf::Color::FromRgb(System::Drawing::Color::get_Red()));
// Adicione TextBoxField ao formulário
pdfDocument->get_Form()->Add(nameBox, 1);
pdfDocument->get_Form()->Add(mrnBox, 1);
// Criar uma tabela
System::SharedPtr<Table> table = MakeObject<Table>();
table->set_Left(200);
table->set_Top(300);
table->set_ColumnWidths(u"120");
// Adicione a tabela à página
page->get_Paragraphs()->Add(table);
// Criar linhas e colunas
System::SharedPtr<Row> r1 = table->get_Rows()->Add();
System::SharedPtr<Row> r2 = table->get_Rows()->Add();
System::SharedPtr<Cell> c1 = r1->get_Cells()->Add();
System::SharedPtr<Cell> c2 = r2->get_Cells()->Add();
// Criar um RadioButtonField
System::SharedPtr<RadioButtonField> rf = MakeObject<RadioButtonField>(page);
rf->set_PartialName(u"radio");
// Adicione o RadioButtonField ao formulário
pdfDocument->get_Form()->Add(rf, 1);
// Criar opções de botão de opção
System::SharedPtr<RadioButtonOptionField> opt1 = MakeObject<RadioButtonOptionField>();
System::SharedPtr<RadioButtonOptionField> opt2 = MakeObject<RadioButtonOptionField>();
opt1->set_OptionName(u"Yes");
opt2->set_OptionName(u"No");
opt1->set_Width(15);
opt1->set_Height(15);
opt2->set_Width(15);
opt2->set_Height(15);
// Adicione as opções ao RadioButtonField
rf->Add(opt1);
rf->Add(opt2);
System::SharedPtr<Border> opt1Border = MakeObject<Border>(opt1);
opt1->set_Border(opt1Border);
opt1->get_Border()->set_Width(1);
opt1->get_Border()->set_Style(BorderStyle::Solid);
opt1->get_Characteristics()->set_Border(System::Drawing::Color::get_Black());
opt1->get_DefaultAppearance()->set_TextColor(System::Drawing::Color::get_Red());
System::SharedPtr<TextFragment> opt1Fragment = MakeObject<TextFragment>(u"Yes");
opt1->set_Caption(opt1Fragment);
System::SharedPtr<Border> opt2Border = MakeObject<Border>(opt2);
opt2->set_Border(opt2Border);
opt2->get_Border()->set_Width(1);
opt2->get_Border()->set_Style(BorderStyle::Solid);
opt2->get_Characteristics()->set_Border(System::Drawing::Color::get_Black());
opt2->get_DefaultAppearance()->set_TextColor(System::Drawing::Color::get_Red());
System::SharedPtr<TextFragment> opt2Fragment = MakeObject<TextFragment>(u"No");
opt2->set_Caption(opt2Fragment);
// Adicione as opções às células da tabela
c1->get_Paragraphs()->Add(opt1);
c2->get_Paragraphs()->Add(opt2);
// Salve o arquivo de saída
pdfDocument->Save(u"OutputDirectory\\Fillable_PDF_Form_Out.pdf");
Preencha um formulário existente em um arquivo PDF usando C++
Neste exemplo, usaremos o arquivo gerado no exemplo anterior. Vamos carregar o arquivo usando a classe Document e preencher seus campos. A seguir estão as etapas para preencher os campos de um formulário PDF existente.
- Carregue o arquivo PDF usando a classe Document.
- Recupere os TextBoxFields usando o método Document->getForm()->idxget(System::String name).
- Defina os valores de ambos os TextBoxFields usando o método TextBoxField->setValue(System::String value).
- Recupere o RadioButtonField usando o método Document->getForm()->idxget(System::String name).
- Defina o valor do RadioButtonField usando o método RadioButtonField->setSelected(int32t value).
- Salve o arquivo de saída usando o método Document->Save(System::String outputFileName).
O código de exemplo a seguir mostra como preencher um formulário existente em um arquivo PDF usando C++.
// Carregue o arquivo PDF
auto pdfDocument = MakeObject<Document>(u"SourceDirectory\\Fillable_PDF_Form.pdf");
// Recuperar os campos da caixa de texto
System::SharedPtr<TextBoxField> textBoxField1 = System::DynamicCast<TextBoxField>(pdfDocument->get_Form()->idx_get(u"nameBox1"));
System::SharedPtr<TextBoxField> textBoxField2 = System::DynamicCast<TextBoxField>(pdfDocument->get_Form()->idx_get(u"Box1"));
// Defina o valor dos campos da caixa de texto
textBoxField1->set_Value(u"A quick brown fox jumped over the lazy dog.");
textBoxField2->set_Value(u"A quick brown fox jumped over the lazy dog.");
// Recuperar o campo do botão de opção
System::SharedPtr<RadioButtonField> radioField = System::DynamicCast<RadioButtonField>(pdfDocument->get_Form()->idx_get(u"radio"));
// Defina o valor do campo do botão de opção
radioField->set_Selected(1);
// Salve o arquivo de saída
pdfDocument->Save(u"OutputDirectory\\Fill_PDF_Form_Field_Out.pdf");
Modificar o valor de um campo de formulário em um formulário PDF usando C++
Com Aspose.PDF para C++, também podemos modificar o valor de um campo previamente preenchido. Neste exemplo, usaremos o arquivo gerado no exemplo anterior e modificaremos o valor do primeiro TextBoxField. Para conseguir isso, siga os passos abaixo.
- Carregue o arquivo PDF usando a classe Document.
- Recupere o TextBoxField usando o método Document->getForm()->idxget(System::String name).
- Atualize o valor do TextBoxField usando o método TextBoxField->setValue(System::String value).
- Salve o arquivo de saída usando o método Document->Save(System::String outputFileName).
O código de exemplo a seguir mostra como modificar o valor de um campo em um formulário PDF usando C++.
// Carregue o arquivo PDF
auto pdfDocument = MakeObject<Document>(u"SourceDirectory\\Fill_PDF_Form_Field.pdf");
// Recupere o TextBoxField
System::SharedPtr<TextBoxField> textBoxField = System::DynamicCast<TextBoxField>(pdfDocument->get_Form()->idx_get(u"nameBox1"));
// Atualizar o valor do TextBoxField
textBoxField->set_Value(u"Changed Value");
// Marcar o TextBoxField como somente leitura
textBoxField->set_ReadOnly(true);
// Salve o arquivo de saída
pdfDocument->Save(u"OutputDirectory\\Modify_Form_Field_out.pdf");
Excluir um campo de formulário de um formulário PDF existente usando C++
A API também permite excluir campos de formulários de formulários PDF existentes. A seguir estão as etapas para excluir um campo de formulário de um formulário PDF.
- Carregue o arquivo PDF usando a classe Document.
- Exclua o campo usando o método Document->getForm()->Delete(System::String fieldName).
- Salve o arquivo de saída usando o método Document->Save(System::String outputFileName).
O código de exemplo a seguir mostra como excluir um campo de formulário de um formulário PDF existente usando C++.
// Carregue o arquivo PDF
auto pdfDocument = MakeObject<Document>(u"SourceDirectory\\Fill_PDF_Form_Field.pdf");
// Excluir o campo
pdfDocument->get_Form()->Delete(u"nameBox1");
// Salve o arquivo de saída
pdfDocument->Save(u"OutputDirectory\\Delete_Form_Field_out.pdf");
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 formulários em arquivos PDF usando C++. Além disso, você aprendeu a preencher e modificar campos existentes em formulários PDF. Você também viu como remover um campo de formulário de um formulário PDF usando Aspose.PDF para C++ API. A API fornece vários recursos adicionais para trabalhar com arquivos PDF que você pode explorar em detalhes consultando a documentação oficial. Se você tiver dúvidas sobre qualquer aspecto da API, sinta-se à vontade para entrar em contato conosco em nosso fórum de suporte gratuito.