Como substituir texto em um PDF
IronPDF for Java oferece aos desenvolvedores controle direto sobre o conteúdo PDF existente através do método replaceText. Seja para corrigir um erro de digitação em um lote de relatórios gerados, trocar números de versão entre documentos de modelo ou personalizar contratos com dados específicos do cliente, o método aceita uma seleção de página, uma string de pesquisa e uma string de substituição, e cuida do resto. Este guia aborda a substituição de página única, o direcionamento a várias páginas, todas as opções disponíveis e padrões práticos para fluxos de trabalho baseados em modelos.
Início rápido: Substituir Texto em um PDF
Adicione a dependência IronPDF , carregue ou renderize um PDF, chame replaceText e salve o resultado:
```java :title=Início Rápido Substituir Texto //:path=/static-assets/pdf/content-code-examples/how-to/find-replace-text/quickstart.java import IronPDF.*; import IronPDF; import java.io.IOException;
public class App { public static void main(String[] args) throws IOException { License.setLicenseKey("IronPDF-MYLICENSE-KEY-1EF01"); PdfDocument pdf = PdfDocument.renderHtmlAsPdf(""); pdf.replaceText(PageSelection.firstPage(), ".NET6", ".NET7"); pdf.saveAs("replaceText.pdf"); } }
<div class="hsg-featured-snippet">
<h3>Fluxo de trabalho mínimo (5 etapas)</h3>
<ol>
<li><a class="js-modal-open" data-modal-id="download-modal" href="#download-modal">Baixe a biblioteca Java para substituir texto em um PDF.</a></li>
<li>Carregue um PDF existente ou renderize um a partir de HTML</li>
<li>Chame <code>pdf.replaceText(PageSelection, oldText, newText)</code> para substituir em páginas direcionadas</li>
<li>Use métodos <code>PageSelection</code> para controlar quais páginas são modificadas</li>
<li>Salve e exporte o PDF atualizado com <code>pdf.saveAs("output.pdf")</code></li>
</ol>
</div>
## Como faço para substituir o texto em uma única página?
O método `replaceText` aceita três argumentos: um `PageSelection` que visa uma ou mais páginas, o texto exato a ser encontrado e a string de substituição. Para acessar a primeira página, digite `PageSelection.firstPage()`. Todas as instâncias da string de busca nessa página são substituídas em uma única chamada. Se o texto não puder ser encontrado nas páginas direcionadas, o método lança uma exceção de tempo de execução. A captura de tela abaixo mostra como essa exceção se parece no console.

### Quais parâmetros replaceText aceita?
A assinatura do método é `replaceText(PageSelection pageSelection, String oldText, String newText)`. A correspondência diferencia maiúsculas de minúsculas por padrão: `"net6"` e `"NET6"` são tratadas como strings diferentes. Verifique a exata diferenciação de maiúsculas e minúsculas no PDF renderizado antes de chamar o método. Você pode confirmar o texto exato [extraindo primeiro o conteúdo de texto do PDF](https://ironpdf.com/java/examples/extract-image-from-pdf/). A dependência do IronPDF Java é publicada no [Maven Central](https://central.sonatype.com/artifact/com.ironsoftware/ironpdf) e requer Java 8 ou posterior.
```java :title=Substituir texto na primeira página
//:path=/static-assets/pdf/content-code-examples/how-to/find-replace-text/replace-text-single-page.java
import IronPDF.*;
import IronPDF;
import java.io.IOException;
public class App {
public static void main(String[] args) throws IOException {
// Configure a chave de licença do IronPDF (necessária para uso em produção)
License.setLicenseKey("IronPDF-MYLICENSE-KEY-1EF01");
// Renderize o conteúdo HTML em um documento PDF
PdfDocument pdf = PdfDocument.renderHtmlAsPdf("<h1>.NET6</h1>");
// Defina as strings de busca e substituição
String oldText = ".NET6";
String novoTexto = ".NET7";
// Substitua todas as instâncias de oldText apenas na primeira página
// PageSelection.firstPage() direciona o índice da página 0
pdf.replaceText(PageSelection.firstPage(), oldText, newText);
// Salve o PDF modificado
pdf.saveAs("replaceText.pdf");
}
}
O método replaceText integra-se naturalmente ao fluxo de trabalho de conversão de HTML para PDF do IronPDF. Renderize o template HTML primeiro, depois aplique a substituição de texto para injetar valores dinâmicos. Isso mantém seu HTML limpo ao mesmo tempo que produz uma saída personalizada. Para documentos carregados do disco, passe o caminho do arquivo para PdfDocument.fromFile em vez de usar renderHtmlAsPdf.
Qual é a aparência do resultado?
Como substituir texto em várias páginas?
Para direcionar páginas específicas em vez de apenas a primeira, passe uma lista de números de página indexados a zero para PageSelection.pageRange(List<Integer>). O método substitui o texto de busca em cada página na lista e deixa todas as outras páginas intocadas. Este padrão é adequado para documentos com cabeçalhos ou rodapés consistentes em páginas conhecidas, ou relatórios gerados em lote onde uma string de versão aparece apenas em certas páginas.
Quais páginas são modificadas ao usar uma lista de páginas?
No exemplo abaixo, um PDF de três páginas é gerado a partir de HTML. A substituição é executada nas páginas 0 e 2 (a primeira e a terceira páginas). A página 1 (a segunda página) mantém o texto original inalterado. Os índices de página sempre começam em 0, em conformidade com as convenções de arrays baseados em zero do Java.
```java :title=Substituir texto em várias páginas específicas //:path=/static-assets/pdf/content-code-examples/how-to/find-replace-text/replace-text-multiple-pages.java import IronPDF.*; import IronPDF; import java.io.IOException; import java.util.Arrays; import java.util.List;
public class App {
public static void main(String[] args) throws IOException {
// Configure a chave de licença do IronPDF
License.setLicenseKey("IronPDF-MYLICENSE-KEY-1EF01");
// Construa um PDF de 3 páginas a partir do HTML usando quebras de página CSS
String html = "<p> .NET6</p> " +
"<p> Esta é a 1ª Página </p>" +
"<div style="page-break-after:> always;"></div>" +
"<p> Esta é a 2ª Página</p>" +
"<div style="page-break-after:> always;"></div>" +
"<p> .NET6</p> " +
"<p> Esta é a 3ª Página</p>";
PdfDocument pdf = PdfDocument.renderHtmlAsPdf(html);
String oldText = ".NET6";
String novoTexto = ".NET7";
// Páginas são indexadas a partir de zero: 0 = primeira página, 2 = terceira página
// Índice da página 1 (segunda página) é intencionalmente excluído
Lista<Integer> páginas = Arrays.asList(0, 2);
pdf.replaceText(PageSelection.pageRange(pages), oldText, newText);
pdf.saveAs("replaceTextOnMultiplePages.pdf");
}
}
ObserveTodos os índices de página no IronPDF seguem a indexação baseada em zero. A página `0` é a primeira página, a página `1` é a segunda, e assim por diante.
Ao criar PDFs com várias páginas a partir de HTML, use a [propriedade CSS `page-break-after`](https://developer.mozilla.org/en-US/docs/Web/CSS/page-break-after) para controlar onde os limites da página serão definidos. Definir o [tamanho de papel personalizado](https://ironpdf.com/java/examples/custom-pdf-paper-size/) e a [orientação da página](https://ironpdf.com/java/examples/pdf-page-orientation/) corretos antes de renderizar garante que as posições do conteúdo correspondam às suas expectativas quando a substituição de texto for executada. Após salvar, verifique a saída abrindo o PDF e confirmando que apenas as páginas direcionadas foram alteradas.
### Qual é a aparência do resultado?
<iframe loading="lazy" src="/static-assets/ironpdf-java/howto/find-replace-text/replaceTextOnMultiplePages.pdf" width="100%" height="400px"></iframe>
<hr>
## Quais opções de seleção de página estão disponíveis?
A classe `PageSelection` fornece métodos de fábrica estáticos que abrangem todos os padrões de direcionamento comuns. Nenhuma criação de instância é necessária; chame os métodos diretamente na classe. Todos os índices são baseados em zero.
### Quais métodos direcionam página única vs. múltiplas páginas?
<table class="content__data-table" data-content-table>
<caption>Métodos da fábrica PageSelection para a API replaceText</caption>
| Método | Descrição |
|---|---|
| `PageSelection.allPages()` | Seleciona todas as páginas no documento |
| `PageSelection.firstPage()` | Seleciona a página no índice `0` |
| `PageSelection.lastPage()` | Seleciona a página final independentemente do comprimento do documento |
| `PageSelection.singlePage(int pageIndex)` | Seleciona uma página específica pelo índice baseado em zero |
| `PageSelection.pageRange(int startIndex, int endIndex)` | Seleciona um intervalo contíguo de `startIndex` a `endIndex` inclusive |
| `PageSelection.pageRange(List<Integer> pageList)` | Seleciona páginas em qualquer conjunto arbitrário de índices (por exemplo, `[0, 2]` seleciona as páginas 1 e 3) |
</table>
### Quando devo usar cada método de seleção de página?
`allPages()` é a opção mais simples para uma busca e substituição global: todas as ocorrências do texto alvo em todo o documento são substituídas em uma única chamada. Use `firstPage()` ou `lastPage()` para edições rápidas em capas ou rodapés da última página sem alterar o corpo do texto. Selecione `pageRange(int, int)` quando o texto aparecer em um conjunto sequencial de páginas, como um capítulo ou seção. Use `pageRange(List<Integer>)` quando as páginas de destino não forem contíguas; por exemplo, ao substituir uma string de versão que aparece apenas nas páginas 1, 3 e 7.
Ao trabalhar com [PDFs mesclados](https://ironpdf.com/java/examples/split-pdfs/) ou documentos que incluem [marcadores e esboços](https://ironpdf.com/java/how-to/bookmarks/), identifique a faixa de páginas para cada seção lógica primeiro, depois aplique substituições direcionadas para evitar modificar cabeçalhos ou rodapés compartilhados acidentalmente. A [referência da API IronPDF for Java](https://ironpdf.com/object-reference/api/) lista todas as sobrecargas `PageSelection` com documentação completa dos parâmetros.
ImportanteEnvolva as chamadas `replaceText` em um bloco try-catch. O método lança uma exceção de tempo de execução quando o texto de busca especificado não é encontrado em nenhuma das páginas alvo. Um passo de validação (extraindo texto e confirmando se a string está presente) previne falhas inesperadas em produção.
### Como substituir texto em todas as páginas de uma vez?
`PageSelection.allPages()` realiza uma substituição em todo o documento em uma única chamada, que é a abordagem mais eficiente para substituição global de tokens. O exemplo abaixo carrega um PDF do disco e substitui todas as ocorrências de um token de marcador em todo o documento:
```java :title=Substituir texto em todas as páginas
//:path=/static-assets/pdf/content-code-examples/how-to/find-replace-text/replace-text-all-pages.java
import IronPDF.*;
import IronPDF;
import java.io.IOException;
importação java.nio.file.Paths;
public class App {
public static void main(String[] args) throws IOException {
// Configure a chave de licença do IronPDF
License.setLicenseKey("IronPDF-MYLICENSE-KEY-1EF01");
// Carregue um PDF existente do disco
PdfDocument pdf = PdfDocument.fromFile(Paths.get("contract-template.pdf"));
// Substitua o token de marcador em cada página simultaneamente
// Isso é equivalente a chamar replaceText para cada página individualmente
pdf.replaceText(PageSelection.allPages(), "{{VERSION}}", "2.0");
// Salve o documento atualizado
pdf.saveAs("contract-v2.pdf");
}
}
Este padrão combina-se naturalmente com fluxos de trabalho orientados por templates onde o mesmo marcador aparece em cabeçalhos, rodapés ou textos do corpo em muitas páginas. Para documentos de página única, allPages() e firstPage() produzem resultados idênticos. Prefira allPages() quando a contagem de páginas puder variar em tempo de execução.
Como lidar com cenários comuns de substituição de texto?
A substituição de texto em aplicações Java cobre vários padrões que vão além de uma simples busca e substituição. Entender como o método se comporta em cada caso evita bugs antes que eles apareçam em produção.
Como a correspondência que diferencia maiúsculas de minúsculas afeta os resultados?
replaceText realiza correspondência exata, diferenciando maiúsculas de minúsculas. As sequências "Version 1.0", "version 1.0" e "VERSION 1.0" são tratadas como três valores distintos. Antes de executar uma substituição em um documento carregado do disco, confirme a exata diferenciação de maiúsculas e minúsculas revisando a fonte original ou extraindo texto do PDF e inspecionando-o programaticamente.
Como substituir texto em formulários de PDF?
PDFs que contêm campos de formulário interativos armazenam seus valores de texto separadamente do fluxo de conteúdo do documento, conforme definido na especificação PDF. O método replaceText opera no fluxo de conteúdo e não modifica os valores dos campos do formulário. Para atualizar texto dentro de campos de formulário, use a API de criação e edição de formulários dedicada do IronPDF. Misturar ambas abordagens no mesmo documento é seguro: atualizações em campos de formulário e substituições no fluxo de conteúdo não interferem entre si.
Como atualizar texto em fluxos de trabalho baseados em templates?
Um padrão comum é manter um modelo de PDF com marcadores de posição (por exemplo, {{CUSTOMER_NAME}} ou [INVOICE_DATE]) e substituí-los em tempo de execução por valores reais. Chame replaceText uma vez por marcador de posição, usando PageSelection.allPages() para que a substituição cubra todos os locais onde o token aparece. Para documentos gerados a partir de HTML, esse fluxo de trabalho funciona igualmente bem com renderHtmlAsPdf seguido por uma série de chamadas de substituição. Combine isso com marca d'água em PDF ou fundos e primeiros planos para adicionar marcas de marcação ou confidencialidade à saída final.
Quais são os próximos passos para a substituição de texto em PDF em Java?
Este guia abordou a substituição de página única com PageSelection.firstPage(), a substituição seletiva de várias páginas com PageSelection.pageRange(), a substituição de todo o documento com PageSelection.allPages() e o conjunto completo de métodos de fábrica PageSelection. A mesma API replaceText funciona independentemente de o documento ter sido renderizado a partir de HTML, carregado do disco ou montado pela fusão de múltiplas fontes.
Inicie um teste gratuito do IronPDF for Java e execute os exemplos de código acima em seus próprios documentos. Quando estiver pronto para implantar em produção, reveja as opções de licenciamento. As licenças são por desenvolvedor e incluem um ano de atualizações de produto.
Pronto para ver o que mais o IronPDF for Java pode fazer? Navegue pelos guias completos de uso do IronPDF for Java para tutoriais sobre geração de PDF, anotação, assinaturas digitais, compressão, e mais.
Perguntas frequentes
Como faço para substituir texto em um PDF usando Java?
Use o método replaceText do IronPDF. Chame pdf.replaceText(PageSelection.firstPage(), "oldText", "newText") para substituir todas as instâncias do texto antigo na página especificada. IronPDF encontra e substitui todas as ocorrências enquanto preserva a formatação original.
Quais parâmetros o método replaceText aceita?
O método aceita três parâmetros: um PageSelection para especificar quais páginas modificar, uma String com o texto a encontrar e uma String com o texto de substituição. Por exemplo, pdf.replaceText(PageSelection.firstPage(), ".NET6", ".NET7") substitui todas as instâncias na primeira página.
Posso substituir o texto apenas em páginas específicas?
Sim. Use PageSelection.firstPage() para a página 0, PageSelection.lastPage() para a última página, PageSelection.singlePage(n) para qualquer página por índice baseado em zero ou PageSelection.pageRange() com uma lista de inteiros para páginas não contíguas.
O que acontece se o texto a ser substituído não for encontrado?
IronPDF lança uma exceção de tempo de execução (Exception_RemoteException) quando o texto alvo não pode ser encontrado nas páginas segmentadas. Envolva a chamada em um bloco try-catch e, opcionalmente, extraia primeiro o texto do PDF para verificar se a string existe antes de chamar replaceText.
A correspondência de texto diferencia maiúsculas de minúsculas?
Sim. O método replaceText realiza uma correspondência exata e sensível a maiúsculas e minúsculas. As strings "Version 1.0", "version 1.0" e "VERSION 1.0" são tratadas como três valores distintos. Verifique a exata diferenciação de maiúsculas e minúsculas antes de chamar o método.
O replaceText modifica os valores dos campos de formulário?
Não. O método replaceText opera no fluxo de conteúdo do PDF e não modifica os valores dos campos de formulário interativos. Para atualizar campos de formulário, use a API dedicada de edição de formulários do IronPDF por meio dos métodos de formulário PdfDocument.
Como faço para substituir um token em todas as páginas de uma só vez?
Use PageSelection.allPages() como o primeiro argumento para replaceText. Isso substitui todas as instâncias do texto alvo em todas as páginas em uma única chamada, que é a abordagem preferida para fluxos de trabalho baseados em modelos com marcadores de posição em todo o documento.


