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
- Localizar e substituir texto em PDF usando Java
- Substituir texto em uma página específica em PDF
- Substituir texto usando expressão regular
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.
- Carregue o arquivo PDF usando a classe Document.
- Crie um objeto da classe TextFragmentAbsorber e inicialize-o com o texto que deseja localizar e substituir.
- Aceite o absorvedor para as páginas em PDF usando o método Document.getPages().accept(TextFragmentAbsorber).
- Obtenha todas as ocorrências do texto retornado por TextFragmentAbsorber.getTextFragments() em um objeto TextFragmentCollection.
- Percorra cada TextFragment no objeto TextFragmentCollection e substitua o texto usando o método TextFragment.setText(String).
- Salve o arquivo PDF atualizado usando o método Document.save(String).
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.
- Carregue o arquivo PDF usando a classe Document.
- Crie um objeto da classe TextFragmentAbsorber e inicialize-o com o texto que você deseja localizar e substituir.
- Aceite o absorvedor para uma página específica em PDF usando o método Document.getPages().getItem(Int pageIndex).accept(TextFragmentAbsorber).
- Obtenha todas as ocorrências do texto retornado por TextFragmentAbsorber.getTextFragments() no objeto TextFragmentCollection.
- Percorra cada TextFragment no objeto TextFragmentCollection e substitua o texto usando o método TextFragment.setText(String).
- Salve o arquivo 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 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.
- Carregue o arquivo PDF usando a classe Document.
- Crie um objeto da classe TextFragmentAbsorber e inicialize-o com a expressão regular que deseja usar.
- Crie um objeto da classe TextSearchOptions e inicialize-o com true para habilitar a pesquisa baseada em expressão regular.
- Defina as opções usando o método TextFragmentAbsorber.setTextSearchOptions(TextSearchOptions).
- Aceite o absorvedor para as páginas em PDF usando o método Document.getPages().accept(TextFragmentAbsorber).
- Obtenha todas as ocorrências encontradas do texto retornado por TextFragmentAbsorber.getTextFragments() no objeto TextFragmentCollection.
- Percorra cada TextFragment no objeto TextFragmentCollection e substitua o texto usando o método TextFragment.setText(String).
- Salve o arquivo 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 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.