Comment remplacer du texte dans un PDF

This article was translated from English: Does it need improvement?
Translated
View the article in English

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");
    }
}
JAVA

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.

Sortie de console IronPDF montrant une Exception_RemoteException lorsque le texte cible '.NET7' ne peut pas être trouvé pendant le remplacement de texte

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");
    }
}
JAVA

ConseilsChargez la clé de licence une fois au démarrage de l'application plutôt qu'avant chaque opération individuelle. Cela évite la surcharge d'initialisation répétée lorsqu'on traite plusieurs documents dans la même session JVM.

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");
    }
}
JAVA

Veuillez noterTous les index de pages dans IronPDF suivent l'indexation à partir de zéro. La page 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 ?


Icon Quote related to À quoi ressemble le résultat ?

Ma bibliothèque préférée de ce genre est IronPDF. Elle permet une manipulation rapide et efficace des fichiers PDF. Elle dispose également de nombreuses fonctionnalités précieuses, comme l'exportation au format PDF/A et la signature numérique des documents PDF.

Milan Jovanovic related to À quoi ressemble le résultat ?

Milan Jovanovic

Microsoft MVP

Voir l'étude de cas
Icon Quote related to À quoi ressemble le résultat ?

IronOCR signifie que nous pouvons économiser 40 000 $ par an grâce au traitement manuel, tout en améliorant la productivité et en libérant des ressources pour des tâches à fort impact. Je le recommande vivement.

Brent Matzelle related to À quoi ressemble le résultat ?

Brent Matzelle

Directeur technique, OPYN

Voir l'étude de cas
Icon Quote related to À 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.

David Jones related to À quoi ressemble le résultat ?

David Jones

Ingénieur logiciel principal, Agorus Build

Voir l'étude de cas

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 ?

| Méthode| Description du projet| |---|---| | `PageSelection.allPages()` | Sélectionne chaque page du document| | `PageSelection.firstPage()` |Sélectionne la page à l'index `0`| | `PageSelection.lastPage()` | Sélectionne la page finale, quelle que soit la longueur du document| | `PageSelection.singlePage(int pageIndex)` | Sélectionne une page spécifique par index basé sur zéro| | `PageSelection.pageRange(int startIndex, int endIndex)` |Sélectionne une plage contiguë de `startIndex` à `endIndex` inclus| | `PageSelection.pageRange(List pageList)` |Sélectionne les pages à n'importe quel ensemble arbitraire d'indexes (par exemple, `[0, 2]` sélectionne les pages 1 et 3)|
Méthodes de fabrique PageSelection pour l'API replaceText

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.

ImportantEnveloppez les appels 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");
    }
}
JAVA

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.

Darrius Serrant
Ingénieur logiciel Full Stack (WebOps)

Darrius Serrant est titulaire d'un baccalauréat en informatique de l'université de Miami et travaille comme ingénieur marketing WebOps Full Stack chez Iron Software. Attiré par le codage dès son plus jeune âge, il a vu l'informatique comme à la fois mystérieuse et accessible, en faisant le ...

Lire la suite
Prêt à commencer?
Version : 2026.6 vient de sortir
Still Scrolling Icon

Vous faites encore défiler ?

Vous voulez une preuve rapidement ?
exécuter un échantillon Regardez votre code HTML se transformer en PDF.