Pode haver muitas razões para substituir uma palavra ou frase no documento. Se você deseja apagar o conteúdo confidencial antes de compartilhar publicamente o documento ou deseja ocultar/remover todas as informações privadas, como IDs de e-mail ou números de previdência social, é necessário redigir o conteúdo do documento. Este artigo orienta você sobre como redigir documentos do Word programaticamente em seus aplicativos .NET usando C#. Discutiremos separadamente como redigir ocultando o texto e como encontrar e substituir o texto, as palavras ou as frases usando diferentes técnicas.

Os seguintes tópicos serão abordados a seguir:

API de redação .NET para substituir texto

GroupDocs.Redaction para .NET é a API de redação de documentos que permite localizar e substituir os dados pretendidos de documentos de vários formatos de arquivo. Juntamente com a redação e rasterização de texto, a API fornece recursos de redação de metadados, anotações, planilhas e imagens. Os formatos de arquivo suportados dos documentos do Word, planilhas, apresentações, imagens e documentos PDF estão disponíveis na documentação.

Você pode baixar o instalador de DLLs ou MSI na seção de downloads ou instalar a API em seu aplicativo .NET via NuGet.

PM> Install-Package GroupDocs.Redaction

Não há necessidade de instalar o MS Office ou qualquer outro software de terceiros neste processo. Vamos agora começar e dar uma olhada em diferentes abordagens para lidar com a localização e substituição de texto nos documentos. A seguir está a captura de tela de um documento do Word usado nos exemplos para demonstração. Os mesmos métodos funcionarão para outros formatos de documento sem nenhuma alteração no código.

Localizar e substituir palavras ou frases no documento do Word usando C#

A etapa a seguir explica como localizar qualquer palavra/frase em um documento do Word e, em seguida, substitui todas as ocorrências por algum outro texto no aplicativo C#.

O código a seguir localiza e substitui a palavra em C#. Mais precisamente, ele substitui todas as ocorrências de “John Doe” por “[censurado]”.

// Encontre a frase exata e substitua-a por outro texto usando C #
using (Redactor redactor = new Redactor(@"path/document.docx"))
{
  redactor.Apply(new ExactPhraseRedaction("John Doe", new ReplacementOptions("[censored]")));
  redactor.Save();
}

A saída do código é a seguinte.

Pesquisa e substituição com distinção entre maiúsculas e minúsculas em arquivos do Word usando C#

Da mesma forma, você pode executar a redação com distinção entre maiúsculas e minúsculas de um documento do Word localizando a palavra exata e substituindo-a por qualquer outra. O código a seguir substitui a existência da palavra “John Doe” em um arquivo DOCX usando C#, mas desta vez, a pesquisa fará distinção entre maiúsculas e minúsculas.

// Encontre a frase exata (diferencia maiúsculas de minúsculas) e substitua-a por algum outro texto usando C#
using (Redactor redactor = new Redactor(@"path/document.docx"))
{
  redactor.Apply(new ExactPhraseRedaction("John Doe", true /*isCaseSensitive*/, new ReplacementOptions("[censored]")));
  redactor.Save();
}

A saída do código é a seguinte.

Substituir texto em arquivos do Word usando expressões regulares (RegEx) usando C#

Para localizar e substituir qualquer padrão de texto em arquivos do Word (DOC, DOCX), você pode usar expressões regulares. As etapas a seguir permitem que você redija um documento do Word com RegEx usando C#.

  • Carregue o documento do Word usando a classe Redactor.
  • Encontre a correspondência regex usando a classe RegexRedaction com ReplacementOptions.
  • Use o método Apply para substituir todos os textos de correspondência de regex.
  • Use o método Save para obter o arquivo Word editado.

O código a seguir mostra como localizar um padrão de texto em um arquivo do Word usando RegEx e substituí-lo/ocultá-lo por outro texto usando C#.

// Encontre texto usando expressão regular e substitua-o por outro 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();
}

A saída do código acima é a seguinte.

Ocultar texto confidencial em documentos do Word com caixa colorida usando C#

Se você não deseja substituir seu conteúdo privado, mas deseja apenas cobri-lo, a API permite ocultar esse conteúdo desenhando uma caixa sobre ele. O código a seguir coloca o retângulo preto sobre o texto pretendido para ocultar o texto usando C#.

// Encontre o texto e oculte-o desenhando um retângulo sobre ele usando C#
using (Redactor redactor = new Redactor(@"path/document.docx"))
{
  redactor.Apply(new ExactPhraseRedaction("John Doe", new ReplacementOptions(System.Drawing.Color.Black)));
  redactor.Save();
}

A saída do código acima é a seguinte.

Obtenha uma licença de API gratuita

Você pode obter uma licença temporária gratuita para usar a API sem as limitações de avaliação.

Conclusão

Para concluir, você aprendeu como localizar texto em arquivos do Word (DOC, DOCX) usando diferentes técnicas e substituir as descobertas de diferentes maneiras. Mais precisamente, discutimos como localizar texto, palavra ou frase, mesmo que seja uma pesquisa com distinção entre maiúsculas e minúsculas ou usando uma expressão regular em C#. Mais tarde, substituímos os resultados da pesquisa por algum outro texto ou colocando a caixa retangular colorida sobre o texto pesquisado.

Para saber mais sobre a API, visite documentação. Para dúvidas, entre em contato conosco pelo fórum.

Veja também