Erstellen, füllen oder bearbeiten Sie ausfüllbare PDF-Formulare mit C++

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

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.

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");
Bild der vom Beispielcode generierten PDF Datei

Bild der vom Beispielcode generierten PDF Datei

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.

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");
Bild der vom Beispielcode generierten PDF Datei

Bild der vom Beispielcode generierten PDF Datei

Ä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.

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");
Bild der vom Beispielcode generierten PDF Datei

Bild der vom Beispielcode generierten PDF Datei

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.

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");
Bild der vom Beispielcode generierten PDF Datei

Bild der vom Beispielcode generierten PDF Datei

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.

Siehe auch