Mit dem Aufkommen von Computern und dem Internet werden viele Informationen digital erfasst. Verschiedene Unternehmen haben Lösungen entwickelt, um diesen Prozess effizienter zu gestalten. Eine solche Lösung sind die ausfüllbaren PDF-Formulare. PDF-Formulare sind eine beliebte Wahl, die es einfach macht, Informationen digital zu erfassen. PDF-Formulare können zur Erfassung von Umfragedaten oder als Zulassungsformulare verwendet werden. Vor diesem Hintergrund lernen Sie in diesem Artikel, wie Sie ausfüllbare PDF-Formulare mit C++ erstellen, ausfüllen und bearbeiten.
- C++-API zum Erstellen, Ausfüllen und Bearbeiten ausfüllbarer PDF-Formulare
- Erstellen Sie ausfüllbare PDF-Formulare mit C++
- Füllen Sie ein vorhandenes Formular in einer PDF Datei mit C++ aus
- Ändern Sie den Wert eines Formularfelds in einem PDF-Formular mit C++
- Löschen Sie ein Formularfeld aus einem vorhandenen PDF-Formular mit C++
C++-API zum Erstellen, Ausfüllen und Bearbeiten ausfüllbarer PDF-Formulare
Aspose.PDF for C++ ist eine C++ Bibliothek, mit der Sie PDF Dokumente erstellen, lesen und aktualisieren können. Darüber hinaus unterstützt die API das Erstellen, Ausfüllen und Bearbeiten ausfüllbarer PDF-Formulare. Sie können die API entweder über NuGet installieren oder direkt aus dem Abschnitt downloads herunterladen.
PM> Install-Package Aspose.PDF.Cpp
Erstellen Sie ausfüllbare PDF-Formulare mit C++
In diesem Beispiel erstellen wir ein neues Formular mit zwei Textfeldern und einem Optionsfeld. Ein Textfeld ist jedoch mehrzeilig und das andere einzeilig. Im Folgenden sind die Schritte zum Erstellen eines Formulars in einer PDF Datei aufgeführt.
- Erstellen Sie eine Instanz der Klasse Document.
- Fügen Sie dem Dokument eine leere Seite hinzu.
- Erstellen Sie eine Instanz der Klasse TextBoxField.
- Legen Sie die Eigenschaften von TextBoxField wie FontSize, Color usw. fest.
- Erstellen Sie eine Instanz des zweiten TextBoxField und legen Sie seine Eigenschaften fest.
- Fügen Sie dem Formular beide Textfelder hinzu, indem Sie Document->getForm()->Add(System::SharedPtr field, int32t pageNumber) methode.
- Erstellen Sie eine Tabelle.
- Erstellen Sie eine Instanz der Klasse RadioButtonField.
- Fügen Sie den RadioButton mit Document->getForm()->Add(System::SharedPtr field, int32t pageNumber) methode.
- Erstellen Sie zwei Instanzen der Klasse RadioButtonOptionField, um die Optionen des Optionsfelds darzustellen.
- Legen Sie OptionName, Width und Height fest und fügen Sie die Optionen zum Optionsfeld hinzu, indem Sie RadioButtonField->Add(System::SharedPtr const & newItem) Methode.
- Fügen Sie die Optionen des Optionsfelds zu den Zellen der Tabelle hinzu, indem Sie Cell->getParagraphs()->Add(System::SharedPtr Absatz) Methode.
- Speichern Sie die Ausgabedatei mit der methode Document->Save(System::String outputFileName).
Der folgende Beispielcode zeigt, wie Sie mit C++ ein Formular in einer PDF Datei erstellen.
// Erstellen Sie eine Instanz der Document Klasse
auto pdfDocument = MakeObject<Document>();
// Fügen Sie dem Dokument eine leere Seite hinzu
System::SharedPtr<Page> page = pdfDocument->get_Pages()->Add();
System::SharedPtr<Aspose::Pdf::Rectangle> rectangle1 = MakeObject<Aspose::Pdf::Rectangle>(275, 740, 440, 770);
// Erstellen Sie ein 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);
// Erstellen Sie ein 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()));
// Fügen Sie dem Formular TextBoxField hinzu
pdfDocument->get_Form()->Add(nameBox, 1);
pdfDocument->get_Form()->Add(mrnBox, 1);
// Erstellen Sie eine Tabelle
System::SharedPtr<Table> table = MakeObject<Table>();
table->set_Left(200);
table->set_Top(300);
table->set_ColumnWidths(u"120");
// Fügen Sie die Tabelle der Seite hinzu
page->get_Paragraphs()->Add(table);
// Erstellen Sie Zeilen und Spalten
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();
// Erstellen Sie ein RadioButtonField
System::SharedPtr<RadioButtonField> rf = MakeObject<RadioButtonField>(page);
rf->set_PartialName(u"radio");
// Fügen Sie dem Formular das RadioButtonField hinzu
pdfDocument->get_Form()->Add(rf, 1);
// Optionsfeldoptionen erstellen
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);
// Fügen Sie die Optionen zum RadioButtonField hinzu
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);
// Fügen Sie die Optionen zu den Zellen der Tabelle hinzu
c1->get_Paragraphs()->Add(opt1);
c2->get_Paragraphs()->Add(opt2);
// Speichern Sie die Ausgabedatei
pdfDocument->Save(u"OutputDirectory\\Fillable_PDF_Form_Out.pdf");
Füllen Sie ein vorhandenes Formular in einer PDF Datei mit C++ aus
In diesem Beispiel verwenden wir die im vorherigen Beispiel generierte Datei. Wir laden die Datei mit der Klasse Document und füllen ihre Felder aus. Im Folgenden werden die Schritte zum Ausfüllen der Felder eines vorhandenen PDF-Formulars beschrieben.
- Laden Sie die PDF Datei mit der Klasse Document.
- Rufen Sie die TextBoxFields mit der methode Document->getForm()->idxget(System::String name) ab.
- Legen Sie die Werte beider TextBoxFields mit der methode TextBoxField->setValue(System::String value) fest.
- Rufen Sie das RadioButtonField mithilfe der Methode Document->getForm()->idxget(System::String name) ab.
- Legen Sie den Wert von RadioButtonField mit der methode RadioButtonField->setSelected(int32t value) fest.
- Speichern Sie die Ausgabedatei mit der methode Document->Save(System::String outputFileName).
Der folgende Beispielcode zeigt, wie ein vorhandenes Formular in einer PDF Datei mit C++ ausgefüllt wird.
// Laden Sie die PDF Datei
auto pdfDocument = MakeObject<Document>(u"SourceDirectory\\Fillable_PDF_Form.pdf");
// Rufen Sie die Textfeldfelder ab
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"));
// Legen Sie den Wert der Textfeldfelder fest
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.");
// Rufen Sie das Optionsfeldfeld ab
System::SharedPtr<RadioButtonField> radioField = System::DynamicCast<RadioButtonField>(pdfDocument->get_Form()->idx_get(u"radio"));
// Legen Sie den Wert des Optionsfelds fest
radioField->set_Selected(1);
// Speichern Sie die Ausgabedatei
pdfDocument->Save(u"OutputDirectory\\Fill_PDF_Form_Field_Out.pdf");
Ändern Sie den Wert eines Formularfelds in einem PDF-Formular mit C++
Mit Aspose.PDF for C++ können wir auch den Wert eines zuvor gefüllten Feldes ändern. In diesem Beispiel verwenden wir die im vorherigen Beispiel generierte Datei und ändern den Wert des ersten TextBoxField. Um dies zu erreichen, folgen Sie bitte den unten angegebenen Schritten.
- Laden Sie die PDF Datei mit der Klasse Document.
- Rufen Sie das TextBoxField mit der methode Document->getForm()->idxget(System::String name) ab.
- Aktualisieren Sie den Wert von TextBoxField mithilfe der Methode TextBoxField->setValue(System::String value).
- Speichern Sie die Ausgabedatei mit der methode Document->Save(System::String outputFileName).
Der folgende Beispielcode zeigt, wie der Wert eines Felds in einem PDF-Formular mit C++ geändert wird.
// Laden Sie die PDF Datei
auto pdfDocument = MakeObject<Document>(u"SourceDirectory\\Fill_PDF_Form_Field.pdf");
// Rufen Sie das TextBoxField ab
System::SharedPtr<TextBoxField> textBoxField = System::DynamicCast<TextBoxField>(pdfDocument->get_Form()->idx_get(u"nameBox1"));
// Aktualisieren Sie den Wert von TextBoxField
textBoxField->set_Value(u"Changed Value");
// Markieren Sie das TextBoxField als schreibgeschützt
textBoxField->set_ReadOnly(true);
// Speichern Sie die Ausgabedatei
pdfDocument->Save(u"OutputDirectory\\Modify_Form_Field_out.pdf");
Löschen Sie ein Formularfeld aus einem vorhandenen PDF-Formular mit C++
Die API ermöglicht es Ihnen auch, Formularfelder aus bestehenden PDF-Formularen zu löschen. Im Folgenden finden Sie die Schritte zum Löschen eines Formularfelds aus einem PDF-Formular.
- Laden Sie die PDF Datei mit der Klasse Document.
- Löschen Sie das Feld mit der methode Document->getForm()->Delete(System::String fieldName).
- Speichern Sie die Ausgabedatei mit der methode Document->Save(System::String outputFileName).
Der folgende Beispielcode zeigt, wie Sie mit C++ ein Formularfeld aus einem vorhandenen PDF-Formular löschen.
// Laden Sie die PDF Datei
auto pdfDocument = MakeObject<Document>(u"SourceDirectory\\Fill_PDF_Form_Field.pdf");
// Löschen Sie das Feld
pdfDocument->get_Form()->Delete(u"nameBox1");
// Speichern Sie die Ausgabedatei
pdfDocument->Save(u"OutputDirectory\\Delete_Form_Field_out.pdf");
Holen Sie sich eine kostenlose Lizenz
Sie können die API ohne Evaluierungseinschränkungen testen, indem Sie eine kostenlose temporäre Lizenz anfordern.
Fazit
In diesem Artikel haben Sie gelernt, wie Sie mit C++ Formulare in PDF Dateien erstellen. Außerdem haben Sie gelernt, wie Sie vorhandene Felder in PDF-Formularen ausfüllen und ändern. Sie haben auch gesehen, wie Sie mit Aspose.PDF für die C++-API ein Formularfeld aus einem PDF-Formular entfernen. Die API bietet eine Reihe zusätzlicher Funktionen für die Arbeit mit PDF Dateien, die Sie im Detail erkunden können, indem Sie die offizielle Dokumentation durchgehen. Wenn Sie Fragen zu einem Aspekt der API haben, können Sie uns gerne in unserem kostenlosen Support-Forum erreichen.