Rechercher et remplacer du texte dans PDF Java

Dans divers cas, vous devrez peut-être rechercher et remplacer un morceau de texte particulier dans les documents PDF. Cependant, rechercher et mettre à jour manuellement chaque occurrence peut vous coûter du temps et des efforts supplémentaires. Dans de tels cas, l’option de recherche et de remplacement vous facilite la vie. Dans cet article, vous apprendrez à rechercher et à remplacer du texte dans des documents PDF à l’aide de Java.

API Java pour rechercher et remplacer du texte dans un PDF - Téléchargement gratuit

Aspose.PDF for Java est conçu pour générer et manipuler des fichiers PDF à partir des applications Java. L’API fournit un large éventail de fonctionnalités de manipulation PDF de base et avancées, notamment la recherche et le remplacement de texte. Vous pouvez soit télécharger l’API ou l’installer à l’aide des configurations Maven suivantes.

<repository>
    <id>AsposeJavaAPI</id>
    <name>Aspose Java API</name>
    <url>https://repository.aspose.com/repo/</url>
</repository>
<dependency>
    <groupId>com.aspose</groupId>
    <artifactId>aspose-pdf</artifactId>
    <version>21.1</version>    
</dependency>

Rechercher et remplacer du texte dans un PDF à l’aide de Java

Afin de remplacer un texte particulier dans un PDF, vous devez d’abord obtenir tous les fragments de texte correspondant à la chaîne de recherche. Une fois que vous les avez, remplacez simplement chaque fragment par un texte mis à jour un par un.

Voici les étapes pour rechercher et remplacer du texte dans un fichier PDF à l’aide de Java.

L’exemple de code suivant montre comment rechercher et remplacer du texte dans un PDF.

// Pour des exemples complets et des fichiers de données, rendez-vous sur https://github.com/aspose-pdf/Aspose.Pdf-for-Java
// Ouvrir le document
Document pdfDocument = new Document("source.pdf");

// Créer un objet TextAbsorber pour trouver toutes les instances de la phrase de recherche d'entrée
TextFragmentAbsorber textFragmentAbsorber = new TextFragmentAbsorber("sample");

// Accepter l'absorbeur pour toutes les pages du document
pdfDocument.getPages().accept(textFragmentAbsorber);

// Obtenez les fragments de texte extraits dans la collection
TextFragmentCollection textFragmentCollection = textFragmentAbsorber.getTextFragments();

// Boucle à travers les fragments
for (TextFragment textFragment : (Iterable<TextFragment>) textFragmentCollection) {
	// Mettre à jour le texte et d'autres propriétés
	textFragment.setText("New Pharase");
	textFragment.getTextState().setFont(FontRepository.findFont("Verdana"));
	textFragment.getTextState().setFontSize(22);
	textFragment.getTextState().setForegroundColor(Color.getBlue());
	textFragment.getTextState().setBackgroundColor(Color.getGray());
}
// Enregistrez le fichier PDF mis à jour
pdfDocument.save("Updated_Text.pdf");

Rechercher et remplacer du texte sur une page particulière en PDF

Au lieu de rechercher et de remplacer du texte dans l’ensemble du PDF, vous pouvez spécifier une seule page sur laquelle vous souhaitez remplacer les occurrences de texte. Dans ce cas, vous accepterez le TextFragmentAbsorber pour une page particulière uniquement en spécifiant l’index de la page.

Voici les étapes pour rechercher et remplacer du texte sur une page particulière au format PDF en Java.

L’exemple de code suivant montre comment rechercher et remplacer du texte sur une page particulière dans un PDF à l’aide de Java.

// Pour des exemples complets et des fichiers de données, rendez-vous sur https://github.com/aspose-pdf/Aspose.Pdf-for-Java
// Ouvrir le document
Document pdfDocument = new Document("source.pdf");

// Créer un objet TextAbsorber pour trouver toutes les instances de la phrase de recherche d'entrée
TextFragmentAbsorber textFragmentAbsorber = new TextFragmentAbsorber("sample");

// Accepter l'absorbeur pour la première page du document
pdfDocument.getPages().get_Item(0).accept(textFragmentAbsorber);

// Obtenez les fragments de texte extraits dans la collection
TextFragmentCollection textFragmentCollection = textFragmentAbsorber.getTextFragments();

// Boucle à travers les fragments
for (TextFragment textFragment : (Iterable<TextFragment>) textFragmentCollection) {
	// Mettre à jour le texte et d'autres propriétés
	textFragment.setText("New Pharase");
	textFragment.getTextState().setFont(FontRepository.findFont("Verdana"));
	textFragment.getTextState().setFontSize(22);
	textFragment.getTextState().setForegroundColor(Color.getBlue());
	textFragment.getTextState().setBackgroundColor(Color.getGray());
}
// Enregistrez le fichier PDF mis à jour
pdfDocument.save("Updated_Text.pdf");

Rechercher et remplacer du texte à l’aide d’expressions régulières dans un PDF

Vous pouvez également spécifier une expression régulière pour rechercher le texte qui correspond à un modèle particulier tel que les e-mails, les SSN, etc. Voici les étapes pour définir et utiliser une expression régulière pour rechercher et remplacer du texte dans un PDF à l’aide de Java.

L’exemple de code suivant montre comment rechercher et remplacer du texte dans un PDF à l’aide d’une expression régulière.

// Pour des exemples complets et des fichiers de données, rendez-vous sur https://github.com/aspose-pdf/Aspose.Pdf-for-Java
// Ouvrir le document
Document pdfDocument = new Document("input.pdf");

// Créer un objet TextAbsorber pour trouver toutes les instances de la phrase de recherche d'entrée
TextFragmentAbsorber textFragmentAbsorber = new TextFragmentAbsorber("\\d{4}-\\d{4}"); // like 1999-2000

// Définir l'option de recherche de texte pour activer l'utilisation des expressions régulières
TextSearchOptions textSearchOptions = new TextSearchOptions(true);
textFragmentAbsorber.setTextSearchOptions(textSearchOptions);

// Accepter l'absorbeur pour toutes les pages du document
pdfDocument.getPages().accept(textFragmentAbsorber);

// Obtenez les fragments de texte extraits dans la collection
TextFragmentCollection textFragmentCollection = textFragmentAbsorber.getTextFragments();

// Boucle à travers les fragments
for (TextFragment textFragment : (Iterable<TextFragment>) textFragmentCollection) {
	// Mettre à jour le texte et d'autres propriétés
	textFragment.setText("New Pharase");
	textFragment.getTextState().setFont(FontRepository.findFont("Verdana"));
	textFragment.getTextState().setFontSize(22);
	textFragment.getTextState().setForegroundColor(Color.getBlue());
	textFragment.getTextState().setBackgroundColor(Color.getGray());
}

// Enregistrez le fichier PDF mis à jour
pdfDocument.save("Updated_Text.pdf");

Obtenez une licence API gratuite

Vous pouvez essayer gratuitement l’API sans limitations d’évaluation. Obtenez une licence temporaire gratuite maintenant.

Conclusion

Dans cet article, vous avez appris à rechercher et à remplacer du texte dans un PDF à l’aide de Java. De plus, vous avez vu comment utiliser une expression régulière pour rechercher et remplacer du texte en suivant un modèle particulier. Vous pouvez en savoir plus sur l’API Java PDF à l’aide de documentation.

Voir également