PDF est un format populaire largement utilisé pour partager des documents entre des organisations et des particuliers. Il peut arriver que vous deviez rechercher et remplacer du texte dans les documents PDF avant de les partager. Vous pouvez le faire manuellement, mais cela prendrait plus de temps et serait moins efficace. L’option la meilleure et la plus rapide serait de le faire par programme. Dans cet article, vous apprendrez à rechercher et à remplacer du texte dans des fichiers PDF à l’aide de C++.
- API C++ pour rechercher et remplacer du texte dans des fichiers PDF
- Rechercher et remplacer du texte dans un PDF à l’aide de C++
- C++ Rechercher et remplacer du texte dans une page PDF spécifique
- Remplacer le texte dans la région de la page PDF à l’aide de C++
- Rechercher et remplacer du texte dans des fichiers PDF à l’aide d’expressions régulières
- Obtenez une licence gratuite
API C++ pour rechercher et remplacer du texte dans des fichiers PDF
Aspose.PDF for C++ est une bibliothèque C++ pour travailler avec des fichiers PDF. Il fournit un ensemble de fonctionnalités qui vous aident à automatiser divers aspects de vos flux de travail PDF. L’une de ces fonctionnalités consiste à rechercher et à remplacer du texte dans des fichiers PDF. Vous pouvez soit installer l’API via NuGet ou la télécharger directement à partir de la section downloads.
PM> Install-Package Aspose.PDF.Cpp
Rechercher et remplacer du texte dans un PDF à l’aide de C++
Aspose.PDF for C++ fournit la classe TextFragmentAbsorber pour rechercher du texte dans des documents PDF. Vous initialisez cette classe avec le texte que vous souhaitez rechercher et l’utilisez pour récupérer tous les fragments de texte correspondants. Une fois que tous les fragments sont disponibles, vous les parcourez et remplacez le texte. Voici les étapes pour rechercher et remplacer du texte dans des fichiers PDF à l’aide de C++.
- Chargez le fichier PDF à l’aide de la classe Document.
- Créez une instance de la classe TextFragmentAbsorber et initialisez-la avec le texte que vous souhaitez rechercher dans le fichier PDF.
- Acceptez le TextFragmentAbsorber pour les pages en utilisant le Document->getPages()->Accept (System::SharedPtrText::TextFragmentAbsorber visiteur) méthode.
- Récupérez toutes les occurrences de texte à l’aide de la méthode TextFragmentAbsorber->getTextFragments().
- Parcourez la TextFragmentCollection et mettez à jour le texte à l’aide de la méthode TextFragment->setText (System::String value).
- Enregistrez le fichier PDF mis à jour à l’aide de la méthode Document->Save (System::String outputFileName).
Voici un exemple de code pour rechercher et remplacer du texte dans l’ensemble du fichier PDF à l’aide de C++.
// Charger le fichier PDF
auto pdfDocument = MakeObject<Document>(u"SourceDirectory\\Sample 1.pdf");
// Créer un objet TextAbsorber pour trouver toutes les instances de la phrase de recherche d'entrée
auto textFragmentAbsorber = MakeObject<TextFragmentAbsorber>(u"Document");
// Accepter l'absorbeur pour toutes les pages
pdfDocument->get_Pages()->Accept(textFragmentAbsorber);
// Obtenir les fragments de texte extraits
auto textFragmentCollection = textFragmentAbsorber->get_TextFragments();
// Boucle à travers les fragments
for (auto textFragment : textFragmentCollection)
{
// Mettre à jour le texte et d'autres propriétés
textFragment->set_Text(u"UPDATED TEXT");
textFragment->get_TextState()->set_Font(FontRepository::FindFont(u"TimesNewRoman"));
textFragment->get_TextState()->set_FontSize(22);
}
// Enregistrez le document PDF résultant.
pdfDocument->Save(u"OutputDirectory\\UpdatedDocument.pdf");
C++ Rechercher et remplacer du texte dans une page PDF spécifique
Il peut arriver que vous souhaitiez uniquement rechercher et remplacer du texte sur une page spécifique plutôt que sur l’ensemble du document. Pour cela, acceptez l’objet TextFragmentAbsorber pour la page où vous souhaitez remplacer le texte. Voici les étapes pour rechercher et remplacer du texte sur une page particulière du document PDF.
- Chargez le fichier PDF à l’aide de la classe Document.
- Créez une instance de la classe TextFragmentAbsorber et initialisez-la avec le texte que vous souhaitez rechercher dans le fichier PDF.
- Acceptez le TextFragmentAbsorber pour la page particulière en utilisant le Document->getPages()->idxget (int32t index)->Accept (System::SharedPtrText::TextFragmentAbsorber visiteur) méthode.
- Récupérez toutes les occurrences de texte à l’aide de la méthode TextFragmentAbsorber->getTextFragments().
- Parcourez la TextFragmentCollection et mettez à jour le texte à l’aide de la méthode TextFragment->setText (System::String value).
- Enregistrez le fichier PDF mis à jour à l’aide de la méthode Document->Save (System::String outputFileName).
Voici un exemple de code pour rechercher et remplacer du texte sur une page PDF spécifique à l’aide de C++.
// Charger le fichier PDF
auto pdfDocument = MakeObject<Document>(u"SourceDirectory\\Sample 1.pdf");
// Créer un objet TextAbsorber pour trouver toutes les instances de la phrase de recherche d'entrée
auto textFragmentAbsorber = MakeObject<TextFragmentAbsorber>(u"Document");
// Accepter l'absorbeur pour la deuxième page du document
pdfDocument->get_Pages()->idx_get(2)->Accept(textFragmentAbsorber);
// Obtenir les fragments de texte extraits
auto textFragmentCollection = textFragmentAbsorber->get_TextFragments();
// Boucle à travers les fragments
for (auto textFragment : textFragmentCollection)
{
// Mettre à jour le texte et d'autres propriétés
textFragment->set_Text(u"UPDATED TEXT");
textFragment->get_TextState()->set_Font(FontRepository::FindFont(u"TimesNewRoman"));
textFragment->get_TextState()->set_FontSize(22);
}
// Enregistrez le document PDF résultant.
pdfDocument->Save(u"OutputDirectory\\UpdatedDocument2.pdf");
Remplacer le texte dans la région de la page PDF à l’aide de C++
Au lieu de rechercher dans toute la page, vous pouvez spécifier la région de la page où vous souhaitez remplacer le texte. Pour cela, l’API fournit la classe Rectangle. Voici les étapes pour rechercher et remplacer du texte dans une partie spécifique de la page PDF.
- Chargez le fichier PDF à l’aide de la classe Document.
- Créez une instance de la classe TextFragmentAbsorber et initialisez-la avec le texte que vous souhaitez rechercher et remplacer dans le fichier PDF.
- Définissez la région de la page pour la recherche à l’aide de la méthode TextFragmentAbsorber->getTextSearchOptions()->setRectangle (System::SharedPtr< Aspose::Pdf::Rectangle> value).
- Acceptez le TextFragmentAbsorber pour la page particulière en utilisant le Document->getPages()->idxget (int32t index)->Accept (System::SharedPtrText::TextFragmentAbsorber visiteur) méthode.
- Récupérez toutes les occurrences de texte à l’aide de la méthode TextFragmentAbsorber->getTextFragments().
- Parcourez la TextFragmentCollection et mettez à jour le texte à l’aide de la méthode TextFragment->setText (System::String value).
- Enregistrez le fichier PDF mis à jour à l’aide de la méthode Document->Save (System::String outputFileName).
Voici un exemple de code pour rechercher et remplacer du texte dans une région de page PDF spécifique.
// Charger le fichier PDF
auto pdfDocument = MakeObject<Document>(u"SourceDirectory\\Sample 1.pdf");
// Créer un objet TextAbsorber pour trouver toutes les instances de la phrase de recherche d'entrée
auto textFragmentAbsorber = MakeObject<TextFragmentAbsorber>(u"Document");
// rechercher du texte dans les limites de la page
textFragmentAbsorber->get_TextSearchOptions()->set_LimitToPageBounds(true);
// spécifier la région de la page pour TextSearchOptions
textFragmentAbsorber->get_TextSearchOptions()->set_Rectangle(MakeObject<Rectangle>(100, 100, 800, 700));
// Accepter l'absorbeur pour la première page du document
pdfDocument->get_Pages()->idx_get(1)->Accept(textFragmentAbsorber);
// Obtenir les fragments de texte extraits
auto textFragmentCollection = textFragmentAbsorber->get_TextFragments();
// Boucle à travers les fragments
for (auto textFragment : textFragmentCollection)
{
// Mettre à jour le texte et d'autres propriétés
textFragment->set_Text(u"UPDATED TEXT");
textFragment->get_TextState()->set_Font(FontRepository::FindFont(u"TimesNewRoman"));
textFragment->get_TextState()->set_FontSize(22);
}
// Enregistrez le document PDF résultant.
pdfDocument->Save(u"OutputDirectory\\UpdatedDocument.pdf");
Rechercher et remplacer du texte dans des fichiers PDF à l’aide d’expressions régulières
Aspose.PDF for C++ offre également la possibilité de rechercher du texte à l’aide d’expressions régulières. Avec les expressions régulières, vous pouvez rechercher du texte comme des adresses e-mail ou des numéros de téléphone, etc. Pour cela, vous devez spécifier l’expression régulière au lieu de la chaîne de recherche et utiliser la classe TextSearchOptions pour indiquer que vous utilisez une expression régulière. expression de recherche. Voici les étapes pour rechercher et remplacer du texte dans des fichiers PDF à l’aide d’une expression régulière.
- Chargez le fichier PDF à l’aide de la classe Document.
- Créez une instance de la classe TextFragmentAbsorber et initialisez-la avec l’expression régulière que vous souhaitez utiliser.
- Initialisez la classe TextSearchOptions et transmettez true à son constructeur. Cela indiquera que vous effectuez une recherche à l’aide d’une expression régulière.
- Attribuez l’objet TextSearchOptions à la classe TextFragmentAbsorber en utilisant TextFragmentAbsorber->setTextSearchOptions (System :: SharedPtrAspose::Pdf::Text::TextSearchOptions valeur) méthode.
- Acceptez le TextFragmentAbsorber pour les pages en utilisant le Document->getPages()->Accept (System::SharedPtrText::TextFragmentAbsorber visiteur) méthode.
- Récupérez toutes les occurrences de texte à l’aide de la méthode TextFragmentAbsorber->getTextFragments().
- Parcourez la TextFragmentCollection et mettez à jour le texte à l’aide de la méthode TextFragment->setText (System ::String value).
- Enregistrez le fichier PDF mis à jour à l’aide de la méthode Document->Save (System ::String outputFileName).
Voici un exemple de code pour rechercher et remplacer du texte dans des fichiers PDF à l’aide d’une expression régulière.
// Charger le fichier PDF
auto pdfDocument = MakeObject<Document>(u"SourceDirectory\\Sample 2.pdf");
// Créer un objet TextAbsorber pour trouver toutes les instances de la phrase de recherche d'entrée
auto textFragmentAbsorber = MakeObject<TextFragmentAbsorber>(u"\\d{4} - \\d{4}"); // Like 1999-2000
// Définir l'option de recherche de texte pour activer l'utilisation des expressions régulières
auto textSearchOptions = MakeObject<TextSearchOptions>(true);
textFragmentAbsorber->set_TextSearchOptions(textSearchOptions);
// Accepter l'absorbeur pour toutes les pages du document
pdfDocument->get_Pages()->Accept(textFragmentAbsorber);
// Obtenir les fragments de texte extraits
auto textFragmentCollection = textFragmentAbsorber->get_TextFragments();
// Boucle à travers les fragments
for (auto textFragment : textFragmentCollection)
{
// Mettre à jour le texte et d'autres propriétés
textFragment->set_Text(u"UPDATED TEXT");
textFragment->get_TextState()->set_Font(FontRepository::FindFont(u"TimesNewRoman"));
textFragment->get_TextState()->set_FontSize(22);
}
// Enregistrez le document PDF résultant.
pdfDocument->Save(u"OutputDirectory\\UpdatedDocument.pdf");
Obtenez une licence gratuite
Vous pouvez essayer l’API sans limitation d’évaluation en demandant une licence temporaire gratuite.
Conclusion
Dans cet article, vous avez appris à rechercher et à remplacer du texte dans des fichiers PDF à l’aide de C++. Vous avez vu comment remplacer du texte dans tout le document PDF, une page PDF spécifique ou une région particulière de la page. De plus, vous avez appris à rechercher et à remplacer du texte à l’aide d’une expression régulière. Aspose.PDF for C++ est une API puissante avec de nombreuses fonctionnalités supplémentaires qui font du travail avec des documents PDF un jeu d’enfant. Vous pouvez explorer l’API en détail en utilisant la documentation officielle. Si vous avez des questions, n’hésitez pas à nous contacter sur le forum.