Cómo reemplazar texto en un PDF
IronPDF for Java ofrece a los desarrolladores control directo sobre el contenido existente de PDF a través del método replaceText. Ya sea que necesites corregir un error tipográfico en un lote de informes generados, intercambiar 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 maneja el resto. Esta guía cubre el reemplazo de una sola página, el direccionamiento a múltiples páginas, cada opción disponible 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 IronPDF, carga o renderiza un PDF, llama a replaceText y guarda el resultado:
: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");
}
}
Flujo de trabajo mínimo (5 pasos)
- Descargar la biblioteca Java para reemplazar texto en un PDF
- Carga un PDF existente o renderiza uno desde HTML
- Llama a
pdf.replaceText(PageSelection, oldText, newText)para reemplazar en páginas seleccionadas - Usa métodos de
PageSelectionpara controlar qué páginas son modificadas - Guarda y exporta el PDF actualizado con
pdf.saveAs("output.pdf")
¿Cómo reemplazar texto en una sola página?
El método replaceText acepta tres argumentos: un PageSelection que dirige a una o más páginas, el texto exacto a encontrar y la cadena de reemplazo. Para dirigirse 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.

¿Qué parámetros acepta replaceText?
La firma del método es replaceText(PageSelection pageSelection, String oldText, String newText). La coincidencia distingue mayúsculas de minúsculas por defecto: "net6" y "NET6" se tratan como cadenas diferentes. 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. La dependencia Java de IronPDF se publica en Maven Central y requiere Java 8 o posterior.
: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");
}
}
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 el 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 dirigirse 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, consistente con las convenciones de arreglo basado en cero 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 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 page-break-after de CSS para controlar dónde caen los límites de página. Configurar el tamaño de papel personalizado correcto y la orientación de la página 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?
El Iron Suite juega un papel crucial en nuestras operaciones. Estas son herramientas que aumentan la eficiencia en toda la empresa, incluyendo la creación de planos y la mejora en la gestión de inventario.
¿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 direccionamiento. 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?
¿Cuándo debo utilizar cada método PageSelection?
allPages() es la opción más simple para una búsqueda y reemplazo global: cada instancia del texto objetivo a través de todo el documento se reemplaza en una sola llamada. Usa firstPage() o lastPage() para ediciones rápidas que cubran las páginas de portada o pies de página sin tocar el cuerpo. Elige pageRange(int, int) cuando el texto aparezca en un conjunto secuencial de páginas, como un capítulo o sección. Usa pageRange(List<Integer>) cuando las páginas objetivo sean no 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 o documentos que incluyen marcadores y esquemas, 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 lista todas las sobrecargas de PageSelection con documentación completa de parámetros.
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, lo cual es el acercamiento más eficiente para la sustitución global de tokens. El siguiente ejemplo carga un PDF del disco y reemplaza cada ocurrencia de un token de marcador de posición en todo el documento:
: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");
}
}
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 conteo 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, sensibles a mayúsculas y minúsculas. Las cadenas "Version 1.0", "version 1.0", y "VERSION 1.0" se tratan 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 desde 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(), el reemplazo selectivo de múltiples páginas con PageSelection.pageRange(), el reemplazo a nivel de documento con PageSelection.allPages(), y el conjunto completo de métodos de la fábrica PageSelection. La misma API de replaceText funciona ya sea que el documento haya sido renderizado desde HTML, cargado desde el disco o ensamblado al fusionar 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.


