Puede haber muchas razones para reemplazar una palabra o frase en el documento. Ya sea que desee borrar el contenido confidencial antes de compartir públicamente el documento o si desea ocultar/eliminar toda la información privada, como ID de correo electrónico o números de seguro social, debe redactar el contenido del documento. Este artículo lo guía sobre cómo redactar documentos de Word mediante programación en sus aplicaciones .NET usando C#. Discutiremos por separado cómo redactar ocultando el texto y cómo buscar y reemplazar el texto, las palabras o las frases usando diferentes técnicas.

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

API de redacción de .NET para reemplazar texto

GroupDocs.Redaction para .NET es la API de redacción de documentos que permite encontrar y luego reemplazar los datos deseados de documentos de varios formatos de archivo. Junto con la redacción de texto y la rasterización, la API proporciona funciones de redacción de metadatos, anotaciones, hojas de cálculo e imágenes. Los formatos de archivo compatibles de los documentos de Word, hojas de cálculo, presentaciones, imágenes y documentos PDF están disponibles en la 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](https ://www.nuget.org/packages/groupdocs.redaction).

PM> Install-Package GroupDocs.Redaction

No es necesario instalar MS Office ni ningún otro software de terceros en este proceso. Ahora comencemos y echemos un vistazo a los diferentes enfoques para lidiar con la búsqueda y el reemplazo de texto en los documentos. La siguiente es la captura de pantalla de un documento de Word que se usa en los ejemplos para demostración. Los mismos métodos funcionarán para otros formatos de documentos sin ningún cambio en el código.

Buscar y reemplazar palabras o frases en un documento de Word usando C#

El siguiente paso explica cómo encontrar cualquier palabra/frase en un documento de Word y luego reemplaza todas las apariciones con algún otro texto dentro de la aplicación C#.

  • Cargue el documento de Word (DOC/DOCX) usando la clase Redactor.
  • Encuentre la frase o palabra exacta, usando la clase ExactPhraseRedaction con [ReplacementOptions](https://apireference.groupdocs. com/redaction/net/groupdocs.redaction.redactions/replacementoptions).
  • Utilice el método Aplicar de Redactor para aplicar la redacción.
  • Guarde los cambios usando el método Guardar.

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

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

La salida del código es la siguiente.

Buscar y reemplazar con distinción entre mayúsculas y minúsculas en archivos de Word usando C#

Del mismo modo, puede realizar la redacción con distinción entre mayúsculas y minúsculas de un documento de Word encontrando la palabra exacta y reemplazándola por cualquier otra. El siguiente código reemplaza la existencia de la palabra “John Doe” en un archivo DOCX usando C#, pero esta vez, la búsqueda distinguirá entre mayúsculas y minúsculas.

// 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.docx"))
{
  redactor.Apply(new ExactPhraseRedaction("John Doe", true /*isCaseSensitive*/, new ReplacementOptions("[censored]")));
  redactor.Save();
}

La salida del código es la siguiente.

Reemplazar texto en archivos de Word usando expresiones regulares (RegEx) usando C#

Para buscar y reemplazar cualquier patrón de texto en archivos de Word (DOC, DOCX), puede usar expresiones regulares. Los siguientes pasos le permiten redactar un documento de Word con RegEx usando C#.

  • Cargue el documento de Word usando la clase Redactor.
  • Encuentre la coincidencia de expresiones regulares usando la clase RegexRedaction con ReplacementOptions.
  • Utilice el método Aplicar para reemplazar todos los textos de coincidencia de expresiones regulares.
  • Utilice el método Guardar para obtener el archivo de Word redactado.

El siguiente código muestra cómo encontrar un patrón de texto en un archivo de Word 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.docx"))
{
  redactor.Apply(new RegexRedaction("\\d{2}\\s*\\d{2}[^\\d]*\\d{6}", new ReplacementOptions("[censored]")));
  redactor.Save();
}

La salida del código anterior es la siguiente.

Ocultar texto confidencial en documentos de Word con cuadro de color usando C#

Si no desea reemplazar su contenido privado sino solo cubrirlo, la API le permite ocultar ese contenido dibujando un cuadro sobre él. El siguiente código coloca el rectángulo negro sobre el texto previsto para oscurecer el texto mediante C#.

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

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, aprendió a buscar texto en archivos de Word (DOC, DOCX) utilizando diferentes técnicas y a reemplazar los hallazgos de diferentes maneras. Más precisamente, discutimos cómo encontrar texto, palabra o frase, incluso si se trata de una búsqueda que distingue entre mayúsculas y minúsculas o si se usa una expresión regular en C#. Más tarde, reemplazamos los resultados de la búsqueda con algún otro texto o colocamos el cuadro rectangular de color sobre el texto buscado.

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

Ver también