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
- Rechercher et remplacer du texte dans un PDF à l’aide de Java
- Remplacer le texte sur une page particulière en PDF
- Remplacer le texte à l’aide d’une expression régulière
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.
- Chargez le fichier PDF à l’aide de la classe Document.
- Créez un objet de la classe TextFragmentAbsorber et initialisez-le avec le texte que vous souhaitez rechercher et remplacer.
- Acceptez l’absorbeur pour les pages en PDF en utilisant la méthode Document.getPages().accept(TextFragmentAbsorber).
- Récupère toutes les occurrences du texte renvoyé par TextFragmentAbsorber.getTextFragments() dans un objet TextFragmentCollection.
- Parcourez chaque TextFragment dans l’objet TextFragmentCollection et remplacez le texte à l’aide de la méthode TextFragment.setText(String).
- Enregistrez le fichier PDF mis à jour à l’aide de la méthode Document.save(String).
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.
- Chargez le fichier PDF à l’aide de la classe Document.
- Créez un objet de la classe TextFragmentAbsorber et initialisez-le avec le texte que vous souhaitez rechercher et remplacer.
- Acceptez l’absorbeur pour une page particulière dans un PDF à l’aide de la méthode Document.getPages().getItem(Int pageIndex).accept(TextFragmentAbsorber).
- Récupère toutes les occurrences du texte renvoyé par TextFragmentAbsorber.getTextFragments() dans l’objet TextFragmentCollection.
- Parcourez chaque TextFragment dans l’objet TextFragmentCollection et remplacez le texte à l’aide de la méthode TextFragment.setText(String).
- Enregistrez le fichier PDF mis à jour à l’aide de la méthode Document.save(String).
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.
- Chargez le fichier PDF à l’aide de la classe Document.
- Créez un objet de la classe TextFragmentAbsorber et initialisez-le avec l’expression régulière que vous souhaitez utiliser.
- Créez un objet de la classe TextSearchOptions et initialisez-le avec true pour activer la recherche basée sur les expressions régulières.
- Définissez les options à l’aide de la méthode TextFragmentAbsorber.setTextSearchOptions(TextSearchOptions).
- Acceptez l’absorbeur pour les pages en PDF en utilisant la méthode Document.getPages().accept(TextFragmentAbsorber).
- Obtenez toutes les occurrences trouvées du texte renvoyé par TextFragmentAbsorber.getTextFragments() dans l’objet TextFragmentCollection.
- Parcourez chaque TextFragment dans l’objet TextFragmentCollection et remplacez le texte à l’aide de la méthode TextFragment.setText(String).
- Enregistrez le fichier PDF mis à jour à l’aide de la méthode Document.save(String).
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.