Localizar e substituir texto em PDF Java

Em vários casos, pode ser necessário localizar e substituir uma parte específica do texto nos documentos PDF. No entanto, pesquisar e atualizar cada ocorrência manualmente pode custar mais tempo e esforço. Para esses casos, a opção localizar e substituir facilita sua vida. Neste artigo, você aprenderá como localizar e substituir texto em documentos PDF usando Java.

API Java para localizar e substituir texto em PDF - Download grátis

Aspose.PDF for Java foi desenvolvido para gerar e manipular arquivos PDF de dentro dos aplicativos Java. A API fornece uma ampla variedade de recursos básicos e avançados de manipulação de PDF, incluindo localizar e substituir texto. Você pode baixar a API ou instalá-la usando as seguintes configurações do Maven.

<repository>
    <id>AsposeJavaAPI</id>
    <name>Aspose Java API</name>
    <url>https://repository.aspose.com/repo/</url>
</repository>
<dependency>
    <groupId>com.aspose</groupId>
    <artifactId>aspose-pdf</artifactId>
    <version>21.1</version>    
</dependency>

Localizar e substituir texto em PDF usando Java

Para substituir um texto específico em PDF, você primeiro obteria todos os fragmentos de texto correspondentes à string de pesquisa. Depois de tê-los, basta substituir cada fragmento pelo texto atualizado, um por um.

A seguir estão as etapas para localizar e substituir texto em um arquivo PDF usando Java.

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

// Para exemplos completos e arquivos de dados, acesse https://github.com/aspose-pdf/Aspose.Pdf-for-Java
// Abrir documento
Document pdfDocument = new Document("source.pdf");

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

// Aceite o absorvedor para todas as páginas do documento
pdfDocument.getPages().accept(textFragmentAbsorber);

// Coloque os fragmentos de texto extraídos na coleção
TextFragmentCollection textFragmentCollection = textFragmentAbsorber.getTextFragments();

// Percorra os fragmentos
for (TextFragment textFragment : (Iterable<TextFragment>) textFragmentCollection) {
	// Atualizar texto e outras propriedades
	textFragment.setText("New Pharase");
	textFragment.getTextState().setFont(FontRepository.findFont("Verdana"));
	textFragment.getTextState().setFontSize(22);
	textFragment.getTextState().setForegroundColor(Color.getBlue());
	textFragment.getTextState().setBackgroundColor(Color.getGray());
}
// Salve o arquivo PDF atualizado
pdfDocument.save("Updated_Text.pdf");

Pesquisar e substituir texto em uma página específica em PDF

Em vez de localizar e substituir texto em todo o PDF, você pode especificar uma única página na qual deseja substituir as ocorrências de texto. Nesse caso, você aceitará o TextFragmentAbsorber para uma página específica apenas especificando o índice da página.

A seguir estão as etapas para pesquisar e substituir texto em uma página específica em PDF em Java.

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

// Para exemplos completos e arquivos de dados, acesse https://github.com/aspose-pdf/Aspose.Pdf-for-Java
// Abrir documento
Document pdfDocument = new Document("source.pdf");

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

// Aceite o absorvedor para a primeira página do documento
pdfDocument.getPages().get_Item(0).accept(textFragmentAbsorber);

// Coloque os fragmentos de texto extraídos na coleção
TextFragmentCollection textFragmentCollection = textFragmentAbsorber.getTextFragments();

// Percorra os fragmentos
for (TextFragment textFragment : (Iterable<TextFragment>) textFragmentCollection) {
	// Atualizar texto e outras propriedades
	textFragment.setText("New Pharase");
	textFragment.getTextState().setFont(FontRepository.findFont("Verdana"));
	textFragment.getTextState().setFontSize(22);
	textFragment.getTextState().setForegroundColor(Color.getBlue());
	textFragment.getTextState().setBackgroundColor(Color.getGray());
}
// Salve o arquivo PDF atualizado
pdfDocument.save("Updated_Text.pdf");

Localizar e substituir texto usando expressões regulares em PDF

Você também pode especificar uma expressão regular para pesquisar o texto que corresponde a um padrão específico, como e-mails, SSNs, etc. A seguir estão as etapas para definir e usar uma expressão regular para pesquisar e substituir texto em PDF usando Java.

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

// Para exemplos completos e arquivos de dados, acesse https://github.com/aspose-pdf/Aspose.Pdf-for-Java
// Abrir documento
Document pdfDocument = new Document("input.pdf");

// Crie o objeto TextAbsorber para encontrar todas as instâncias da frase de pesquisa de entrada
TextFragmentAbsorber textFragmentAbsorber = new TextFragmentAbsorber("\\d{4}-\\d{4}"); // like 1999-2000

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

// Aceite o absorvedor para todas as páginas do documento
pdfDocument.getPages().accept(textFragmentAbsorber);

// Coloque os fragmentos de texto extraídos na coleção
TextFragmentCollection textFragmentCollection = textFragmentAbsorber.getTextFragments();

// Percorra os fragmentos
for (TextFragment textFragment : (Iterable<TextFragment>) textFragmentCollection) {
	// Atualizar texto e outras propriedades
	textFragment.setText("New Pharase");
	textFragment.getTextState().setFont(FontRepository.findFont("Verdana"));
	textFragment.getTextState().setFontSize(22);
	textFragment.getTextState().setForegroundColor(Color.getBlue());
	textFragment.getTextState().setBackgroundColor(Color.getGray());
}

// Salve o arquivo PDF atualizado
pdfDocument.save("Updated_Text.pdf");

Obtenha uma licença de API gratuita

Você pode experimentar a API sem limitações de avaliação gratuitamente. Obtenha uma licença temporária gratuita agora.

Conclusão

Neste artigo, você aprendeu como localizar e substituir texto em PDF usando Java. Além disso, você viu como usar uma expressão regular para pesquisar e substituir texto seguindo um padrão específico. Você pode explorar mais sobre a API Java PDF usando documentação.

Veja também