Cómo reemplazar texto en un PDF

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

IronPDF for Java ofrece a los desarrolladores control directo sobre el contenido existente del PDF a través del método replaceText. Ya sea que necesites corregir un error tipográfico en un lote de reportes generados, cambiar números de versión en documentos de plantilla, o personalizar contratos con datos específicos del cliente, el método acepta una selección de página, una cadena de búsqueda y una cadena de reemplazo y se encarga del resto. Esta guía cubre el reemplazo de una sola página, la selección de múltiples páginas, todas las opciones disponibles de PageSelection y patrones prácticos para flujos de trabajo basados en plantillas.

Inicio rápido: Reemplazo de texto en un PDF

Añade la dependencia de IronPDF, carga o renderiza un PDF, llama a replaceText, y guarda el resultado:

```java :title=Inicio rápido de reemplazo de texto //:path=/static-assets/pdf/content-code-examples/how-to/find-replace-text/quickstart.java importar IronPDF.*; importar IronPDF; importar java.io.IOException;

clase pública App { public static void main(String[] args) lanza IOException { Licencia.setLicenseKey("IronPDF-MYLICENSE-KEY-1EF01"); PdfDocument pdf = PdfDocument.renderHtmlAsPdf(""); pdf.replaceText(PageSelection.firstPage(), ".NET6", ".NET7"); pdf.saveAs("reemplazarTexto.pdf"); } }


<div class="hsg-featured-snippet">
    <h3>Flujo de trabajo mínimo (5 pasos)</h3>
    <ol>
        <li><a class="js-modal-open" data-modal-id="download-modal" href="#download-modal">Descargar la biblioteca Java para reemplazar texto en un PDF</a></li>
        <li>Carga un PDF existente o renderiza uno desde HTML</li>
        <li>Llama a <code>pdf.replaceText(PageSelection, oldText, newText)</code> para reemplazar en páginas seleccionadas</li>
        <li>Usa métodos de <code>PageSelection</code> para controlar qué páginas son modificadas</li>
        <li>Guarda y exporta el PDF actualizado con <code>pdf.saveAs("output.pdf")</code></li>
    </ol>
</div>

## ¿Cómo reemplazar texto en una sola página?

El método `replaceText` acepta tres argumentos: un `PageSelection` que apunta a una o más páginas, el texto exacto a encontrar y la cadena de reemplazo. Para apuntar a la primera página, pasa `PageSelection.firstPage()`. Todas las instancias de la cadena de búsqueda en esa página se reemplazan en una sola llamada. Si el texto no puede encontrarse en las páginas seleccionadas, el método lanza una excepción en tiempo de ejecución. La captura de pantalla a continuación muestra cómo se ve esa excepción en la consola.

![Salida de consola de IronPDF mostrando una Exception_RemoteException cuando no se puede encontrar el texto objetivo '.NET7' durante replaceText](/static-assets/ironpdf-java/howto/find-replace-text/cannotfindtext.webp)

### ¿Qué parámetros acepta replaceText?

La firma del método es `replaceText(PageSelection pageSelection, String oldText, String newText)`. La coincidencia distingue entre mayúsculas y minúsculas por defecto: `"net6"` y `"NET6"` son tratados como diferentes cadenas. Verifica la exactitud de las mayúsculas y minúsculas en el PDF renderizado antes de llamar al método. Puedes confirmar el texto exacto [extrayendo primero el contenido de texto del PDF](https://ironpdf.com/java/examples/extract-image-from-pdf/). La dependencia Java de IronPDF se publica en [Maven Central](https://central.sonatype.com/artifact/com.ironsoftware/ironpdf) y requiere Java 8 o posterior.

```java :title=Reemplazar texto en la primera página
//:path=/static-assets/pdf/content-code-examples/how-to/find-replace-text/replace-text-single-page.java
importar IronPDF.*;
importar IronPDF;
importar java.io.IOException;

clase pública App {

    public static void main(String[] args) lanza IOException {

        // Establece la clave de licencia de IronPDF (requerida para uso en producción)
        Licencia.setLicenseKey("IronPDF-MYLICENSE-KEY-1EF01");

        // Renderiza contenido HTML en un documento PDF
        PdfDocument pdf = PdfDocument.renderHtmlAsPdf("<h1>.NET6</h1>");

        // Define las cadenas de búsqueda y reemplazo
        Cadena oldText = ".NET6";
        Cadena newText = ".NET7";

        // Reemplaza todas las instancias de oldText solo en la primera página
        // PageSelection.firstPage() apunta al índice de página 0
        pdf.replaceText(PageSelection.firstPage(), textoantiguo, textonuevo);

        // Guarda el PDF modificado
        pdf.saveAs("reemplazarTexto.pdf");
    }
}

ConsejosCarga la clave de licencia una vez al inicio de la aplicación en lugar de antes de cada operación individual. Esto evita la sobrecarga de inicialización repetida al procesar múltiples documentos en la misma sesión JVM.

El método replaceText se integra naturalmente con el flujo de trabajo de conversión de HTML a PDF de IronPDF. Primero renderiza la plantilla HTML, luego aplica el reemplazo de texto para inyectar valores dinámicos. Esto mantiene tu HTML limpio mientras sigue produciendo un resultado personalizado. Para documentos cargados desde disco, pasa la ruta del archivo a PdfDocument.fromFile en lugar de usar renderHtmlAsPdf.

¿Qué aspecto tiene el resultado?


¿Cómo reemplazo texto en múltiples páginas?

Para apuntar a páginas específicas en lugar de solo la primera, pasa una lista de números de página indexados desde cero a PageSelection.pageRange(List<Integer>). El método reemplaza el texto de búsqueda en cada página de la lista y deja todas las demás páginas intactas. Este patrón se adapta a documentos con encabezados o pies de página consistentes en páginas conocidas, o informes generados en lotes donde una cadena de versión solo aparece en ciertas páginas.

¿Qué páginas se modifican al usar una lista de páginas?

En el ejemplo a continuación, se crea un PDF de tres páginas desde HTML. El reemplazo se ejecuta en las páginas 0 y 2 (la primera y tercera páginas). La página 1 (la segunda página) mantiene el texto original sin cambios. Los índices de página siempre comienzan en 0, en consonancia con las convenciones de arrays basadas en cero de Java.

```java :title=Reemplazar texto en varias páginas específicas //:path=/static-assets/pdf/content-code-examples/how-to/find-replace-text/replace-text-multiple-pages.java importar IronPDF.*; importar IronPDF; importar java.io.IOException; import java.util.Arrays; import java.util.List;

clase pública App {

public static void main(String[] args) lanza IOException {

// Configura la clave de licencia de IronPDF Licencia.setLicenseKey("IronPDF-MYLICENSE-KEY-1EF01");

// Crea un PDF de 3 páginas a partir de HTML utilizando saltos de página CSS String html = "

.NET6

" + "

Esta es la 1ª página

" + "
" + "

Esta es la 2ª página

" + "
" + "

.NET6

" + "

Esta es la 3ª página

";

PdfDocument pdf = PdfDocument.renderHtmlAsPdf(html);

    Cadena oldText = ".NET6";
    Cadena newText = ".NET7";

// Las páginas se indexan desde cero: 0 = primera página, 2 = tercera página // El índice de la página 1 (segunda página) se excluye intencionalmente List pages = Arrays.asList(0, 2);

pdf.replaceText(PageSelection.pageRange(pages), oldText, newText);

pdf.saveAs("replaceTextOnMultiplePages.pdf"); } }


Por favor notaTodos los índices de página en IronPDF siguen un índice basado en cero. La página `0` es la primera página, la página `1` es la segunda, y así sucesivamente.
Al crear PDFs de múltiples páginas desde HTML, utiliza la [propiedad CSS `page-break-after`](https://developer.mozilla.org/en-US/docs/Web/CSS/page-break-after) para controlar dónde caen los límites de página. Configurar el [tamaño de papel personalizado](https://ironpdf.com/java/examples/custom-pdf-paper-size/) correcto y la [orientación de la página](https://ironpdf.com/java/examples/pdf-page-orientation/) antes de renderizar asegura que las posiciones del contenido coincidan con sus expectativas cuando se ejecuta el reemplazo de texto. Después de guardar, verifique el resultado abriendo el PDF y confirmando que solo las páginas objetivo cambiaron. ### ¿Qué aspecto tiene el resultado? <iframe loading="lazy" src="/static-assets/ironpdf-java/howto/find-replace-text/replaceTextOnMultiplePages.pdf" width="100%" height="400px"></iframe> <hr> ## ¿Qué opciones de selección de página hay disponibles? La clase `PageSelection` proporciona métodos de fábrica estáticos que cubren todos los patrones comunes de selección. No se necesita creación de instancias; llame a los métodos directamente en la clase. Todos los índices son basados en cero. ### ¿Qué métodos apuntan a una sola página vs. múltiples páginas? <table class="content__data-table" data-content-table> <caption>Métodos de fábrica PageSelection para la API replaceText</caption> | Método | Descripción| |---|---| | `PageSelection.allPages()` |Selecciona cada página en el documento| | `PageSelection.firstPage()` | Selecciona la página en el índice `0` | | `PageSelection.lastPage()` |Selecciona la última página independientemente de la longitud del documento| | `PageSelection.singlePage(int pageIndex)` |Selecciona una página específica por índice basado en cero| | `PageSelection.pageRange(int startIndex, int endIndex)` | Selecciona un rango contiguo desde `startIndex` hasta `endIndex` inclusivo | | `PageSelection.pageRange(List<Integer> pageList)` | Selecciona páginas en cualquier conjunto arbitrario de índices (por ejemplo, `[0, 2]` selecciona las páginas 1 y 3) | </table> ### ¿Cuándo debo utilizar cada método PageSelection? `allPages()` es la opción más simple para encontrar y reemplazar de manera global: cada instancia del texto objetivo en todo el documento se reemplaza en una sola llamada. Usa `firstPage()` o `lastPage()` para ediciones rápidas a páginas de portada o pies de última página sin tocar el cuerpo. Elige `pageRange(int, int)` cuando el texto aparece en un conjunto secuencial de páginas como un capítulo o sección. Usa `pageRange(List<Integer>)` cuando las páginas objetivo no sean contiguas; por ejemplo, al reemplazar una cadena de versión que solo aparece en las páginas 1, 3 y 7. Al trabajar con [PDFs fusionados](https://ironpdf.com/java/examples/split-pdfs/) o documentos que incluyen [marcadores y esquemas](https://ironpdf.com/java/how-to/bookmarks/), identifique primero el rango de páginas para cada sección lógica, luego aplique reemplazos específicos para evitar modificar encabezados o pies de página compartidos de manera accidental. La [referencia de API de IronPDF for Java](https://ironpdf.com/object-reference/api/) lista todas las sobrecargas de `PageSelection` con documentación completa de parámetros.
ImportanteEnvuelve las llamadas `replaceText` en un bloque try-catch. El método lanza una excepción en tiempo de ejecución cuando el texto de búsqueda especificado no se encuentra en ninguna de las páginas objetivo. Un paso de validación (extracción de texto y confirmación de que la cadena está presente) previene fallos inesperados en producción.
### ¿Cómo reemplazo texto en todas las páginas de una vez? `PageSelection.allPages()` realiza un reemplazo en todo el documento en una sola llamada, que es el enfoque más eficiente para sustituciones de token a nivel global. El siguiente ejemplo carga un PDF del disco y reemplaza cada ocurrencia de un token de marcador de posición en todo el documento: ```java :title=Reemplazar texto en todas las páginas //:path=/static-assets/pdf/content-code-examples/how-to/find-replace-text/replace-text-all-pages.java importar IronPDF.*; importar IronPDF; importar java.io.IOException; importar java.nio.file.Paths; clase pública App { public static void main(String[] args) lanza IOException { // Configura la clave de licencia de IronPDF Licencia.setLicenseKey("IronPDF-MYLICENSE-KEY-1EF01"); // Carga un PDF existente del disco PdfDocument pdf = PdfDocument.fromFile(Paths.get("contract-template.pdf")); // Reemplaza el token de marcador de posición en cada página simultáneamente // Esto es equivalente a llamar a replaceText para cada página individualmente pdf.replaceText(PageSelection.allPages(), "{{VERSION}}", "2.0"); // Guarda el documento actualizado pdf.saveAs("contract-v2.pdf"); } }

Este patrón combina naturalmente con flujos de trabajo basados en plantillas donde el mismo marcador de posición aparece en encabezados, pies de página o texto del cuerpo en muchas páginas. Para documentos de una sola página, allPages() y firstPage() producen resultados idénticos. Prefiere allPages() cuando el número de páginas pueda variar en tiempo de ejecución.


¿Cómo manejo escenarios comunes de reemplazo de texto?

El reemplazo de texto en aplicaciones Java cubre varios patrones que van más allá de una simple búsqueda y reemplazo. Comprender cómo se comporta el método en cada caso previene errores antes de que aparezcan en producción.

¿Cómo afecta el emparejamiento con distinción de mayúsculas y minúsculas los resultados?

replaceText realiza coincidencias exactas y distingue entre mayúsculas y minúsculas. Las cadenas "Version 1.0", "version 1.0" y "VERSION 1.0" son tratadas como tres valores distintos. Antes de ejecutar un reemplazo en un documento cargado desde el disco, confirme el uso exacto de mayúsculas y minúsculas revisando la fuente original o extrayendo texto del PDF e inspeccionándolo programáticamente.

¿Cómo reemplazo texto en formularios PDF?

Los PDFs que contienen campos de formulario interactivos almacenan sus valores de texto por separado del flujo de contenido del documento, según lo definido en la especificación PDF. El método replaceText opera en el flujo de contenido y no modifica los valores de los campos de formulario. Para actualizar texto dentro de los campos de formulario, use la API dedicada para creación y edición de formularios de IronPDF. Combinar ambos enfoques en el mismo documento es seguro: las actualizaciones de campos de formulario y los reemplazos de flujo de contenido no interfieren entre sí.

¿Cómo actualizo texto en flujos de trabajo basados en plantillas?

Un patrón común es mantener una plantilla PDF con tokens de marcador de posición (por ejemplo, {{CUSTOMER_NAME}} o [INVOICE_DATE]) y reemplazarlos en tiempo de ejecución con valores reales. Llama a replaceText una vez por marcador de posición, usando PageSelection.allPages() para que el reemplazo cubra cada ubicación donde aparece el token. Para documentos generados a partir de HTML, este flujo de trabajo funciona igualmente bien con renderHtmlAsPdf seguido de una serie de llamadas de reemplazo. Combínelo con marca de agua PDF o fondos y primeros planos para agregar branding o marcas de confidencialidad al resultado final.

¿Cuáles son los próximos pasos para el reemplazo de texto en PDF en Java?

Esta guía cubrió el reemplazo de una sola página con PageSelection.firstPage(), reemplazo selectivo de múltiples páginas con PageSelection.pageRange(), reemplazo en todo el documento con PageSelection.allPages() y el conjunto completo de métodos de fábrica PageSelection. La misma API replaceText funciona ya sea que el documento se haya renderizado desde HTML, cargado desde disco o ensamblado mediante la combinación de múltiples fuentes.

Inicie una prueba gratuita de IronPDF for Java y ejecute los ejemplos de código anteriores con sus propios documentos. Cuando esté listo para desplegar en producción, revise las opciones de licencia. Las licencias son por desarrollador e incluyen un año de actualizaciones de producto.

¿Listo para ver qué más puede hacer IronPDF for Java? Explore las guías completas de cómo-hacer de IronPDF for Java para tutoriales sobre generación de PDFs, anotación, firmas digitales, compresión y más.

Preguntas Frecuentes

¿Cómo se sustituye el texto de un PDF con Java?

Usa el método replaceText de IronPDF. Llama a pdf.replaceText(PageSelection.firstPage(), "oldText", "newText") para reemplazar todas las instancias del texto antiguo en la página especificada. IronPDF encuentra y reemplaza cada ocurrencia mientras preserva el formato original.

¿Qué parámetros acepta el método replaceText?

El método acepta tres parámetros: un PageSelection para especificar qué páginas modificar, un String con el texto a encontrar, y un String con el texto de reemplazo. Por ejemplo, pdf.replaceText(PageSelection.firstPage(), ".NET6", ".NET7") reemplaza todas las instancias en la primera página.

¿Puedo sustituir texto sólo en determinadas páginas?

Sí. Usa PageSelection.firstPage() para la página 0, PageSelection.lastPage() para la última página, PageSelection.singlePage(n) para cualquier página por índice basado en cero, o PageSelection.pageRange() con una lista de enteros para páginas no contiguas.

¿Qué ocurre si no se encuentra el texto a reemplazar?

IronPDF lanza una excepción en tiempo de ejecución (Exception_RemoteException) cuando no se puede encontrar el texto objetivo en las páginas seleccionadas. Envuelve la llamada en un bloque try-catch y opcionalmente extrae el texto del PDF primero para verificar que la cadena exista antes de llamar a replaceText.

¿La coincidencia de texto distingue entre mayúsculas y minúsculas?

Sí. El método replaceText realiza una coincidencia exacta y distingue mayúsculas de minúsculas. Las cadenas "Version 1.0", "version 1.0", y "VERSION 1.0" se tratan como tres valores distintos. Verifica el caso exacto antes de llamar al método.

¿El replaceText modifica los valores de los campos de formulario?

No. El método replaceText opera en el flujo de contenido del PDF y no modifica los valores de campos de formulario interactivos. Para actualizar los campos de formulario, usa la API dedicada a la edición de formularios de IronPDF a través de los métodos de formulario de PdfDocument.

¿Cómo reemplazo un token en todas las páginas de una vez?

Usa PageSelection.allPages() como el primer argumento de replaceText. Esto reemplaza cada instancia del texto objetivo en todas las páginas en una sola llamada, lo que es el enfoque preferido para flujos de trabajo orientados por plantillas con marcadores de posición a nivel de documento.

Darrius Serrant
Ingeniero de Software Full Stack (WebOps)

Darrius Serrant tiene una licenciatura en Ciencias de la Computación de la Universidad de Miami y trabaja como Ingeniero de Marketing WebOps Full Stack en Iron Software. Atraído por la programación desde joven, vio la computación como algo misterioso y accesible, convirtiéndolo en el ...

Leer más
¿Listo para empezar?
Versión: 2026.5 just released
Still Scrolling Icon

¿Aún desplazándote?

¿Quieres una prueba rápida?
ejecutar una muestra Mira cómo tu HTML se convierte en PDF.