Os modelos são amplamente utilizados para gerar documentos personalizados. Este artigo orienta sobre como localizar e substituir texto e palavras em documentos PDF usando C#. Discutiremos separadamente como substituir palavras e frases programaticamente, substituir palavras por pesquisa que diferencia maiúsculas de minúsculas, substituir usando expressões regulares. Por fim, também aprenderemos como ocultar a string pesquisada usando C#.

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

API de redação .NET para substituir texto

GroupDocs apresenta GroupDocs.Redaction para .NET, a API para redigir, ocultar ou remover conteúdo e até metadados de documentos, apresentações, planilhas, arquivos PDF e imagens dentro do aplicativo .NET. Para mais detalhes sobre a API, visite sua 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](https ://www.nuget.org/packages/groupdocs.redaction).

PM> Install-Package GroupDocs.Redaction

Não há necessidade de instalar nenhum editor de PDF ou qualquer outro software de terceiros para redação. A seguir está a captura de tela de um documento PDF que é usado nos exemplos abaixo. A mesma abordagem funcionará para outros formatos de documento com pouca ou nenhuma alteração no código.

Localizar e substituir palavra ou frase em PDF usando C#

Você pode usar esse recurso para ocultar quaisquer dados confidenciais e também para criar um novo documento personalizado a partir do modelo. A etapa a seguir explica como localizar qualquer palavra/frase em um documento PDF com algum outro texto no aplicativo C#.

  • Carregue o arquivo PDF usando a classe Redactor.
  • Encontre a frase ou palavra exata usando ExactPhraseRedaction e [ReplacementOptions](https://apireference .groupdocs.com/redaction/net/groupdocs.redaction.redactions/replacementooptions).
  • Aplique a redação usando o método Apply().
  • Salve o novo documento com as alterações usando o método Save().

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

// Encontre a frase exata e substitua-a por outro 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 });
}

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

Localizar e substituir texto ou frase sensível a maiúsculas e minúsculas em PDF usando C#

Você pode realizar a pesquisa e redação com distinção entre maiúsculas e minúsculas. O código a seguir substitui a existência com distinção entre maiúsculas e minúsculas da palavra “John Doe”, mas não “john doe” em C#.

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

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

Substituir texto em PDF por expressões regulares (RegEx) usando C#

Você também pode substituir qualquer padrão de texto específico usando expressões regulares. As etapas a seguir permitem que você redija o PDF após a pesquisa usando expressão regular (RegEx) em seu aplicativo .NET.

  • Carregue o documento PDF usando a classe Redactor.
  • Encontre a correspondência regex usando a classe RegexRedaction com [ReplacementOptions](https://apireference.groupdocs .com/redaction/net/groupdocs.redaction.redactions/replacementooptions).
  • Coloque as alterações no documento usando o método Apply().
  • Salve o documento editado usando o método apropriado Save().

O código a seguir mostra como encontrar um determinado padrão de texto em um documento PDF usando RegEx e posteriormente 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.pdf"))
{
  redactor.Apply(new RegexRedaction("\\d{2}\\s*\\d{2}[^\\d]*\\d{6}", new ReplacementOptions("[censored]")));
  redactor.Save(new SaveOptions() { AddSuffix = true, RasterizeToPDF = false });
}

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

Substitua o texto por caixa colorida em C

Se você deseja apenas ocultar o conteúdo pesquisado (informações privadas) do seu arquivo PDF, basta colocar uma capa nele. A API permite ocultar o texto pesquisado. O código C# a seguir coloca o retângulo preto sobre o texto privado mencionado.

// Encontre texto em PDF e oculte-o desenhando um retângulo sobre ele 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 });
}

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, aprendemos como encontrar determinado texto em arquivos PDF usando diferentes técnicas de pesquisa. Mais tarde, discutimos como redigir arquivos PDF substituindo ou ocultando o texto no aplicativo .NET usando C#. Mais precisamente, simplesmente pesquisamos as palavras, frases, pesquisa com distinção entre maiúsculas e minúsculas e usando expressões regulares em C#. Por fim, substituímos os resultados da pesquisa por algum outro texto ou ocultando-o com uma caixa retangular sobre ele.

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

Veja também