如何替换 PDF 中的文本 Copy for LLMsCopy for LLMs Copy page as Markdown for LLMs
# 如何替换 PDF 中的文本
IronPDF for Java通过`replaceText`方法为开发者提供了对现有PDF内容的直接控制。 无论您需要纠正生成报告中的拼写错误,还是在模板文档中替换版本号,或用客户特定的数据个性化合同,该方法接受页面选择、搜索字符串和替换字符串,并完成其余操作。本指南涵盖了单页替换、多页定位、每个可用的`PageSelection`选项以及模板驱动的工作流程的实际模式。
*as-heading:2(快速入门:在PDF中替换文本)*
添加IronPDF依赖项,加载或渲染PDF,调用`replaceText`,并保存结果:
```java
: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");
}
}
```
<div class="hsg-featured-snippet">
<h3>最小工作流程(5 个步骤)</h3>
<ol>
<li><a class="js-modal-open" data-modal-id="download-modal" href="#download-modal">下载 Java 库以替换 PDF 中的文本</a>。</li>
<li>加载现有PDF或从HTML渲染一个</li>
<li>调用<code>pdf.replaceText(PageSelection, oldText, newText)</code>在目标页面上替换文本</li>
<li>使用<code>PageSelection</code>方法来控制哪些页面将被修改</li>
<li>使用<code>pdf.saveAs("output.pdf")</code>保存并导出更新后的PDF</li>
</ol>
</div>
## 如何替换单个页面上的文本?
`PageSelection`、要查找的确切文本和替换字符串。 要定位第一页,请传递`PageSelection.firstPage()`。 在该页面上所有找到的搜索字符串实例会在一次调用中被替换。 如果无法在目标页上找到文本,该方法会抛出运行时异常。 下方的截图显示了在控制台中该异常的样子。

### replaceText接受哪些参数?
方法签名为`replaceText(PageSelection pageSelection, String oldText, String newText)`。 匹配默认是区分大小写的:`"NET6"`被视为不同的字符串。 在调用该方法之前,验证渲染的PDF中的确切大小写。 您可以通过[提取PDF的文本内容](https://ironpdf.com/java/examples/extract-image-from-pdf/)来确认确切的文本。IronPDF Java依赖项发布在[Maven Central](https://central.sonatype.com/artifact/com.ironsoftware/ironpdf)上,需要Java 8或更高版本。
```java
: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");
}
}
```
[[t:(在应用程序启动时加载许可证密钥,而不是在每个独立操作之前加载。 这样可以避免在相同的JVM会话中处理多个文档时反复初始化的开销。)]]
`replaceText`方法自然集成了IronPDF的[HTML到PDF转换工作流](https://ironpdf.com/java/tutorials/html-to-pdf/)。 首先渲染HTML模板,然后应用文本替换以注入动态值。 这样可以保持您的HTML简单,并仍然生成个性化的输出。 对于从磁盘加载的文档,请将文件路径传递给`renderHtmlAsPdf`。
### 输出结果是什么样的?
<iframe loading="lazy" src="/static-assets/ironpdf-java/howto/find-replace-text/replaceText.pdf" width="100%" height="400px"></iframe>
<hr />
## 我如何在多页中替换文本?
要定位特定页面而不仅仅是第一页,请传递一个零索引页码的列表给`PageSelection.pageRange(List<Integer>)`。 该方法在列表的每一页上替换搜索文本,并保持其他所有页面不变。 此模式适用于在已知页面上具有一致的页眉或页脚的文档,或批量生成的报告,其中版本字符串仅出现在某些页面上。
### 使用页面列表时修改了哪些页面?
在下面的示例中,从HTML创建一个三页的PDF。 替换在页面`2`(即第一页和第三页)上运行。 页面`1`(即第二页)保持原文不变。 页面索引始终从`0`开始,以便与Java的零基数组约定一致。
```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");
}
}
```
[[i:(IronPDF中的所有页面索引都遵循基于零的索引。 页面`1`是第二页,依此类推。)]]
从HTML创建多页PDF时,请使用[CSS `page-break-after`属性](https://developer.mozilla.org/en-US/docs/Web/CSS/page-break-after)来控制页面边界的位置。 在渲染之前设置正确的[自定义纸张尺寸](https://ironpdf.com/java/examples/custom-pdf-paper-size/)和[页面方向](https://ironpdf.com/java/examples/pdf-page-orientation/),以确保当文本替换运行时,内容位置符合您的预期。 保存后,通过打开PDF并确认只有目标页面发生了变化来验证输出。
### 输出结果是什么样的?
<iframe loading="lazy" src="/static-assets/ironpdf-java/howto/find-replace-text/replaceTextOnMultiplePages.pdf" width="100%" height="400px"></iframe>
<hr />
## 有哪些页面选择选项?
`PageSelection`类提供的静态工厂方法涵盖了每种常见的定位模式。 无需创建实例; 直接在类上调用方法。 所有索引都是基于零的。
### 哪些方法针对单页或多页?
<table class="content__data-table" data-content-table>
<caption>replaceText API 的PageSelection工厂方法</caption>
|翻译方法|说明|
|---|---|
| `PageSelection.allPages()` |选择文档中的每一页|
| `PageSelection.firstPage()` |选择索引`0`对应的页面|
| `PageSelection.lastPage()` |无论文档长度如何,选择最后一页|
| `PageSelection.singlePage(int pageIndex)` |通过基于零的索引选择一个特定页面|
| `PageSelection.pageRange(int startIndex, int endIndex)` |选择任意集合的页码(例如,`[0, 2]`选择页面1和3)|
| `PageSelection.pageRange(List<Integer> pageList)` |选择从`startIndex`到`endIndex`的连续范围(含)|
</table>
### 何时应使用每种 PageSelection 方法?
`allPages()`是全局查找和替换的最简单选择:该方法可在一次调用中替换整个文档中目标文本的每个实例。 使用`lastPage()`快速编辑封面或尾页脚注,而不触及正文。 选择`pageRange(int, int)`,当文本出现在如章节或部分这样的连续页面组上。 当目标页面是不连贯的时,使用`pageRange(List<Integer>)`; 例如,当替换仅出现在页面1、3和7上的版本字符串时。
处理[合并的PDF](https://ironpdf.com/java/examples/split-pdfs/)或包含[书签和大纲](https://ironpdf.com/java/how-to/bookmarks/)的文档时,首先识别每个逻辑部分的页面范围,然后应用目标替换,以避免意外修改共享的页眉或页脚。 [IronPDF for Java API参考](https://ironpdf.com/object-reference/api/)列出了所有`PageSelection`重载及完整参数文档。
[[n:(将`replaceText`调用包装在一个try-catch块中。 当指定的搜索文本未在任何目标页面上找到时,该方法会抛出运行时异常。 验证步骤(提取文本并确认字符串存在)可防止在生产中出现意外失败。)]]
### 如何一次性替换所有页面的文本?
`PageSelection.allPages()`在一次调用中执行文档范围内的替换,这是全局替换令牌的最有效方法。 下面的示例从磁盘加载PDF,并替换整个文档中占位符标记的每一个出现:
```java
: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");
}
}
```
此模式自然地与模板驱动的工作流程配对,其中相同的占位符出现在许多页面的页眉、页脚或正文文本中。 对于单页文档,`firstPage()`产生相同的结果。 当页面数可能会在运行时有所变化时,优选`allPages()`。
<hr />
## 如何处理常见的文本替换场景?
Java应用程序中的文本替换包括几个超出简单搜索和替换的模式。 了解该方法在每种情况下的行为可以防止错误在生产中出现。
### 区分大小写的匹配如何影响结果?
`replaceText`执行精确、区分大小写的匹配。 字符串`"version 1.0"` 和`"VERSION 1.0"`被视为三种不同的值。 在对从磁盘加载的文档运行替换之前,通过查看原始来源或通过[从PDF中提取文本](https://ironpdf.com/java/examples/extract-image-from-pdf/)并以编程方式检查来确认确切的大小写。
### 如何替换PDF表单中的文本?
包含交互表单字段的PDF将其文本值存储在文档的内容流之外,正如在[PDF规范](https://opensource.adobe.com/dc-acrobat-sdk-docs/pdfstandards/PDF32000_2008.pdf)中定义。 `replaceText`方法在内容流上操作,不修改表单字段值。 要更新表单字段内的文本,请使用IronPDF的专用[表单创建和编辑API](https://ironpdf.com/java/how-to/create-forms/)。 在同一文档中混合使用这两种方法是安全的:表单字段更新和内容流替换不会相互干扰。
### 如何更新基于模板的工作流中的文本?
一种常见的模式是维护一个具有占位符令牌的PDF模板(例如`[INVOICE_DATE]`),并在运行时用实际值替换它们。 针对每个占位符调用一次`PageSelection.allPages()`以便替换覆盖令牌出现的每个位置。 对于从HTML生成的文档,此工作流同样适用于`renderHtmlAsPdf`,然后进行一系列替换调用。 将此与[PDF水印](https://ironpdf.com/java/how-to/custom-watermark/)或[背景和前景](https://ironpdf.com/java/how-to/background-foreground/)结合起来,以在最终输出中添加品牌或保密标记。
## Java中PDF文本替换的下一步是什么?
本指南涵盖了使用`PageSelection`工厂方法集。 同一个`replaceText`API无论文件是从HTML渲染、从磁盘加载,还是通过合并多个来源组装的都可用。
[开始IronPDF for Java的免费试用](#trial-license)并将上述代码示例应用于您自己的文档。 准备好部署到生产环境时,[查看许可选项](#licensing)。 许可证是按开发人员计算的,包括一年期的产品更新。
准备好看看IronPDF for Java还可以做些什么? 浏览完整的[IronPDF for Java 使用指南](https://ironpdf.com/java/),了解PDF生成、注释、[数字签名](https://ironpdf.com/java/examples/pdf-signatures/)、[压缩](https://ironpdf.com/java/examples/pdf-compression/)等教程。
Ask ChatGPT about this page
Ask Gemini about this page
Ask Perplexity about this page
IronPDF for Java通过replaceText方法为开发者提供了对现有PDF内容的直接控制。 无论您需要纠正生成报告中的拼写错误,还是在模板文档中替换版本号,或用客户特定的数据个性化合同,该方法接受页面选择、搜索字符串和替换字符串,并完成其余操作。本指南涵盖了单页替换、多页定位、每个可用的PageSelection选项以及模板驱动的工作流程的实际模式。
添加IronPDF依赖项,加载或渲染PDF,调用replaceText,并保存结果:
1 Install IronPDF with Maven Central Repository
> mvn install
<dependency>
<groupId>com.ironsoftware</groupId>
<artifactId>ironpdf</artifactId>
<version>2026.6.1</version>
</dependency>
2 复制并运行这段代码。
//: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" );
}
}
//: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");
}
}
Java
3 部署到您的生产环境中进行测试
通过免费试用 立即在您的项目中开始使用IronPDF
免费试用30天
最小工作流程(5 个步骤) 下载 Java 库以替换 PDF 中的文本 。加载现有PDF或从HTML渲染一个 调用pdf.replaceText(PageSelection, oldText, newText)在目标页面上替换文本 使用PageSelection方法来控制哪些页面将被修改 使用pdf.saveAs("output.pdf")保存并导出更新后的PDF
如何替换单个页面上的文本?
PageSelection、要查找的确切文本和替换字符串。 要定位第一页,请传递PageSelection.firstPage()。 在该页面上所有找到的搜索字符串实例会在一次调用中被替换。 如果无法在目标页上找到文本,该方法会抛出运行时异常。 下方的截图显示了在控制台中该异常的样子。
replaceText接受哪些参数?
方法签名为replaceText(PageSelection pageSelection, String oldText, String newText)。 匹配默认是区分大小写的:"NET6"被视为不同的字符串。 在调用该方法之前,验证渲染的PDF中的确切大小写。 您可以通过提取PDF的文本内容 来确认确切的文本。IronPDF Java依赖项发布在Maven Central 上,需要Java 8或更高版本。
1 Install IronPDF with Maven Central Repository
> mvn install
<dependency>
<groupId>com.ironsoftware</groupId>
<artifactId>ironpdf</artifactId>
<version>2026.6.1</version>
</dependency>
2 复制并运行这段代码。
//: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" );
}
}
//: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");
}
}
Java
3 部署到您的生产环境中进行测试
通过免费试用 立即在您的项目中开始使用IronPDF
免费试用30天
在应用程序启动时加载许可证密钥,而不是在每个独立操作之前加载。 这样可以避免在相同的JVM会话中处理多个文档时反复初始化的开销。
replaceText方法自然集成了IronPDF的HTML到PDF转换工作流 。 首先渲染HTML模板,然后应用文本替换以注入动态值。 这样可以保持您的HTML简单,并仍然生成个性化的输出。 对于从磁盘加载的文档,请将文件路径传递给renderHtmlAsPdf。
输出结果是什么样的?
我如何在多页中替换文本?
要定位特定页面而不仅仅是第一页,请传递一个零索引页码的列表给PageSelection.pageRange(List<Integer>)。 该方法在列表的每一页上替换搜索文本,并保持其他所有页面不变。 此模式适用于在已知页面上具有一致的页眉或页脚的文档,或批量生成的报告,其中版本字符串仅出现在某些页面上。
使用页面列表时修改了哪些页面?
在下面的示例中,从HTML创建一个三页的PDF。 替换在页面2(即第一页和第三页)上运行。 页面1(即第二页)保持原文不变。 页面索引始终从0开始,以便与Java的零基数组约定一致。
1 Install IronPDF with Maven Central Repository
> mvn install
<dependency>
<groupId>com.ironsoftware</groupId>
<artifactId>ironpdf</artifactId>
<version>2026.6.1</version>
</dependency>
2 复制并运行这段代码。
//: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" );
}
}
//: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");
}
}
Java
3 部署到您的生产环境中进行测试
通过免费试用 立即在您的项目中开始使用IronPDF
免费试用30天
IronPDF中的所有页面索引都遵循基于零的索引。 页面1是第二页,依此类推。
从HTML创建多页PDF时,请使用CSS page-break-after属性 来控制页面边界的位置。 在渲染之前设置正确的自定义纸张尺寸 和页面方向 ,以确保当文本替换运行时,内容位置符合您的预期。 保存后,通过打开PDF并确认只有目标页面发生了变化来验证输出。
输出结果是什么样的?
有哪些页面选择选项?
PageSelection类提供的静态工厂方法涵盖了每种常见的定位模式。 无需创建实例; 直接在类上调用方法。 所有索引都是基于零的。
哪些方法针对单页或多页?
何时应使用每种 PageSelection 方法?
allPages()是全局查找和替换的最简单选择:该方法可在一次调用中替换整个文档中目标文本的每个实例。 使用lastPage()快速编辑封面或尾页脚注,而不触及正文。 选择pageRange(int, int),当文本出现在如章节或部分这样的连续页面组上。 当目标页面是不连贯的时,使用pageRange(List<Integer>); 例如,当替换仅出现在页面1、3和7上的版本字符串时。
处理合并的PDF 或包含书签和大纲 的文档时,首先识别每个逻辑部分的页面范围,然后应用目标替换,以避免意外修改共享的页眉或页脚。 IronPDF for Java API参考 列出了所有PageSelection重载及完整参数文档。
将replaceText调用包装在一个try-catch块中。 当指定的搜索文本未在任何目标页面上找到时,该方法会抛出运行时异常。 验证步骤(提取文本并确认字符串存在)可防止在生产中出现意外失败。
如何一次性替换所有页面的文本?
PageSelection.allPages()在一次调用中执行文档范围内的替换,这是全局替换令牌的最有效方法。 下面的示例从磁盘加载PDF,并替换整个文档中占位符标记的每一个出现:
1 Install IronPDF with Maven Central Repository
> mvn install
<dependency>
<groupId>com.ironsoftware</groupId>
<artifactId>ironpdf</artifactId>
<version>2026.6.1</version>
</dependency>
2 复制并运行这段代码。
//: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" );
}
}
//: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");
}
}
Java
3 部署到您的生产环境中进行测试
通过免费试用 立即在您的项目中开始使用IronPDF
免费试用30天
此模式自然地与模板驱动的工作流程配对,其中相同的占位符出现在许多页面的页眉、页脚或正文文本中。 对于单页文档,firstPage()产生相同的结果。 当页面数可能会在运行时有所变化时,优选allPages()。
如何处理常见的文本替换场景?
Java应用程序中的文本替换包括几个超出简单搜索和替换的模式。 了解该方法在每种情况下的行为可以防止错误在生产中出现。
区分大小写的匹配如何影响结果?
replaceText执行精确、区分大小写的匹配。 字符串"version 1.0" 和"VERSION 1.0"被视为三种不同的值。 在对从磁盘加载的文档运行替换之前,通过查看原始来源或通过从PDF中提取文本 并以编程方式检查来确认确切的大小写。
如何替换PDF表单中的文本?
包含交互表单字段的PDF将其文本值存储在文档的内容流之外,正如在PDF规范 中定义。 replaceText方法在内容流上操作,不修改表单字段值。 要更新表单字段内的文本,请使用IronPDF的专用表单创建和编辑API 。 在同一文档中混合使用这两种方法是安全的:表单字段更新和内容流替换不会相互干扰。
如何更新基于模板的工作流中的文本?
一种常见的模式是维护一个具有占位符令牌的PDF模板(例如[INVOICE_DATE]),并在运行时用实际值替换它们。 针对每个占位符调用一次PageSelection.allPages()以便替换覆盖令牌出现的每个位置。 对于从HTML生成的文档,此工作流同样适用于renderHtmlAsPdf,然后进行一系列替换调用。 将此与PDF水印 或背景和前景 结合起来,以在最终输出中添加品牌或保密标记。
Java中PDF文本替换的下一步是什么?
本指南涵盖了使用PageSelection工厂方法集。 同一个replaceTextAPI无论文件是从HTML渲染、从磁盘加载,还是通过合并多个来源组装的都可用。
开始IronPDF for Java的免费试用 并将上述代码示例应用于您自己的文档。 准备好部署到生产环境时,查看许可选项 。 许可证是按开发人员计算的,包括一年期的产品更新。
准备好看看IronPDF for Java还可以做些什么? 浏览完整的IronPDF for Java 使用指南 ,了解PDF生成、注释、数字签名 、压缩 等教程。
常见问题解答 使用IronPDF的replaceText方法。 调用pdf.replaceText(PageSelection.firstPage(), "oldText", "newText")可替换指定页面上旧文本的所有实例。 IronPDF在保留原始格式的同时找到并替换每个出现的例子。
该方法接受三个参数:一个用于指定要修改哪些页面的PageSelection、一个用于查找的String和一个用于替换的String。 例如,pdf.replaceText(PageSelection.firstPage(), ".NET6", ".NET7")会替换第一页上的所有实例。
是的。 使用PageSelection.firstPage()为页面0、PageSelection.lastPage()为最后一页、PageSelection.singlePage(n)为任意页,按从零开始的索引,或PageSelection.pageRange()与不连续页面的整数列表一起使用。
当在目标页面找不到目标文本时,IronPDF会抛出运行时异常(Exception_RemoteException)。 将调用包裹在try-catch块中,并可选择先提取PDF文本以验证字符串是否存在,然后再调用replaceText。
是的。 replaceText方法执行精确的区分大小写匹配。 字符串"Version 1.0"、"version 1.0"和"VERSION 1.0"被视为三个不同的值。 在调用方法之前,请验证确切的大小写。
不会。 replaceText方法在PDF内容流上操作,不修改交互式表单字段值。 要更新表单字段,请使用IronPDF的专用表单编辑API,通过PdfDocument表单方法。
使用PageSelection.allPages()作为replaceText的第一个参数。 这样可以在一次调用中替换整个文档中所有页面的目标文本实例,这是模板驱动工作流中整个文档占位符的首选方法。
IronPDF's `replaceText` method operates on content streams and does not affect form field values. For form field modification, use IronPDF's form creation and editing API.
Maintain a PDF template with placeholders like `{{CUSTOMER_NAME}}`. Use `replaceText` with `PageSelection.allPages()` to substitute these placeholders with actual values at runtime.
Start by downloading a free trial of IronPDF for Java. Follow the documentation and code examples to replace text in PDFs. Consider licensing options when you're ready for production deployment.
技术作家
Curtis Chau 拥有卡尔顿大学的计算机科学学士学位,专注于前端开发,精通 Node.js、TypeScript、JavaScript 和 React。他热衷于打造直观且美观的用户界面,喜欢使用现代框架并创建结构良好、视觉吸引力强的手册。
...
阅读更多