Rechercher et remplacer du texte dans un PDF à l'aide de C++

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

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

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.

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.

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.

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.

Voir également