Las plantillas se utilizan mucho para generar documentos personalizados. Este artículo ofrece una guía sobre cómo buscar y reemplazar texto y palabras en documentos PDF usando C#. Discutiremos por separado cómo reemplazar palabras y frases mediante programación, el reemplazo de palabras con búsqueda que distingue entre mayúsculas y minúsculas, el reemplazo mediante expresiones regulares. Finalmente, también aprenderemos cómo ocultar la cadena buscada usando C#.

A continuación se tratarán los siguientes temas:

API de redacción de .NET para reemplazar texto

GroupDocs presenta GroupDocs.Redaction para .NET, la API para redactar, ocultar o eliminar contenido e incluso metadatos de documentos, presentaciones, hojas de cálculo, archivos PDF e imágenes dentro de la aplicación .NET. Para más detalles sobre la API, visita su documentación.

Puede descargar el instalador DLL o MSI desde la sección de descargas o instalar la API en su aplicación .NET a través de NuGet.

PM> Install-Package GroupDocs.Redaction

No es necesario instalar ningún editor de PDF ni ningún otro software de terceros para la redacción. La siguiente es la captura de pantalla de un documento PDF que se utiliza en los siguientes ejemplos. El mismo enfoque funcionará para otros formatos de documentos con muy pocos o ningún cambio en el código.

Buscar y reemplazar palabras o frases en PDF usando C#

Puede utilizar esta función para ocultar datos confidenciales y también para crear un nuevo documento personalizado a partir de la plantilla. El siguiente paso explica cómo encontrar cualquier palabra/frase en un documento PDF con algún otro texto dentro de la aplicación C#.

El siguiente código busca y reemplaza la palabra en C#. Más precisamente, oculta todas las apariciones de “John Doe” reemplazándolo con la palabra “[censurado]”.

// Encuentre la frase exacta y reemplácela con algún otro texto usando C#
using (Redactor redactor = new Redactor(@"path/document.pdf"))
{
  redactor.Apply(new ExactPhraseRedaction("John Doe", new ReplacementOptions("[censored]")));
  redactor.Save(new SaveOptions() { AddSuffix = true, RasterizeToPDF = false });
}

La salida del código es la siguiente.

Buscar y reemplazar texto o frase que distingue entre mayúsculas y minúsculas en PDF usando C#

Puede realizar la búsqueda y redacción con distinción entre mayúsculas y minúsculas. El siguiente código reemplaza la existencia que distingue entre mayúsculas y minúsculas de la palabra “John Doe” pero no “john doe” en C#.

// Encuentre la frase exacta (se distingue entre mayúsculas y minúsculas) y reemplácela con algún otro texto usando C#
using (Redactor redactor = new Redactor(@"path/document.pdf"))
{
  redactor.Apply(new ExactPhraseRedaction("John Doe", true /*isCaseSensitive*/, new ReplacementOptions("[censored]")));
  redactor.Save(new SaveOptions() { AddSuffix = true, RasterizeToPDF = false });
}

La salida del código es la siguiente.

Reemplazar texto en PDF con expresiones regulares (RegEx) usando C#

También puede reemplazar cualquier patrón de texto específico usando expresiones regulares. Los siguientes pasos le permiten redactar PDF después de la búsqueda utilizando expresiones regulares (RegEx) dentro de su aplicación .NET.

  • Cargue el documento PDF usando la clase Redactor.
  • Encuentre la coincidencia de expresiones regulares usando la clase RegexRedaction con ReplacementOptions.
  • Ingrese los cambios al documento usando el método Apply().
  • Guarde el documento redactado usando el método Save() apropiado.

El siguiente código muestra cómo encontrar un determinado patrón de texto en un documento PDF usando RegEx y luego reemplazarlo/ocultarlo con algún otro texto usando C#.

// Encuentre texto usando expresiones regulares y reemplácelo con algún otro texto usando C#
using (Redactor redactor = new Redactor(@"path/document.pdf"))
{
  redactor.Apply(new RegexRedaction("\\d{2}\\s*\\d{2}[^\\d]*\\d{6}", new ReplacementOptions("[censored]")));
  redactor.Save(new SaveOptions() { AddSuffix = true, RasterizeToPDF = false });
}

La salida del código anterior es la siguiente.

Reemplace el texto con un cuadro de color en C#

Si solo desea ocultar el contenido buscado (información privada) de su archivo PDF, simplemente puede ponerle una cubierta. La API le permite ocultar el texto buscado. El siguiente código C# coloca el rectángulo negro sobre el texto privado mencionado.

// Encuentre texto en PDF y ocúltelo dibujando un rectángulo sobre él usando C#
using (Redactor redactor = new Redactor(@"path/document.pdf"))
{
  redactor.Apply(new ExactPhraseRedaction("John Doe", new ReplacementOptions(System.Drawing.Color.Black)));
  redactor.Save(new SaveOptions() { AddSuffix = true, RasterizeToPDF = false });
}

La salida del código anterior es la siguiente.

Obtenga una licencia de API gratuita

Puede obtener una licencia temporal gratuita para utilizar la API sin las limitaciones de evaluación.

Conclusión

Para concluir, aprendimos cómo encontrar cierto texto en archivos PDF utilizando diferentes técnicas de búsqueda. Más adelante discutimos cómo redactar archivos PDF reemplazando u ocultando el texto dentro de la aplicación .NET usando C#. Más precisamente, simplemente buscamos las palabras, las frases, la búsqueda con distinción entre mayúsculas y minúsculas y el uso de expresiones regulares en C#. Por último, reemplazamos los resultados de la búsqueda con otro texto o lo ocultamos con un cuadro rectangular sobre él.

Para obtener más detalles sobre la API, visite la documentación. Para consultas, contáctenos a través del foro.

Ver también