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#.
- API de C# para buscar y reemplazar texto en PDF
- Buscar y reemplazar texto en PDF usando C#
- Reemplazar texto en una página particular en PDF
- Reemplazar texto en la región de la página PDF
- Buscar y reemplazar texto en PDF usando Regex
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.
- 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 todas las páginas del PDF usando Document.Pages.Accept(TextFragmentAbsorber).
- Obtenga los fragmentos de texto extraídos en el objeto TextFragmentCollection.
- Recorra la TextFragmentCollection encontrada y reemplace el texto en cada fragmento.
- Guarde el documento PDF actualizado usando el método Document.Save(String).
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.
- 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.Pages[0].Accept(TextFragmentAbsorber).
- Defina la región de la página usando la clase Rectangle.
- Recorra la colección TextFragmentAbsorber.TextFragments y reemplace el texto en cada fragmento.
- Guarde el documento PDF actualizado usando el método Document.Save(String).
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.
- 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.
- Cree una instancia de la clase TextSearchOptions y pase verdadero a su constructor para habilitar la búsqueda basada en expresiones regulares.
- Asigne el objeto TextSearchOptions a la propiedad TextFragmentAbsorber.TextSearchOptions.
- Acepte el absorbente de texto para la página deseada usando Document.Pages[0].Accept(TextFragmentAbsorber).
- Defina la región de la página usando la clase Rectangle.
- Recorra la colección TextFragmentAbsorber.TextFragments 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 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.