C# localizar e substituir texto em PDF

A opção localizar e substituir torna possível substituir uma parte específica do texto em um documento de uma só vez. Dessa forma, você não precisa localizar e atualizar manualmente cada ocorrência do texto em todo o documento. Este artigo ainda vai um passo além e aborda como automatizar o recurso de localizar e substituir texto em documentos PDF. Particularmente, você aprenderá como localizar e substituir texto em um PDF em C# .NET. Também demonstraremos como substituir texto em uma página específica ou em uma região de página usando C#..

API C# .NET para localizar e substituir texto em PDF - Download grátis

Aspose.PDF for .NET é uma biblioteca de classes C# que fornece recursos básicos e avançados de manipulação de PDF para aplicativos .NET. A API também permite que você encontre e substitua texto em arquivos PDF de diferentes maneiras sem problemas. Você pode baixar a DLL da API ou instalá-la usando NuGet.

PM> Install-Package Aspose.PDF

Localizar e substituir texto em PDF usando C#

Veja a seguir as etapas para localizar e substituir texto em um documento PDF.

O exemplo de código a seguir mostra como localizar e substituir texto em PDF usando C#.

// Abrir documento
Document pdfDocument = new Document("Document.pdf");

// Crie o objeto TextAbsorber para encontrar todas as instâncias da frase de pesquisa de entrada
TextFragmentAbsorber textFragmentAbsorber = new TextFragmentAbsorber("text");

// Aceite o absorvedor para todas as páginas
pdfDocument.Pages.Accept(textFragmentAbsorber);

// Obtenha os fragmentos de texto extraídos
TextFragmentCollection textFragmentCollection = textFragmentAbsorber.TextFragments;

// Percorra os fragmentos
foreach (TextFragment textFragment in textFragmentCollection)
{
    // Atualizar texto e outras propriedades
    textFragment.Text = "TEXT";
    textFragment.TextState.Font = FontRepository.FindFont("Verdana");
    textFragment.TextState.FontSize = 22;
    textFragment.TextState.ForegroundColor = Aspose.Pdf.Color.FromRgb(System.Drawing.Color.Blue);
    textFragment.TextState.BackgroundColor = Aspose.Pdf.Color.FromRgb(System.Drawing.Color.Green);
}
            
// Salve o documento PDF resultante.
pdfDocument.Save("updated-document.pdf");

C# Substituir texto em uma página PDF específica

Veja a seguir as etapas para localizar e substituir texto em uma página específica em um documento PDF.

  • Use a classe Document para carregar o documento PDF usando seu caminho.
  • Crie uma instância da classe TextFragmentAbsorber e forneça a frase de pesquisa para seu construtor.
  • Aceite o absorvedor de texto para a página desejada usando [Document.Pages1.Accept(TextFragmentAbsorber)]12.
  • Percorra a coleção TextFragmentAbsorber.TextFragments encontrada e substitua o texto em cada fragmento.
  • Salve o documento PDF atualizado usando o método Document.Save(String).

O exemplo de código a seguir mostra como localizar e substituir texto em uma página específica do PDF usando C#.

// Abrir documento
Document pdfDocument = new Document("Document.pdf");

// Crie o objeto TextAbsorber para encontrar todas as instâncias da frase de pesquisa de entrada
TextFragmentAbsorber textFragmentAbsorber = new TextFragmentAbsorber("text");

// Aceite o absorvedor para o desejado
pdfDocument.Pages[1].Accept(textFragmentAbsorber);

// Obtenha os fragmentos de texto extraídos
TextFragmentCollection textFragmentCollection = textFragmentAbsorber.TextFragments;

// Percorra os fragmentos
foreach (TextFragment textFragment in textFragmentCollection)
{
    // Atualizar texto e outras propriedades
    textFragment.Text = "TEXT";
    textFragment.TextState.Font = FontRepository.FindFont("Verdana");
    textFragment.TextState.FontSize = 22;
    textFragment.TextState.ForegroundColor = Aspose.Pdf.Color.FromRgb(System.Drawing.Color.Blue);
    textFragment.TextState.BackgroundColor = Aspose.Pdf.Color.FromRgb(System.Drawing.Color.Green);
}

// Salve o documento PDF resultante.
pdfDocument.Save("updated-document.pdf");

Substituir texto na região da página PDF em C#

Você também pode localizar e substituir texto em uma região específica da página em um documento PDF. As etapas a seguir mostram como definir uma região específica e, em seguida, substituir o texto dentro dela.

O exemplo de código a seguir mostra como localizar e substituir texto em uma região de página específica em um PDF usando C#.

// carregar arquivo PDF
Document pdf = new Document("Document.pdf");

// instanciar o objeto TextFragment Absorber
TextFragmentAbsorber TextFragmentAbsorberAddress = new TextFragmentAbsorber();

// pesquisar texto dentro do limite da página
TextFragmentAbsorberAddress.TextSearchOptions.LimitToPageBounds = true;

// especifique a região da página para opções de pesquisa de texto
TextFragmentAbsorberAddress.TextSearchOptions.Rectangle = new Rectangle(100, 100, 200, 200);

// pesquisar texto da primeira página do arquivo PDF
pdf.Pages[1].Accept(TextFragmentAbsorberAddress);

// iterar por meio de TextFragment individual
foreach (TextFragment tf in TextFragmentAbsorberAddress.TextFragments)
{
    // atualizar texto para caracteres em branco
    tf.Text = "";
}

// salvar o arquivo PDF atualizado após a substituição do texto
pdf.Save("output.pdf");

C# Substituir texto em PDF por expressão regular (Regex)

Você também pode usar expressões regulares para localizar e substituir as ocorrências de texto que correspondem a um padrão específico. Para isso, você só precisa fornecer uma expressão regular em vez da frase de pesquisa simples e usar TextSearchOptions. A seguir estão os passos para fazê-lo.

O exemplo de código a seguir mostra como localizar e substituir texto em um PDF usando expressão regular usando C#.

// Abrir documento
Document pdfDocument = new Document("Document.pdf");

// Crie o objeto TextAbsorber para encontrar todas as frases que correspondem à expressão regular
TextFragmentAbsorber textFragmentAbsorber = new TextFragmentAbsorber("\\d{4}-\\d{4}"); // Like 1999-2000

// Definir a opção de pesquisa de texto para especificar o uso de expressões regulares
TextSearchOptions textSearchOptions = new TextSearchOptions(true);
textFragmentAbsorber.TextSearchOptions = textSearchOptions;

// Aceite o absorvedor para uma única página
pdfDocument.Pages[1].Accept(textFragmentAbsorber);

// Obtenha os fragmentos de texto extraídos
TextFragmentCollection textFragmentCollection = textFragmentAbsorber.TextFragments;

// Percorra os fragmentos
foreach (TextFragment textFragment in textFragmentCollection)
{
    // Atualizar texto e outras propriedades
    textFragment.Text = "New Phrase";
    // Defina como uma instância de um objeto.
    textFragment.TextState.Font = FontRepository.FindFont("Verdana");
    textFragment.TextState.FontSize = 22;
    textFragment.TextState.ForegroundColor = Aspose.Pdf.Color.FromRgb(System.Drawing.Color.Blue);
    textFragment.TextState.BackgroundColor = Aspose.Pdf.Color.FromRgb(System.Drawing.Color.Green);
}

// Salvar PDF
pdfDocument.Save("output.pdf");

Conclusão

Atualmente, a automação de PDF é amplamente adotada para manipular documentos PDF a partir da Web ou de aplicativos de desktop. Este artigo abordou um recurso útil de automação de PDF para localizar e substituir texto em PDF em C#. O guia passo a passo e os exemplos de código mostraram como localizar e substituir texto em um PDF inteiro, uma página específica em PDF ou uma região de página. Você pode explorar recursos mais avançados usando a documentação da API.

Veja também