Cómo sustituir texto en un PDF

Chaknith related to Cómo sustituir texto en un PDF
Chaknith Bin
8 de octubre, 2023
Actualizado 11 de febrero, 2025
Compartir:
This article was translated from English: Does it need improvement?
Translated
View the article in English

La función de reemplazar texto en un PDF es extremadamente útil para realizar ediciones rápidas y precisas del contenido, como corregir errores tipográficos, actualizar información o personalizar plantillas para distintos fines. Esto puede ahorrar una cantidad significativa de tiempo y esfuerzo, especialmente cuando se trata de documentos que requieren revisiones o personalizaciones frecuentes.

IronPDF ofrece una función para sustituir texto en los PDF. Esta función convierte a IronPDF en una herramienta inestimable para desarrolladores y profesionales que necesitan automatizar o personalizar contenidos PDF.

Comience con IronPDF

Comience a usar IronPDF en su proyecto hoy con una prueba gratuita.

Primer Paso:
green arrow pointer



Ejemplo de sustitución de texto

La acción 'reemplazar texto' puede aplicarse a cualquier objeto PdfDocument, ya sea recién renderizado o importado. Puede utilizar el método ReplaceTextOnAllPages proporcionando tanto el texto antiguo como el nuevo para reemplazo. Si el método no puede localizar el texto antiguo especificado, lanzará una excepción con el mensaje 'Error al reemplazar el texto: no se pudo encontrar el texto '.NET6''.

En el siguiente ejemplo de código, demostramos cómo reemplazar texto en un documento PDF recién renderizado que contiene el texto '.NET6'.

Código

:path=/static-assets/pdf/content-code-examples/how-to/find-replace-text-all-page.cs
using IronPdf;

ChromePdfRenderer renderer = new ChromePdfRenderer();

PdfDocument pdf = renderer.RenderHtmlAsPdf("<h1>.NET6</h1>");

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

// Replace text on all pages
pdf.ReplaceTextOnAllPages(oldText, newText);

pdf.SaveAs("replaceText.pdf");
Imports IronPdf

Private renderer As New ChromePdfRenderer()

Private pdf As PdfDocument = renderer.RenderHtmlAsPdf("<h1>.NET6</h1>")

Private oldText As String = ".NET6"
Private newText As String = ".NET7"

' Replace text on all pages
pdf.ReplaceTextOnAllPages(oldText, newText)

pdf.SaveAs("replaceText.pdf")
$vbLabelText   $csharpLabel

Reemplazar texto con salto de línea

La acción de reemplazar texto admite caracteres de nueva línea, lo que le permite reemplazar texto antiguo con una nueva cadena que incluye nuevas líneas integradas para mejorar el formato y la claridad visual.

Para lograr esto, adiciona caracteres de nueva línea (\n) a la nueva cadena. Usando el ejemplo anterior, reemplazamos newText con .NET7\nnewline en lugar de solo .NET7.


Reemplazar texto en páginas especificadas

Para una mayor precisión en el reemplazo de texto dentro de un documento, IronPDF también ofrece opciones para reemplazar texto en una o varias páginas, según sus necesidades. Puede usar el método ReplaceTextOnPage para reemplazar texto en una página específica y el método ReplaceTextOnPages para reemplazar texto en varias páginas especificadas del documento.

Consejos
Todos los índices de páginas siguen una indexación basada en cero.

Reemplazar texto en una sola página

:path=/static-assets/pdf/content-code-examples/how-to/find-replace-text-on-single-page.cs
using IronPdf;

ChromePdfRenderer renderer = new ChromePdfRenderer();

PdfDocument pdf = renderer.RenderHtmlAsPdf("<h1>.NET6</h1>");

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

// Replace text on page 1
pdf.ReplaceTextOnPage(0, oldText, newText);

pdf.SaveAs("replaceTextOnSinglePage.pdf");
Imports IronPdf

Private renderer As New ChromePdfRenderer()

Private pdf As PdfDocument = renderer.RenderHtmlAsPdf("<h1>.NET6</h1>")

Private oldText As String = ".NET6"
Private newText As String = ".NET7"

' Replace text on page 1
pdf.ReplaceTextOnPage(0, oldText, newText)

pdf.SaveAs("replaceTextOnSinglePage.pdf")
$vbLabelText   $csharpLabel

Reemplazar texto en varias páginas

:path=/static-assets/pdf/content-code-examples/how-to/find-replace-text-on-multiple-pages.cs
using IronPdf;

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>";

ChromePdfRenderer renderer = new ChromePdfRenderer();

PdfDocument pdf = renderer.RenderHtmlAsPdf(html);

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

int[] pages = { 0, 2 };

// Replace text on page 1 & 3
pdf.ReplaceTextOnPages(pages, oldText, newText);

pdf.SaveAs("replaceTextOnMultiplePages.pdf");
Imports IronPdf

Private html As String = "<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>"

Private renderer As New ChromePdfRenderer()

Private pdf As PdfDocument = renderer.RenderHtmlAsPdf(html)

Private oldText As String = ".NET6"
Private newText As String = ".NET7"

Private pages() As Integer = { 0, 2 }

' Replace text on page 1 & 3
pdf.ReplaceTextOnPages(pages, oldText, newText)

pdf.SaveAs("replaceTextOnMultiplePages.pdf")
$vbLabelText   $csharpLabel

Salida PDF


Usar fuente personalizada

El mismo método ReplaceTextOnPage también te permite usar una fuente y tamaño personalizados. Primero, la fuente debe añadirse al PDF, tras lo cual puedes pasar el nombre de la fuente como un parámetro al método. En el siguiente ejemplo, utilizaré la Fuente Pixelify Sans.

:path=/static-assets/pdf/content-code-examples/how-to/find-replace-text-custom-font.cs
using IronPdf;
using System.IO;

ChromePdfRenderer renderer = new ChromePdfRenderer();
PdfDocument pdf = renderer.RenderHtmlAsPdf("<h1>Use custom font .NET6</h1>");

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

// Add custom font
byte[] fontByte = File.ReadAllBytes(@".\PixelifySans-VariableFont_wght.ttf");
var pdfFont = pdf.Fonts.Add(fontByte);

// Use custom font
pdf.ReplaceTextOnPage(0, oldText, newText, pdfFont, 24);

pdf.SaveAs("replaceCustomText.pdf");
Imports IronPdf
Imports System.IO

Private renderer As New ChromePdfRenderer()
Private pdf As PdfDocument = renderer.RenderHtmlAsPdf("<h1>Use custom font .NET6</h1>")

Private oldText As String = ".NET6"
Private newText As String = ".NET7"

' Add custom font
Private fontByte() As Byte = File.ReadAllBytes(".\PixelifySans-VariableFont_wght.ttf")
Private pdfFont = pdf.Fonts.Add(fontByte)

' Use custom font
pdf.ReplaceTextOnPage(0, oldText, newText, pdfFont, 24)

pdf.SaveAs("replaceCustomText.pdf")
$vbLabelText   $csharpLabel

Resultado

Usar fuente personalizada
Chaknith related to Resultado
Ingeniero de software
Chaknith es el Sherlock Holmes de los desarrolladores. La primera vez que se le ocurrió que podría tener futuro en la ingeniería de software fue cuando hacía retos de código por diversión. Su trabajo se centra en IronXL e IronBarcode, pero se enorgullece de ayudar a los clientes con todos los productos. Chaknith aprovecha sus conocimientos, adquiridos hablando directamente con los clientes, para ayudar a mejorar los propios productos. Sus comentarios anecdóticos van más allá de los tickets de Jira y apoyan el desarrollo de productos, la documentación y el marketing, para mejorar la experiencia general del cliente.Cuando no está en la oficina, se le puede encontrar aprendiendo sobre aprendizaje automático, codificación y senderismo.