Comment remplacer du texte dans un PDF
IronPDF for Java donne aux développeurs un contrôle direct sur le contenu PDF existant via la méthode replaceText. Que vous ayez besoin de corriger une faute de frappe dans une série de rapports générés, d'échanger des numéros de version entre des documents modèles ou de personnaliser des contrats avec des données spécifiques au client, la méthode accepte une sélection de pages, une chaîne de recherche et une chaîne de remplacement et s'occupe du reste. Ce guide couvre le remplacement sur une seule page, le ciblage multi-pages, chaque option PageSelection disponible, et les modèles pratiques pour les workflows basés sur des modèles.
Démarrage rapide : Remplacer du texte dans un PDF
Ajoutez la dépendance IronPDF, chargez ou rendez un PDF, appelez replaceText, et enregistrez le résultat :
:title=Quickstart Replace Text
//:path=/static-assets/pdf/content-code-examples/how-to/find-replace-text/quickstart.java
import com.ironsoftware.ironpdf.*;
import com.ironsoftware.ironpdf.edit.PageSelection;
import java.io.IOException;
public class App {
public static void main(String[] args) throws IOException {
License.setLicenseKey("IRONPDF-MYLICENSE-KEY-1EF01");
PdfDocument pdf = PdfDocument.renderHtmlAsPdf("<h1>.NET6</h1>");
pdf.replaceText(PageSelection.firstPage(), ".NET6", ".NET7");
pdf.saveAs("replaceText.pdf");
}
}
:title=Quickstart Replace Text
//:path=/static-assets/pdf/content-code-examples/how-to/find-replace-text/quickstart.java
import com.ironsoftware.ironpdf.*;
import com.ironsoftware.ironpdf.edit.PageSelection;
import java.io.IOException;
public class App {
public static void main(String[] args) throws IOException {
License.setLicenseKey("IRONPDF-MYLICENSE-KEY-1EF01");
PdfDocument pdf = PdfDocument.renderHtmlAsPdf("<h1>.NET6</h1>");
pdf.replaceText(PageSelection.firstPage(), ".NET6", ".NET7");
pdf.saveAs("replaceText.pdf");
}
}
Flux de travail minimal (5 étapes)
- Téléchargez la bibliothèque Java pour remplacer du texte dans un PDF
- Chargez un PDF existant ou rendez-en un à partir de HTML
- Appelez
pdf.replaceText(PageSelection, oldText, newText)pour remplacer sur des pages ciblées - Utilisez les méthodes
PageSelectionpour contrôler les pages modifiées - Enregistrez et exportez le PDF mis à jour avec
pdf.saveAs("output.pdf")
Comment remplacer du texte sur une seule page?
La méthode replaceText accepte trois arguments : un PageSelection qui cible une ou plusieurs pages, le texte exact à trouver, et la chaîne de remplacement. Pour cibler la première page, passez PageSelection.firstPage(). Toutes les instances de la chaîne de recherche sur cette page sont remplacées en un seul appel. Si le texte ne peut pas être trouvé sur les pages ciblées, la méthode lance une exception d'exécution. La capture d'écran ci-dessous montre à quoi ressemble cette exception dans la console.

Quels paramètres replaceText accepte-t-il ?
La signature de méthode est replaceText(PageSelection pageSelection, String oldText, String newText). La correspondance est sensible à la casse par défaut : "net6" et "NET6" sont traités comme des chaînes différentes. Vérifiez l'exactitude de la casse dans le PDF rendu avant d'appeler la méthode. Vous pouvez confirmer le texte exact en extrayant d'abord le contenu texte du PDF. La dépendance IronPDF Java est publiée sur Maven Central et nécessite Java 8 ou une version ultérieure.
:title=Replace Text on First Page
//:path=/static-assets/pdf/content-code-examples/how-to/find-replace-text/replace-text-single-page.java
import com.ironsoftware.ironpdf.*;
import com.ironsoftware.ironpdf.edit.PageSelection;
import java.io.IOException;
public class App {
public static void main(String[] args) throws IOException {
// Set the IronPDF license key (required for production use)
License.setLicenseKey("IRONPDF-MYLICENSE-KEY-1EF01");
// Render HTML content into a PDF document
PdfDocument pdf = PdfDocument.renderHtmlAsPdf("<h1>.NET6</h1>");
// Define the search and replacement strings
String oldText = ".NET6";
String newText = ".NET7";
// Replace all instances of oldText on the first page only
// PageSelection.firstPage() targets page index 0
pdf.replaceText(PageSelection.firstPage(), oldText, newText);
// Save the modified PDF
pdf.saveAs("replaceText.pdf");
}
}
:title=Replace Text on First Page
//:path=/static-assets/pdf/content-code-examples/how-to/find-replace-text/replace-text-single-page.java
import com.ironsoftware.ironpdf.*;
import com.ironsoftware.ironpdf.edit.PageSelection;
import java.io.IOException;
public class App {
public static void main(String[] args) throws IOException {
// Set the IronPDF license key (required for production use)
License.setLicenseKey("IRONPDF-MYLICENSE-KEY-1EF01");
// Render HTML content into a PDF document
PdfDocument pdf = PdfDocument.renderHtmlAsPdf("<h1>.NET6</h1>");
// Define the search and replacement strings
String oldText = ".NET6";
String newText = ".NET7";
// Replace all instances of oldText on the first page only
// PageSelection.firstPage() targets page index 0
pdf.replaceText(PageSelection.firstPage(), oldText, newText);
// Save the modified PDF
pdf.saveAs("replaceText.pdf");
}
}
La méthode replaceText s'intègre naturellement avec le workflow de conversion HTML en PDF d'IronPDF. Rendez d'abord le modèle HTML, puis appliquez le remplacement de texte pour injecter des valeurs dynamiques. Cela maintient votre HTML propre tout en produisant le résultat personnalisé. Pour les documents chargés à partir du disque, passez le chemin du fichier à PdfDocument.fromFile au lieu d'utiliser renderHtmlAsPdf.
À quoi ressemble le résultat ?
Comment remplacer du texte sur plusieurs pages ?
Pour cibler des pages spécifiques plutôt que simplement la première, passez une liste de numéros de page indexés à zéro à PageSelection.pageRange(List<Integer>). La méthode remplace le texte de recherche sur chaque page de la liste et laisse toutes les autres pages inchangées. Ce modèle convient aux documents avec des en-têtes ou pieds de page cohérents sur des pages connues, ou aux rapports générés en lot où une chaîne de version n'apparaît que sur certaines pages.
Quelles pages sont modifiées lors de l'utilisation d'une liste de pages ?
Dans l'exemple ci-dessous, un PDF de trois pages est créé à partir de HTML. Le remplacement s'exécute sur les pages 0 et 2 (les première et troisième pages). La page 1 (la deuxième page) conserve le texte original inchangé. Les index de page commencent toujours à 0, conformément aux conventions de tableau indexé à zéro de Java.
:title=Replace Text on Multiple Specific Pages
//:path=/static-assets/pdf/content-code-examples/how-to/find-replace-text/replace-text-multiple-pages.java
import com.ironsoftware.ironpdf.*;
import com.ironsoftware.ironpdf.edit.PageSelection;
import java.io.IOException;
import java.util.Arrays;
import java.util.List;
public class App {
public static void main(String[] args) throws IOException {
// Set the IronPDF license key
License.setLicenseKey("IRONPDF-MYLICENSE-KEY-1EF01");
// Build a 3-page PDF from HTML using CSS page breaks
String html = "<p> .NET6 </p>" +
"<p> This is 1st Page </p>" +
"<div style='page-break-after: always;'></div>" +
"<p> This is 2nd Page</p>" +
"<div style='page-break-after: always;'></div>" +
"<p> .NET6 </p>" +
"<p> This is 3rd Page</p>";
PdfDocument pdf = PdfDocument.renderHtmlAsPdf(html);
String oldText = ".NET6";
String newText = ".NET7";
// Pages are zero-indexed: 0 = first page, 2 = third page
// Page index 1 (second page) is intentionally excluded
List<Integer> pages = Arrays.asList(0, 2);
pdf.replaceText(PageSelection.pageRange(pages), oldText, newText);
pdf.saveAs("replaceTextOnMultiplePages.pdf");
}
}
:title=Replace Text on Multiple Specific Pages
//:path=/static-assets/pdf/content-code-examples/how-to/find-replace-text/replace-text-multiple-pages.java
import com.ironsoftware.ironpdf.*;
import com.ironsoftware.ironpdf.edit.PageSelection;
import java.io.IOException;
import java.util.Arrays;
import java.util.List;
public class App {
public static void main(String[] args) throws IOException {
// Set the IronPDF license key
License.setLicenseKey("IRONPDF-MYLICENSE-KEY-1EF01");
// Build a 3-page PDF from HTML using CSS page breaks
String html = "<p> .NET6 </p>" +
"<p> This is 1st Page </p>" +
"<div style='page-break-after: always;'></div>" +
"<p> This is 2nd Page</p>" +
"<div style='page-break-after: always;'></div>" +
"<p> .NET6 </p>" +
"<p> This is 3rd Page</p>";
PdfDocument pdf = PdfDocument.renderHtmlAsPdf(html);
String oldText = ".NET6";
String newText = ".NET7";
// Pages are zero-indexed: 0 = first page, 2 = third page
// Page index 1 (second page) is intentionally excluded
List<Integer> pages = Arrays.asList(0, 2);
pdf.replaceText(PageSelection.pageRange(pages), oldText, newText);
pdf.saveAs("replaceTextOnMultiplePages.pdf");
}
}
0 est la première page, la page 1 est la deuxième, et ainsi de suite.Lorsque vous créez des PDF multi-pages à partir de HTML, utilisez la propriété CSS page-break-after pour contrôler où tombent les limites de page. Définir la taille de papier personnalisée et l'orientation de page appropriées avant le rendu garantit que les positions de contenu correspondent à vos attentes lors de l'exécution du remplacement de texte. Après avoir enregistré, vérifiez la sortie en ouvrant le PDF et en confirmant que seules les pages ciblées ont changé.
À quoi ressemble le résultat ?
Iron Suite joue un rôle crucial dans nos opérations. Ce sont des outils qui augmentent l'efficacité de l'entreprise, y compris la création de plans d'étage et l'amélioration de la gestion des stocks.
Quelles sont les options de sélection de pages disponibles ?
La classe PageSelection fournit des méthodes de fabrique statiques qui couvrent chaque modèle de ciblage commun. Aucune création d'instance n'est nécessaire ; appelez les méthodes directement sur la classe. Tous les index sont basés sur zéro.
Quelles méthodes ciblent une seule page ou plusieurs pages ?
Quand devrais-je utiliser chaque méthode PageSelection?
allPages() est le choix le plus simple pour une recherche et remplacement global : chaque instance du texte cible à travers le document entier est remplacée en un seul appel. Utilisez firstPage() ou lastPage() pour des modifications rapides des pages de couverture ou des bas de page de dernière page sans toucher au corps. Choisissez pageRange(int, int) lorsque le texte apparaît sur un ensemble de pages séquentielles telles qu'un chapitre ou une section. Utilisez pageRange(List<Integer>) lorsque les pages cibles ne sont pas contiguës ; par exemple, lors du remplacement d'une chaîne de version qui n'apparaît que sur les pages 1, 3, et 7.
Lorsque vous travaillez avec des PDFs fusionnés ou des documents qui incluent des signets et contours, identifie d'abord la plage de pages pour chaque section logique, puis applique des remplacements ciblés pour éviter de modifier accidentellement les en-têtes ou pieds de page partagés. La référence API IronPDF for Java liste toutes les surcharges PageSelection avec documentation complète des paramètres.
replaceText dans un bloc try-catch. La méthode lance une exception d'exécution lorsque le texte de recherche spécifié n'est trouvé sur aucune des pages ciblées. Une étape de validation (extraction de texte et confirmation de la présence de la chaîne) évite les échecs inattendus en production.Comment remplacer le texte sur toutes les pages en une seule fois ?
PageSelection.allPages() effectue un remplacement sur l'ensemble du document en un seul appel, ce qui est l'approche la plus efficace pour une substitution globale de jeton. L'exemple ci-dessous charge un PDF depuis le disque et remplace chaque occurrence d'un jeton de remplacement à l'échelle de l'ensemble du document :
:title=Replace Text on All Pages
//:path=/static-assets/pdf/content-code-examples/how-to/find-replace-text/replace-text-all-pages.java
import com.ironsoftware.ironpdf.*;
import com.ironsoftware.ironpdf.edit.PageSelection;
import java.io.IOException;
import java.nio.file.Paths;
public class App {
public static void main(String[] args) throws IOException {
// Set the IronPDF license key
License.setLicenseKey("IRONPDF-MYLICENSE-KEY-1EF01");
// Load an existing PDF from disk
PdfDocument pdf = PdfDocument.fromFile(Paths.get("contract-template.pdf"));
// Replace the placeholder token on every page simultaneously
// This is equivalent to calling replaceText for each page individually
pdf.replaceText(PageSelection.allPages(), "{{VERSION}}", "2.0");
// Save the updated document
pdf.saveAs("contract-v2.pdf");
}
}
:title=Replace Text on All Pages
//:path=/static-assets/pdf/content-code-examples/how-to/find-replace-text/replace-text-all-pages.java
import com.ironsoftware.ironpdf.*;
import com.ironsoftware.ironpdf.edit.PageSelection;
import java.io.IOException;
import java.nio.file.Paths;
public class App {
public static void main(String[] args) throws IOException {
// Set the IronPDF license key
License.setLicenseKey("IRONPDF-MYLICENSE-KEY-1EF01");
// Load an existing PDF from disk
PdfDocument pdf = PdfDocument.fromFile(Paths.get("contract-template.pdf"));
// Replace the placeholder token on every page simultaneously
// This is equivalent to calling replaceText for each page individually
pdf.replaceText(PageSelection.allPages(), "{{VERSION}}", "2.0");
// Save the updated document
pdf.saveAs("contract-v2.pdf");
}
}
Ce modèle s'associe naturellement à des flux de travail basés sur des modèles où le même espace réservé apparaît dans les en-têtes, les pieds de page ou le texte du corps sur plusieurs pages. Pour les documents d'une seule page, allPages() et firstPage() produisent des résultats identiques. Préférez allPages() lorsque le nombre de pages peut varier à l'exécution.
Comment puis-je gérer des scénarios courants de remplacement de texte ?
Le remplacement de texte dans les applications Java couvre plusieurs modèles qui vont au-delà d'une simple recherche et remplacement. Comprendre comment la méthode se comporte dans chaque cas empêche les bogues avant qu'ils n'apparaissent en production.
Comment la correspondance sensible à la casse influence-t-elle les résultats ?
replaceText réalise des correspondances exactes, sensibles à la casse. Les chaînes "Version 1.0", "version 1.0", et "VERSION 1.0" sont traitées comme trois valeurs distinctes. Avant d'exécuter un remplacement sur un document chargé depuis le disque, confirmez exactement la casse en examinant la source originale ou en extrayant le texte du PDF et en l'inspectant par programmation.
Comment puis-je remplacer le texte dans les formulaires PDF ?
Les PDF contenant des champs de formulaire interactifs stockent leurs valeurs de texte séparément du flux de contenu du document, tel que défini dans la spécification PDF. La méthode replaceText fonctionne sur le flux de contenu et ne modifie pas les valeurs des champs de formulaire. Pour mettre à jour le texte à l'intérieur des champs de formulaire, utilisez plutôt l'API de création et d'édition de formulaire d'IronPDF. Mélanger les deux approches dans le même document est sans danger : les mises à jour des champs de formulaire et les remplacements de flux de contenu n'interfèrent pas entre elles.
Comment puis-je mettre à jour le texte dans les flux de travail basés sur des modèles ?
Un modèle courant est de maintenir un modèle PDF avec des jetons de remplacement (par exemple {{CUSTOMER_NAME}} ou [INVOICE_DATE]) et de les remplacer à l'exécution par des valeurs réelles. Appelez replaceText une fois par espace réservé, en utilisant PageSelection.allPages() pour que le remplacement couvre chaque emplacement où le jeton apparaît. Pour les documents générés à partir de HTML, ce workflow fonctionne également bien avec renderHtmlAsPdf suivi d'une série d'appels de remplacement. Combinez cela avec le filigrane PDF ou les arrière-plans et avant-plans pour ajouter des marques de marque ou de confidentialité au résultat final.
Quelles sont les prochaines étapes pour le remplacement de texte PDF en Java ?
Ce guide a couvert le remplacement sur une seule page avec PageSelection.firstPage(), le remplacement sélectif multi-page avec PageSelection.pageRange(), le remplacement à l'échelle du document avec PageSelection.allPages(), et l'ensemble complet des méthodes de fabrique PageSelection. La même API replaceText fonctionne que le document ait été rendu à partir de HTML, chargé depuis le disque, ou assemblé en fusionnant plusieurs sources.
Commencez un essai gratuit de IronPDF for Java et exécutez les exemples de code ci-dessus avec vos propres documents. Lorsque vous êtes prêt à déployer en production, examinez les options de licence. Les licences sont par développeur et comprennent un an de mises à jour du produit.
Prêt à voir ce que d'autre IronPDF for Java peut faire ? Parcourez les guides IronPDF for Java complets pour des tutoriels sur la génération de PDF, l'annotation, les signatures numériques, la compression, et plus.
Questions Fréquemment Posées
Comment remplacer du texte dans un PDF à l'aide de Java ?
Utilisez la méthode replaceText d'IronPDF. Appelez pdf.replaceText(PageSelection.firstPage(), "oldText", "newText") pour remplacer toutes les instances de l'ancien texte sur la page spécifiée. IronPDF trouve et remplace chaque occurrence tout en préservant le format d'origine.
Quels paramètres la méthode replaceText accepte-t-elle ?
La méthode accepte trois paramètres : un PageSelection pour spécifier quelles pages modifier, une String avec le texte à trouver, et une String avec le texte de remplacement. Par exemple, pdf.replaceText(PageSelection.firstPage(), ".NET6", ".NET7") remplace toutes les instances sur la première page.
Puis-je remplacer du texte sur certaines pages seulement ?
Oui. Utilisez PageSelection.firstPage() pour la page 0, PageSelection.lastPage() pour la dernière page, PageSelection.singlePage(n) pour n'importe quelle page par index basé sur zéro, ou PageSelection.pageRange() avec une liste d'entiers pour des pages non contiguës.
Que se passe-t-il si le texte à remplacer n'est pas trouvé ?
IronPDF génère une exception au moment de l'exécution (Exception_RemoteException) lorsque le texte cible ne peut pas être trouvé sur les pages ciblées. Enveloppez l'appel dans un bloc try-catch et extrayez éventuellement le texte du PDF au préalable pour vérifier que la chaîne existe avant d'appeler replaceText.
La recherche de texte est-elle sensible à la casse ?
Oui. La méthode replaceText effectue une correspondance exacte, sensible à la casse. Les chaînes "Version 1.0", "version 1.0" et "VERSION 1.0" sont traitées comme trois valeurs distinctes. Vérifiez la casse exacte avant d'appeler la méthode.
La méthode replaceText modifie-t-elle les valeurs des champs de formulaire ?
Non. La méthode replaceText fonctionne sur le flux de contenu PDF et ne modifie pas les valeurs des champs de formulaire interactifs. Pour mettre à jour les champs de formulaire, utilisez l'API d'édition de formulaire dédiée d'IronPDF via les méthodes de formulaire PdfDocument.
Comment puis-je remplacer un jeton sur chaque page à la fois ?
Utilisez PageSelection.allPages() comme premier argument de replaceText. Cela remplace chaque instance du texte cible sur toutes les pages en un seul appel, qui est l'approche préférée pour les flux de travail basés sur des modèles avec des espaces réservés à l'échelle du document.


