S nástupem počítačů a internetu je mnoho informací zachycováno digitálně. Různé společnosti přicházely s řešeními, jak tento proces zefektivnit. Jedním z takových řešení jsou vyplnitelné formuláře PDF. Formuláře PDF jsou oblíbenou volbou, která usnadňuje digitální zachycení informací. Formuláře PDF lze použít pro zachycení údajů z průzkumu nebo jako přijímací formuláře. Ve světle toho vás tento článek naučí, jak vytvářet, vyplňovat a upravovat vyplnitelné formuláře PDF pomocí C++.
- C++ API pro vytváření, vyplňování a úpravy vyplnitelných formulářů PDF
- Vytvářejte vyplnitelné formuláře PDF pomocí C++
- Vyplňte existující formulář v souboru PDF pomocí C++
- Upravte hodnotu pole formuláře ve formuláři PDF pomocí C++
- Odstraňte pole formuláře ze stávajícího formuláře PDF pomocí C++
C++ API pro vytváření, vyplňování a úpravy vyplnitelných formulářů PDF
Aspose.PDF for C++ je knihovna C++, která vám umožňuje vytvářet, číst a aktualizovat dokumenty PDF. Kromě toho API podporuje vytváření, vyplňování a úpravy vyplnitelných formulářů PDF. Rozhraní API můžete nainstalovat buď prostřednictvím NuGet, nebo si jej stáhnout přímo ze sekce ke stažení.
PM> Install-Package Aspose.PDF.Cpp
Vytvářejte vyplnitelné formuláře PDF pomocí C++
V tomto příkladu vytvoříme formulář od začátku se dvěma textovými poli a jedním přepínačem. Jedno textové pole je však víceřádkové a druhé jednořádkové. Níže jsou uvedeny kroky k vytvoření formuláře v souboru PDF.
- Vytvořte instanci třídy Document.
- Přidejte do dokumentu prázdnou stránku.
- Vytvořte instanci třídy TextBoxField.
- Nastavte vlastnosti TextBoxField jako FontSize, Color atd.
- Vytvořte instanci druhého TextBoxField a nastavte jeho vlastnosti.
- Přidejte obě textová pole do formuláře pomocí Document->getForm()->Add(System::SharedPtr pole, int32t pageNumber) metoda.
- Vytvořte tabulku.
- Vytvořte instanci třídy RadioButtonField.
- Přidejte RadioButton do formuláře pomocí Document->getForm()->Add(System::SharedPtr pole, int32t pageNumber) metoda.
- Vytvořte dvě instance třídy RadioButtonOptionField, které budou reprezentovat možnosti přepínače.
- Nastavte OptionName, Width a Height a přidejte možnosti do přepínače pomocí RadioButtonField->Add(System::SharedPtr const & newItem) metoda.
- Přidejte možnosti přepínače do buněk tabulky pomocí Cell->getParagraphs()->Add(System::SharedPtr odstavec) metoda.
- Uložte výstupní soubor pomocí metody Document->Save(System::String outputFileName).
Následující ukázkový kód ukazuje, jak vytvořit formulář v souboru PDF pomocí C++.
// Vytvořte instanci třídy Document
auto pdfDocument = MakeObject<Document>();
// Přidejte do dokumentu prázdnou stránku
System::SharedPtr<Page> page = pdfDocument->get_Pages()->Add();
System::SharedPtr<Aspose::Pdf::Rectangle> rectangle1 = MakeObject<Aspose::Pdf::Rectangle>(275, 740, 440, 770);
// Vytvořte pole 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);
// Vytvořte pole 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()));
// Přidejte TextBoxField do formuláře
pdfDocument->get_Form()->Add(nameBox, 1);
pdfDocument->get_Form()->Add(mrnBox, 1);
// Vytvořte tabulku
System::SharedPtr<Table> table = MakeObject<Table>();
table->set_Left(200);
table->set_Top(300);
table->set_ColumnWidths(u"120");
// Přidejte tabulku na stránku
page->get_Paragraphs()->Add(table);
// Vytvářejte řádky a sloupce
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();
// Vytvořte RadioButtonField
System::SharedPtr<RadioButtonField> rf = MakeObject<RadioButtonField>(page);
rf->set_PartialName(u"radio");
// Přidejte do formuláře RadioButtonField
pdfDocument->get_Form()->Add(rf, 1);
// Vytvořit možnosti přepínače
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);
// Přidejte možnosti do pole 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);
// Přidejte možnosti do buněk tabulky
c1->get_Paragraphs()->Add(opt1);
c2->get_Paragraphs()->Add(opt2);
// Uložte výstupní soubor
pdfDocument->Save(u"OutputDirectory\\Fillable_PDF_Form_Out.pdf");
Vyplňte existující formulář v souboru PDF pomocí C++
V tomto příkladu použijeme soubor vygenerovaný v předchozím příkladu. Soubor načteme pomocí třídy Document a vyplníme jeho pole. Následují kroky k vyplnění polí existujícího formuláře PDF.
- Načtěte soubor PDF pomocí třídy Document.
- Načtěte pole TextBoxFields pomocí metody Document->getForm()->idxget(System::String name).
- Nastavte hodnoty obou polí TextBoxField pomocí metody TextBoxField->setValue(System::String value).
- Načtěte RadioButtonField pomocí metody Document->getForm()->idxget(System::String name).
- Nastavte hodnotu RadioButtonField pomocí metody RadioButtonField->setSelected(int32t value).
- Uložte výstupní soubor pomocí metody Document->Save(System::String outputFileName).
Následující ukázkový kód ukazuje, jak vyplnit existující formulář v souboru PDF pomocí C++.
// Načtěte soubor PDF
auto pdfDocument = MakeObject<Document>(u"SourceDirectory\\Fillable_PDF_Form.pdf");
// Načtěte pole textového pole
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"));
// Nastavte hodnotu polí textového pole
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.");
// Načtěte pole přepínače
System::SharedPtr<RadioButtonField> radioField = System::DynamicCast<RadioButtonField>(pdfDocument->get_Form()->idx_get(u"radio"));
// Nastavte hodnotu pole přepínače
radioField->set_Selected(1);
// Uložte výstupní soubor
pdfDocument->Save(u"OutputDirectory\\Fill_PDF_Form_Field_Out.pdf");
Upravte hodnotu pole formuláře ve formuláři PDF pomocí C++
S Aspose.PDF for C++ můžeme také upravit hodnotu dříve vyplněného pole. V tomto příkladu použijeme soubor vygenerovaný v předchozím příkladu a upravíme hodnotu prvního TextBoxField. Chcete-li toho dosáhnout, postupujte podle níže uvedených kroků.
- Načtěte soubor PDF pomocí třídy Document.
- Načtěte TextBoxField pomocí metody Document->getForm()->idxget(System::String name).
- Aktualizujte hodnotu TextBoxField pomocí metody TextBoxField->setValue(System::String value).
- Uložte výstupní soubor pomocí metody Document->Save(System::String outputFileName).
Následující ukázkový kód ukazuje, jak upravit hodnotu pole ve formuláři PDF pomocí C++.
// Načtěte soubor PDF
auto pdfDocument = MakeObject<Document>(u"SourceDirectory\\Fill_PDF_Form_Field.pdf");
// Načtěte pole TextBoxField
System::SharedPtr<TextBoxField> textBoxField = System::DynamicCast<TextBoxField>(pdfDocument->get_Form()->idx_get(u"nameBox1"));
// Aktualizujte hodnotu TextBoxField
textBoxField->set_Value(u"Changed Value");
// Označte pole TextBoxField jako pouze pro čtení
textBoxField->set_ReadOnly(true);
// Uložte výstupní soubor
pdfDocument->Save(u"OutputDirectory\\Modify_Form_Field_out.pdf");
Odstraňte pole formuláře ze stávajícího formuláře PDF pomocí C++
API také umožňuje odstranit pole formuláře z existujících formulářů PDF. Níže jsou uvedeny kroky k odstranění pole formuláře z formuláře PDF.
- Načtěte soubor PDF pomocí třídy Document.
- Odstraňte pole pomocí metody Document->getForm()->Delete(System::String fieldName).
- Uložte výstupní soubor pomocí metody Document->Save(System::String outputFileName).
Následující ukázkový kód ukazuje, jak odstranit pole formuláře z existujícího formuláře PDF pomocí C++.
// Načtěte soubor PDF
auto pdfDocument = MakeObject<Document>(u"SourceDirectory\\Fill_PDF_Form_Field.pdf");
// Smažte pole
pdfDocument->get_Form()->Delete(u"nameBox1");
// Uložte výstupní soubor
pdfDocument->Save(u"OutputDirectory\\Delete_Form_Field_out.pdf");
Získejte bezplatnou licenci
Rozhraní API můžete vyzkoušet bez omezení hodnocení, když požádáte o bezplatnou dočasnou licenci.
Závěr
V tomto článku jste se naučili vytvářet formuláře v souborech PDF pomocí C++. Navíc jste se naučili, jak vyplnit a upravit existující pole ve formulářích PDF. Také jste viděli, jak odstranit pole formuláře z formuláře PDF pomocí Aspose.PDF for C++ API. Rozhraní API poskytuje řadu dalších funkcí pro práci se soubory PDF, které můžete podrobně prozkoumat v oficiální dokumentaci. Máte-li dotazy týkající se jakéhokoli aspektu rozhraní API, neváhejte nás kontaktovat na našem bezplatném fóru podpory.