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# para localizar e substituir texto em PDF
- Localizar e substituir texto em PDF usando C#
- Substituir texto em uma página específica em PDF
- Substituir texto na região da página PDF
- Localizar e substituir texto em PDF usando Regex
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.
- 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 todas as páginas do PDF usando Document.Pages.Accept(TextFragmentAbsorber).
- Obtenha os fragmentos de texto extraídos no objeto TextFragmentCollection.
- Percorra o TextFragmentCollection encontrado 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 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.
- 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.Pages[0].Accept(TextFragmentAbsorber).
- Defina a região da página usando a classe Rectangle.
- Percorra a coleção TextFragmentAbsorber.TextFragments 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 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.
- 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.
- Crie uma instância da classe TextSearchOptions e passe true para seu construtor para habilitar a pesquisa baseada em regex.
- Atribua o objeto TextSearchOptions à propriedade TextFragmentAbsorber.TextSearchOptions.
- Aceite o absorvedor de texto para a página desejada usando Document.Pages[0].Accept(TextFragmentAbsorber).
- Defina a região da página usando a classe Rectangle.
- Percorra a coleção TextFragmentAbsorber.TextFragments 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 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.