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 .NET para substituição de texto
- Localizar e substituir palavras ou frases
- Pesquisa com distinção entre maiúsculas e minúsculas e substitua palavras ou frases
- Substituir texto usando expressões regulares (RegEx)
- Ocultar o texto com caixa colorida
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#.
- Carregue o documento do Word (DOC/DOCX) usando a classe Redactor.
- Encontre a frase ou palavra exata usando a classe ExactPhraseRedaction com ReplacementOptions.
- Use o método Apply do Redactor para aplicar a redação.
- Salve as alterações usando o método Save.
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.