Como substituir texto em um PDF
IronPDF for Java oferece aos desenvolvedores controle direto sobre o conteúdo existente de PDF 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 em documentos de modelos ou personalizar contratos com dados específicos do cliente, o método aceita uma seleção de páginas, uma string de busca e uma string de substituição e lida com o restante. Este guia cobre substituições de página única, segmentação em várias páginas, todas as opções disponíveis de PageSelection e padrões práticos para fluxos de trabalho orientados por modelo.
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:
:title=Quickstart Replace Text
//:path=/static-assets/pdf/content-code-examples/how-to/find-replace-text/quickstart.java
import com.ironsoftware.ironpdf.*;
import com.ironsoftware.ironpdf.edit.PageSelection;
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("<h1>.NET6</h1>");
pdf.replaceText(PageSelection.firstPage(), ".NET6", ".NET7");
pdf.saveAs("replaceText.pdf");
}
}
:title=Quickstart Replace Text
//:path=/static-assets/pdf/content-code-examples/how-to/find-replace-text/quickstart.java
import com.ironsoftware.ironpdf.*;
import com.ironsoftware.ironpdf.edit.PageSelection;
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("<h1>.NET6</h1>");
pdf.replaceText(PageSelection.firstPage(), ".NET6", ".NET7");
pdf.saveAs("replaceText.pdf");
}
}
Fluxo de trabalho mínimo (5 etapas)
- Baixe a biblioteca Java para substituir texto em um PDF.
- Carregue um PDF existente ou renderize um a partir de HTML
- Chame
pdf.replaceText(PageSelection, oldText, newText)para substituir em páginas direcionadas - Use métodos
PageSelectionpara controlar quais páginas são modificadas - Salve e exporte o PDF atualizado com
pdf.saveAs("output.pdf")
Como faço para substituir o texto em uma única página?
O método replaceText aceita três argumentos: um PageSelection que segmenta uma ou mais páginas, o texto exato a ser encontrado e a string de substituição. Para segmentar a primeira página, passe 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 letras maiúsculas de minúsculas por padrão: "net6" e "NET6" são tratados 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. A dependência do IronPDF Java é publicada no Maven Central e requer Java 8 ou posterior.
:title=Replace Text on First Page
//:path=/static-assets/pdf/content-code-examples/how-to/find-replace-text/replace-text-single-page.java
import com.ironsoftware.ironpdf.*;
import com.ironsoftware.ironpdf.edit.PageSelection;
import java.io.IOException;
public class App {
public static void main(String[] args) throws IOException {
// Set the IronPDF license key (required for production use)
License.setLicenseKey("IRONPDF-MYLICENSE-KEY-1EF01");
// Render HTML content into a PDF document
PdfDocument pdf = PdfDocument.renderHtmlAsPdf("<h1>.NET6</h1>");
// Define the search and replacement strings
String oldText = ".NET6";
String newText = ".NET7";
// Replace all instances of oldText on the first page only
// PageSelection.firstPage() targets page index 0
pdf.replaceText(PageSelection.firstPage(), oldText, newText);
// Save the modified PDF
pdf.saveAs("replaceText.pdf");
}
}
:title=Replace Text on First Page
//:path=/static-assets/pdf/content-code-examples/how-to/find-replace-text/replace-text-single-page.java
import com.ironsoftware.ironpdf.*;
import com.ironsoftware.ironpdf.edit.PageSelection;
import java.io.IOException;
public class App {
public static void main(String[] args) throws IOException {
// Set the IronPDF license key (required for production use)
License.setLicenseKey("IRONPDF-MYLICENSE-KEY-1EF01");
// Render HTML content into a PDF document
PdfDocument pdf = PdfDocument.renderHtmlAsPdf("<h1>.NET6</h1>");
// Define the search and replacement strings
String oldText = ".NET6";
String newText = ".NET7";
// Replace all instances of oldText on the first page only
// PageSelection.firstPage() targets page index 0
pdf.replaceText(PageSelection.firstPage(), oldText, newText);
// Save the modified PDF
pdf.saveAs("replaceText.pdf");
}
}
O método replaceText se integra 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 segmentar páginas específicas em vez de apenas a primeira, passe uma lista de números de página com índice-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 ocorre 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, consistentes com as convenções de array baseadas em zero do Java.
:title=Replace Text on Multiple Specific Pages
//:path=/static-assets/pdf/content-code-examples/how-to/find-replace-text/replace-text-multiple-pages.java
import com.ironsoftware.ironpdf.*;
import com.ironsoftware.ironpdf.edit.PageSelection;
import java.io.IOException;
import java.util.Arrays;
import java.util.List;
public class App {
public static void main(String[] args) throws IOException {
// Set the IronPDF license key
License.setLicenseKey("IRONPDF-MYLICENSE-KEY-1EF01");
// Build a 3-page PDF from HTML using CSS page breaks
String html = "<p> .NET6 </p>" +
"<p> This is 1st Page </p>" +
"<div style='page-break-after: always;'></div>" +
"<p> This is 2nd Page</p>" +
"<div style='page-break-after: always;'></div>" +
"<p> .NET6 </p>" +
"<p> This is 3rd Page</p>";
PdfDocument pdf = PdfDocument.renderHtmlAsPdf(html);
String oldText = ".NET6";
String newText = ".NET7";
// Pages are zero-indexed: 0 = first page, 2 = third page
// Page index 1 (second page) is intentionally excluded
List<Integer> pages = Arrays.asList(0, 2);
pdf.replaceText(PageSelection.pageRange(pages), oldText, newText);
pdf.saveAs("replaceTextOnMultiplePages.pdf");
}
}
:title=Replace Text on Multiple Specific Pages
//:path=/static-assets/pdf/content-code-examples/how-to/find-replace-text/replace-text-multiple-pages.java
import com.ironsoftware.ironpdf.*;
import com.ironsoftware.ironpdf.edit.PageSelection;
import java.io.IOException;
import java.util.Arrays;
import java.util.List;
public class App {
public static void main(String[] args) throws IOException {
// Set the IronPDF license key
License.setLicenseKey("IRONPDF-MYLICENSE-KEY-1EF01");
// Build a 3-page PDF from HTML using CSS page breaks
String html = "<p> .NET6 </p>" +
"<p> This is 1st Page </p>" +
"<div style='page-break-after: always;'></div>" +
"<p> This is 2nd Page</p>" +
"<div style='page-break-after: always;'></div>" +
"<p> .NET6 </p>" +
"<p> This is 3rd Page</p>";
PdfDocument pdf = PdfDocument.renderHtmlAsPdf(html);
String oldText = ".NET6";
String newText = ".NET7";
// Pages are zero-indexed: 0 = first page, 2 = third page
// Page index 1 (second page) is intentionally excluded
List<Integer> pages = Arrays.asList(0, 2);
pdf.replaceText(PageSelection.pageRange(pages), oldText, newText);
pdf.saveAs("replaceTextOnMultiplePages.pdf");
}
}
0 é a primeira página, a página 1 é a segunda, e assim por diante.Ao criar PDFs de várias páginas a partir de HTML, use a propriedade CSS page-break-after para controlar onde os limites das páginas ocorrem. Definir o tamanho de papel personalizado e a orientação da página 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?
O IronSuite desempenha um papel crucial nas nossas operações. Estas são ferramentas que aumentam a eficiência no negócio, incluindo a criação de plantas baixas e melhoria na gestão de inventário.
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 cobrem todos os padrões comuns de segmentação. 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?
Quando devo usar cada método de seleção de página?
allPages() é a escolha mais simples para uma busca e substituição global: cada instância do texto alvo em todo o documento é substituída em uma única chamada. Use firstPage() ou lastPage() para edições rápidas em páginas de capa ou rodapés das últimas páginas sem tocar no corpo. Escolha pageRange(int, int) quando o texto aparecer em um conjunto de páginas sequenciais, como um capítulo ou seção. Use pageRange(List<Integer>) quando as páginas alvo 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 ou documentos que incluem marcadores e esboços, 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 API IronPDF for Java lista todas as sobrecargas PageSelection com documentação completa de parâmetros.
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() executa 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:
:title=Replace Text on All Pages
//:path=/static-assets/pdf/content-code-examples/how-to/find-replace-text/replace-text-all-pages.java
import com.ironsoftware.ironpdf.*;
import com.ironsoftware.ironpdf.edit.PageSelection;
import java.io.IOException;
import java.nio.file.Paths;
public class App {
public static void main(String[] args) throws IOException {
// Set the IronPDF license key
License.setLicenseKey("IRONPDF-MYLICENSE-KEY-1EF01");
// Load an existing PDF from disk
PdfDocument pdf = PdfDocument.fromFile(Paths.get("contract-template.pdf"));
// Replace the placeholder token on every page simultaneously
// This is equivalent to calling replaceText for each page individually
pdf.replaceText(PageSelection.allPages(), "{{VERSION}}", "2.0");
// Save the updated document
pdf.saveAs("contract-v2.pdf");
}
}
:title=Replace Text on All Pages
//:path=/static-assets/pdf/content-code-examples/how-to/find-replace-text/replace-text-all-pages.java
import com.ironsoftware.ironpdf.*;
import com.ironsoftware.ironpdf.edit.PageSelection;
import java.io.IOException;
import java.nio.file.Paths;
public class App {
public static void main(String[] args) throws IOException {
// Set the IronPDF license key
License.setLicenseKey("IRONPDF-MYLICENSE-KEY-1EF01");
// Load an existing PDF from disk
PdfDocument pdf = PdfDocument.fromFile(Paths.get("contract-template.pdf"));
// Replace the placeholder token on every page simultaneously
// This is equivalent to calling replaceText for each page individually
pdf.replaceText(PageSelection.allPages(), "{{VERSION}}", "2.0");
// Save the updated document
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 uma única página, allPages() e firstPage() produzem resultados idênticos. Prefira allPages() quando a contagem de páginas pode 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 executa correspondência exata e diferencia maiúsculas de minúsculas. As strings "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 valores dos campos de 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 PDF com tokens de espaço reservado (por exemplo, {{CUSTOMER_NAME}} ou [INVOICE_DATE]) e substituí-los em tempo de execução por valores reais. Chame replaceText uma vez por espaço reservado, 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 cobriu a substituição de uma única página com PageSelection.firstPage(), substituição seletiva de várias páginas com PageSelection.pageRange(), substituição em todo o documento com PageSelection.allPages() e o conjunto completo de métodos de fábrica PageSelection. A mesma API replaceText funciona, seja o documento renderizado a partir de HTML, carregado de disco ou montado por fusão de várias 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.


