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
- Suchen und Ersetzen von Text in PDF mit C++
- C++ Suchen und Ersetzen von Text auf einer bestimmten PDF-Seite
- Text im PDF-Seitenbereich mit C++ ersetzen
- Suchen und Ersetzen von Text in PDF Dateien mit regulären Ausdrücken
- Holen Sie sich eine kostenlose Lizenz
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++.
- Laden Sie die PDF Datei mit der Klasse Document.
- Erstellen Sie eine Instanz der Klasse TextFragmentAbsorber und initialisieren Sie sie mit dem Text, den Sie in der PDF Datei finden möchten.
- Akzeptieren Sie den TextFragmentAbsorber für die Seiten mit Document->getPages()->Accept (System::SharedPtrText::TextFragmentAbsorber Besucher) Methode.
- Rufen Sie alle Textvorkommen mit der methode TextFragmentAbsorber->getTextFragments() ab.
- Durchlaufen Sie die TextFragmentCollection und aktualisieren Sie den Text mit der methode TextFragment->setText (System::String value).
- Speichern Sie die aktualisierte PDF Datei mit der methode Document->Save (System::String outputFileName).
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.
- Laden Sie die PDF Datei mit der Klasse Document.
- Erstellen Sie eine Instanz der Klasse TextFragmentAbsorber und initialisieren Sie sie mit dem Text, den Sie in der PDF Datei finden möchten.
- Akzeptieren Sie den TextFragmentAbsorber für die jeweilige Seite mit Document->getPages()->idxget (int32t index)->Accept (System::SharedPtrText::TextFragmentAbsorber Besucher) Methode.
- Rufen Sie alle Textvorkommen mit der methode TextFragmentAbsorber->getTextFragments() ab.
- Durchlaufen Sie die TextFragmentCollection und aktualisieren Sie den Text mit der methode TextFragment->setText (System::String value).
- Speichern Sie die aktualisierte PDF Datei mit der methode Document->Save (System::String outputFileName).
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.
- Laden Sie die PDF Datei mit der Klasse Document.
- Erstellen Sie eine Instanz der Klasse TextFragmentAbsorber und initialisieren Sie sie mit dem Text, den Sie suchen und in der PDF Datei ersetzen möchten.
- Legen Sie den Seitenbereich für die Suche mit der methode TextFragmentAbsorber->getTextSearchOptions()->setRectangle (System::SharedPtr< Aspose::Pdf::Rectangle> value) fest.
- Akzeptieren Sie den TextFragmentAbsorber für die jeweilige Seite mit Document->getPages()->idxget (int32t index)->Accept (System::SharedPtrText::TextFragmentAbsorber Besucher) Methode.
- Rufen Sie alle Textvorkommen mit der methode TextFragmentAbsorber->getTextFragments() ab.
- Durchlaufen Sie die TextFragmentCollection und aktualisieren Sie den Text mit der methode TextFragment->setText (System::String value).
- Speichern Sie die aktualisierte PDF Datei mit der methode Document->Save (System::String outputFileName).
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.
- Laden Sie die PDF Datei mit der Klasse Document.
- Erstellen Sie eine Instanz der Klasse TextFragmentAbsorber und initialisieren Sie sie mit dem regulären Ausdruck, den Sie verwenden möchten.
- Initialisieren Sie die Klasse TextSearchOptions und übergeben Sie true an ihren Konstruktor. Es zeigt an, dass Sie mit einem regulären Ausdruck suchen.
- Weisen Sie das Objekt TextSearchOptions der Klasse TextFragmentAbsorber zu, indem Sie TextFragmentAbsorber->setTextSearchOptions (System::SharedPtrAspose::Pdf::Text::TextSearchOptions Wert) Methode.
- Akzeptieren Sie den TextFragmentAbsorber für die Seiten mit Document->getPages()->Accept (System::SharedPtrText::TextFragmentAbsorber Besucher) Methode.
- Rufen Sie alle Textvorkommen mit der methode TextFragmentAbsorber->getTextFragments() ab.
- Durchlaufen Sie die TextFragmentCollection und aktualisieren Sie den Text mit der methode TextFragment->setText (System::String value).
- Speichern Sie die aktualisierte PDF Datei mit der methode Document->Save (System::String outputFileName).
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.