C# buscar y reemplazar texto en PDF

La opción de buscar y reemplazar hace posible reemplazar un fragmento de texto en particular en un documento de una sola vez. De esta forma, no tiene que localizar y actualizar manualmente cada aparición del texto en todo el documento. Este artículo incluso va un paso más allá y cubre cómo automatizar la función de buscar y reemplazar texto en documentos PDF. En particular, aprenderá a buscar y reemplazar texto en un PDF en C# .NET. También demostraremos cómo reemplazar texto en una página en particular o en una región de página usando C#.

C# .NET API para buscar y reemplazar texto en PDF - Descarga gratuita

Aspose.PDF for .NET es una biblioteca de clases de C# que proporciona funciones básicas y avanzadas de manipulación de PDF para aplicaciones .NET. La API también le permite buscar y reemplazar texto en archivos PDF de diferentes maneras sin problemas. Puede descargar la DLL de la API o instalarla mediante NuGet.

PM> Install-Package Aspose.PDF

Buscar y reemplazar texto en PDF usando C#

Los siguientes son pasos para buscar y reemplazar texto en un documento PDF.

El siguiente ejemplo de código muestra cómo buscar y reemplazar texto en PDF usando C#.

// Abrir documento
Document pdfDocument = new Document("Document.pdf");

// Cree un objeto TextAbsorber para encontrar todas las instancias de la frase de búsqueda de entrada
TextFragmentAbsorber textFragmentAbsorber = new TextFragmentAbsorber("text");

// Aceptar el absorbedor para todas las páginas.
pdfDocument.Pages.Accept(textFragmentAbsorber);

// Obtener los fragmentos de texto extraídos
TextFragmentCollection textFragmentCollection = textFragmentAbsorber.TextFragments;

// Bucle a través de los fragmentos
foreach (TextFragment textFragment in textFragmentCollection)
{
    // Actualizar texto y otras propiedades
    textFragment.Text = "TEXT";
    textFragment.TextState.Font = FontRepository.FindFont("Verdana");
    textFragment.TextState.FontSize = 22;
    textFragment.TextState.ForegroundColor = Aspose.Pdf.Color.FromRgb(System.Drawing.Color.Blue);
    textFragment.TextState.BackgroundColor = Aspose.Pdf.Color.FromRgb(System.Drawing.Color.Green);
}
            
// Guarde el documento PDF resultante.
pdfDocument.Save("updated-document.pdf");

C# Reemplazar texto en una página PDF particular

Los siguientes son pasos para buscar y reemplazar texto en una página particular en un documento PDF.

  • Use la clase Document para cargar el documento PDF usando su ruta.
  • Cree una instancia de la clase TextFragmentAbsorber y proporcione la frase de búsqueda a su constructor.
  • Acepte el absorbente de texto para la página deseada usando [Document.Pages1.Accept(TextFragmentAbsorber)]12.
  • Recorra la colección TextFragmentAbsorber.TextFragments encontrada y reemplace el texto en cada fragmento.
  • Guarde el documento PDF actualizado utilizando el método Document.Save(String).

El siguiente ejemplo de código muestra cómo buscar y reemplazar texto en una página particular del PDF usando C#.

// Abrir documento
Document pdfDocument = new Document("Document.pdf");

// Cree un objeto TextAbsorber para encontrar todas las instancias de la frase de búsqueda de entrada
TextFragmentAbsorber textFragmentAbsorber = new TextFragmentAbsorber("text");

// Aceptar el absorbedor para deseado
pdfDocument.Pages[1].Accept(textFragmentAbsorber);

// Obtener los fragmentos de texto extraídos
TextFragmentCollection textFragmentCollection = textFragmentAbsorber.TextFragments;

// Bucle a través de los fragmentos
foreach (TextFragment textFragment in textFragmentCollection)
{
    // Actualizar texto y otras propiedades
    textFragment.Text = "TEXT";
    textFragment.TextState.Font = FontRepository.FindFont("Verdana");
    textFragment.TextState.FontSize = 22;
    textFragment.TextState.ForegroundColor = Aspose.Pdf.Color.FromRgb(System.Drawing.Color.Blue);
    textFragment.TextState.BackgroundColor = Aspose.Pdf.Color.FromRgb(System.Drawing.Color.Green);
}

// Guarde el documento PDF resultante.
pdfDocument.Save("updated-document.pdf");

Reemplazar texto en la región de la página PDF en C#

También puede buscar y reemplazar texto en una región particular de la página en un documento PDF. Los siguientes pasos muestran cómo definir una región en particular y luego reemplazar el texto dentro de ella.

El siguiente ejemplo de código muestra cómo buscar y reemplazar texto en una región de página particular en un PDF usando C#.

// cargar archivo PDF
Document pdf = new Document("Document.pdf");

// crear una instancia del objeto TextFragment Absorber
TextFragmentAbsorber TextFragmentAbsorberAddress = new TextFragmentAbsorber();

// buscar texto dentro de la página enlazada
TextFragmentAbsorberAddress.TextSearchOptions.LimitToPageBounds = true;

// especificar la región de la página para las opciones de TextSearch
TextFragmentAbsorberAddress.TextSearchOptions.Rectangle = new Rectangle(100, 100, 200, 200);

// buscar texto desde la primera página del archivo PDF
pdf.Pages[1].Accept(TextFragmentAbsorberAddress);

// iterar a través de TextFragment individual
foreach (TextFragment tf in TextFragmentAbsorberAddress.TextFragments)
{
    // actualizar texto a caracteres en blanco
    tf.Text = "";
}

// guarde el archivo PDF actualizado después de reemplazar el texto
pdf.Save("output.pdf");

C# Reemplazar texto en PDF con expresión regular (regex)

También puede usar expresiones regulares para buscar y reemplazar las ocurrencias de texto que coincidan con un patrón particular. Para esto, solo necesita proporcionar una expresión regular en lugar de la frase de búsqueda simple y usar TextSearchOptions. Los siguientes son los pasos para hacerlo.

El siguiente ejemplo de código muestra cómo buscar y reemplazar texto en un PDF usando una expresión regular usando C#.

// Abrir documento
Document pdfDocument = new Document("Document.pdf");

// Cree un objeto TextAbsorber para encontrar todas las frases que coincidan con la expresión regular
TextFragmentAbsorber textFragmentAbsorber = new TextFragmentAbsorber("\\d{4}-\\d{4}"); // Like 1999-2000

// Establezca la opción de búsqueda de texto para especificar el uso de expresiones regulares
TextSearchOptions textSearchOptions = new TextSearchOptions(true);
textFragmentAbsorber.TextSearchOptions = textSearchOptions;

// Aceptar el absorbedor para una sola página
pdfDocument.Pages[1].Accept(textFragmentAbsorber);

// Obtener los fragmentos de texto extraídos
TextFragmentCollection textFragmentCollection = textFragmentAbsorber.TextFragments;

// Bucle a través de los fragmentos
foreach (TextFragment textFragment in textFragmentCollection)
{
    // Actualizar texto y otras propiedades
    textFragment.Text = "New Phrase";
    // Establecer en una instancia de un objeto.
    textFragment.TextState.Font = FontRepository.FindFont("Verdana");
    textFragment.TextState.FontSize = 22;
    textFragment.TextState.ForegroundColor = Aspose.Pdf.Color.FromRgb(System.Drawing.Color.Blue);
    textFragment.TextState.BackgroundColor = Aspose.Pdf.Color.FromRgb(System.Drawing.Color.Green);
}

// Guardar PDF
pdfDocument.Save("output.pdf");

Conclusión

La automatización de PDF se adopta ampliamente en estos días para manipular documentos PDF desde la web o aplicaciones de escritorio. Este artículo cubrió una característica útil de automatización de PDF para encontrar y reemplazar texto en PDF en C#. La guía paso a paso y los ejemplos de código han mostrado cómo buscar y reemplazar texto en un PDF completo, una página particular en PDF o una región de página. Puede explorar funciones más avanzadas utilizando la documentación de la API.

Ver también