Suchen und Ersetzen von Text in PDF mit C++

PDF ist ein beliebtes Format, das häufig für den Austausch von Dokumenten zwischen Organisationen und Einzelpersonen verwendet wird. Es kann Situationen geben, in denen Sie Text in den PDF Dokumenten suchen und ersetzen müssen, bevor Sie sie freigeben können. Sie können dies manuell tun, aber das würde mehr Zeit in Anspruch nehmen und weniger effizient sein. Die bessere und schnellere Option wäre, dies programmgesteuert zu tun. In diesem Artikel erfahren Sie, wie Sie mit C++ Text in PDF Dateien suchen und ersetzen.

C++-API zum Suchen und Ersetzen von Text in PDF Dateien

Aspose.PDF for C++ ist eine C++ Bibliothek zum Arbeiten mit PDF Dateien. Es bietet eine Reihe von Funktionen, mit denen Sie verschiedene Aspekte Ihrer PDF-Workflows automatisieren können. Eine dieser Funktionen ist das Suchen und Ersetzen von Text in PDF Dateien. Sie können die API entweder über NuGet installieren oder direkt aus dem Abschnitt downloads herunterladen.

PM> Install-Package Aspose.PDF.Cpp

Suchen und Ersetzen von Text in PDF mit C++

Aspose.PDF for C++ stellt die Klasse TextFragmentAbsorber zum Suchen von Text in PDF Dokumenten bereit. Sie initialisieren diese Klasse mit dem Text, den Sie finden möchten, und verwenden sie, um alle passenden Textfragmente abzurufen. Sobald alle Fragmente verfügbar sind, durchlaufen Sie sie und ersetzen den Text. Im Folgenden finden Sie die Schritte zum Suchen und Ersetzen von Text in PDF Dateien mit C++.

Im Folgenden finden Sie den Beispielcode zum Suchen und Ersetzen von Text in der gesamten PDF Datei mit C++.

// PDF Datei laden
auto pdfDocument = MakeObject<Document>(u"SourceDirectory\\Sample 1.pdf");

// Erstellen Sie ein TextAbsorber objekt, um alle Instanzen des eingegebenen Suchausdrucks zu finden
auto textFragmentAbsorber = MakeObject<TextFragmentAbsorber>(u"Document");

// Akzeptieren Sie den Absorber für alle Seiten
pdfDocument->get_Pages()->Accept(textFragmentAbsorber);

// Holen Sie sich die extrahierten Textfragmente
auto textFragmentCollection = textFragmentAbsorber->get_TextFragments();

// Schleife durch die Fragmente
for (auto textFragment : textFragmentCollection)
{
	// Aktualisieren Sie Text und andere Eigenschaften
	textFragment->set_Text(u"UPDATED TEXT");
	textFragment->get_TextState()->set_Font(FontRepository::FindFont(u"TimesNewRoman"));
	textFragment->get_TextState()->set_FontSize(22);
}

// Speichern Sie das resultierende PDF Dokument.
pdfDocument->Save(u"OutputDirectory\\UpdatedDocument.pdf");

C++ Suchen und Ersetzen von Text auf einer bestimmten PDF-Seite

Es kann Situationen geben, in denen Sie Text nur auf einer bestimmten Seite und nicht im gesamten Dokument suchen und ersetzen möchten. Akzeptieren Sie dazu das Objekt TextFragmentAbsorber für die Seite, auf der Sie den Text ersetzen möchten. Im Folgenden finden Sie die Schritte zum Suchen und Ersetzen von Text auf einer bestimmten Seite im PDF Dokument.

Im Folgenden finden Sie den Beispielcode zum Suchen und Ersetzen von Text auf einer bestimmten PDF-Seite mit C++.

// PDF Datei laden
auto pdfDocument = MakeObject<Document>(u"SourceDirectory\\Sample 1.pdf");

// Erstellen Sie ein TextAbsorber objekt, um alle Instanzen des eingegebenen Suchausdrucks zu finden
auto textFragmentAbsorber = MakeObject<TextFragmentAbsorber>(u"Document");

// Akzeptieren Sie den Absorber für die zweite Seite des Dokuments
pdfDocument->get_Pages()->idx_get(2)->Accept(textFragmentAbsorber);

// Holen Sie sich die extrahierten Textfragmente
auto textFragmentCollection = textFragmentAbsorber->get_TextFragments();

// Schleife durch die Fragmente
for (auto textFragment : textFragmentCollection)
{
	// Aktualisieren Sie Text und andere Eigenschaften
	textFragment->set_Text(u"UPDATED TEXT");
	textFragment->get_TextState()->set_Font(FontRepository::FindFont(u"TimesNewRoman"));
	textFragment->get_TextState()->set_FontSize(22);
}

// Speichern Sie das resultierende PDF Dokument.
pdfDocument->Save(u"OutputDirectory\\UpdatedDocument2.pdf");

Text im PDF-Seitenbereich mit C++ ersetzen

Anstatt die gesamte Seite zu durchsuchen, können Sie den Bereich der Seite angeben, in dem Sie den Text ersetzen möchten. Dafür stellt die API die Klasse Rectangle bereit. Im Folgenden finden Sie die Schritte zum Suchen und Ersetzen von Text in einem bestimmten Teil der PDF-Seite.

Im Folgenden finden Sie den Beispielcode zum Suchen und Ersetzen von Text in einem bestimmten PDF-Seitenbereich.

// PDF Datei laden
auto pdfDocument = MakeObject<Document>(u"SourceDirectory\\Sample 1.pdf");

// Erstellen Sie ein TextAbsorber objekt, um alle Instanzen des eingegebenen Suchausdrucks zu finden
auto textFragmentAbsorber = MakeObject<TextFragmentAbsorber>(u"Document");

// Suchtext innerhalb der Seitengrenzen
textFragmentAbsorber->get_TextSearchOptions()->set_LimitToPageBounds(true);

// Geben Sie den Seitenbereich für TextSearchOptions an
textFragmentAbsorber->get_TextSearchOptions()->set_Rectangle(MakeObject<Rectangle>(100, 100, 800, 700));

// Akzeptieren Sie den Absorber für die erste Seite des Dokuments
pdfDocument->get_Pages()->idx_get(1)->Accept(textFragmentAbsorber);

// Holen Sie sich die extrahierten Textfragmente
auto textFragmentCollection = textFragmentAbsorber->get_TextFragments();

// Schleife durch die Fragmente
for (auto textFragment : textFragmentCollection)
{
	// Aktualisieren Sie Text und andere Eigenschaften
	textFragment->set_Text(u"UPDATED TEXT");
	textFragment->get_TextState()->set_Font(FontRepository::FindFont(u"TimesNewRoman"));
	textFragment->get_TextState()->set_FontSize(22);
}

// Speichern Sie das resultierende PDF Dokument.
pdfDocument->Save(u"OutputDirectory\\UpdatedDocument.pdf");

Suchen und Ersetzen von Text in PDF Dateien mit regulären Ausdrücken

Aspose.PDF for C++ bietet auch die Möglichkeit, Text mit regulären Ausdrücken zu durchsuchen. Mit regulären Ausdrücken können Sie Text wie Email-Adressen oder Telefonnummern usw. finden. Dazu müssen Sie den regulären Ausdruck anstelle der Suchzeichenfolge angeben und die Klasse TextSearchOptions verwenden, um anzugeben, dass Sie einen regulären verwenden Ausdruck für Suchen. Im Folgenden finden Sie die Schritte zum Suchen und Ersetzen von Text in PDF Dateien mithilfe eines regulären Ausdrucks.

Im Folgenden finden Sie den Beispielcode zum Suchen und Ersetzen von Text in PDF Dateien mithilfe eines regulären Ausdrucks.

// PDF Datei laden
auto pdfDocument = MakeObject<Document>(u"SourceDirectory\\Sample 2.pdf");

// Erstellen Sie ein TextAbsorber objekt, um alle Instanzen des eingegebenen Suchausdrucks zu finden
auto textFragmentAbsorber = MakeObject<TextFragmentAbsorber>(u"\\d{4} - \\d{4}"); // Like 1999-2000

// Legen Sie die Textsuchoption fest, um die Verwendung regulärer Ausdrücke zu aktivieren
auto textSearchOptions = MakeObject<TextSearchOptions>(true);
textFragmentAbsorber->set_TextSearchOptions(textSearchOptions);

// Akzeptieren Sie den Absorber für alle Seiten des Dokuments
pdfDocument->get_Pages()->Accept(textFragmentAbsorber);

// Holen Sie sich die extrahierten Textfragmente
auto textFragmentCollection = textFragmentAbsorber->get_TextFragments();

// Schleife durch die Fragmente
for (auto textFragment : textFragmentCollection)
{
	// Aktualisieren Sie Text und andere Eigenschaften
	textFragment->set_Text(u"UPDATED TEXT");
	textFragment->get_TextState()->set_Font(FontRepository::FindFont(u"TimesNewRoman"));
	textFragment->get_TextState()->set_FontSize(22);
}

// Speichern Sie das resultierende PDF Dokument.
pdfDocument->Save(u"OutputDirectory\\UpdatedDocument.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++ Text in PDF Dateien suchen und ersetzen. Sie haben gesehen, wie Text im gesamten PDF Dokument, auf einer bestimmten PDF-Seite oder in einem bestimmten Bereich der Seite ersetzt wird. Außerdem haben Sie gelernt, wie Sie Text mithilfe eines regulären Ausdrucks suchen und ersetzen. Aspose.PDF for C++ ist eine leistungsstarke API mit vielen zusätzlichen Funktionen, die das Arbeiten mit PDF Dokumenten zum Kinderspiel machen. Sie können die API im Detail erkunden, indem Sie die offizielle Dokumentation verwenden. Wenn Sie Fragen haben, kontaktieren Sie uns bitte im Forum.

Siehe auch