人们常常需要出于各种原因替换 PDF 文档中的文本。这可能是为了纠正错误或打字错误,更新过时的信息,为特定的受众个性化定制内容,或者为符合法律或监管变化要求。通过在 PDF 中替换文本,可以保持文档的完整性,并提高所呈现信息的整体质量和相关性。在本文中,你将学习如何使用 Spire.PDF for Java 在 PDF 文档中查找替换文本。
安装 Spire.PDF for Java
首先,您需要在 Java 程序中添加 Spire.Pdf.jar 文件作为依赖项。JAR 文件可以从此链接下载。 如果您使用 Maven,则可以将以下代码添加到项目的 pom.xml 文件中,从而轻松地在应用程序中导入 JAR 文件
<repositories>
    <repository>
        <id>com.e-iceblue</id>
        <name>e-iceblue</name>
        <url>https://repo.e-iceblue.cn/repository/maven-public/</url>
    </repository>
</repositories>
<dependencies>
    <dependency>
        <groupId>e-iceblue</groupId>
        <artifactId>spire.pdf</artifactId>
        <version>11.10.3</version>
    </dependency>
</dependencies>
替换特定 PDF 页面的文本
在 Spire.PDF for Java 中,PdfTextReplacer 类用于 PDF 文档中的文本替换操作。它的主要方法之一 replaceAllText(),支持将 PDF 页面上指定文本替换为新的文本。具体步骤如下:
- 创建一个 PdfDocument 对象。
- 加载指定路径的 PDF 文件。
- 从文档中获取特定的页面。
- 创建一个 PdfTextReplaceOptions 对象,并使用对象的 setReplaceType() 方法指定替换选项。
- 创建一个 PdfTextReplacer 对象,并使用它的 setOptions() 方法应用替换选项。
- 使用 PdfTextReplacer.replaceAllText() 方法将页面中所有目标文本替换为新文本。
- 将文档保存到不同的 PDF 文件中。
- Java
import com.spire.pdf.PdfDocument;
import com.spire.pdf.PdfPageBase;
import com.spire.pdf.texts.PdfTextReplaceOptions;
import com.spire.pdf.texts.PdfTextReplacer;
import com.spire.pdf.texts.ReplaceActionType;
import java.util.EnumSet;
public class ReplaceTextInPage
{
    public static void main(String[] args)
    {
        // 创建一个PdfDocument对象
        PdfDocument doc = new PdfDocument();
        // 加载一个PDF文件
        doc.loadFromFile("in.pdf");
        // 创建一个PdfTextReplaceOptions对象
        PdfTextReplaceOptions textReplaceOptions = new PdfTextReplaceOptions();
        // 指定文本替换的选项
        textReplaceOptions.setReplaceType(EnumSet.of(ReplaceActionType.IgnoreCase));
        textReplaceOptions.setReplaceType(EnumSet.of(ReplaceActionType.WholeWord));
        // 获取特定的页面
        PdfPageBase page = doc.getPages().get(0);
        // 根据页面创建一个PdfTextReplacer对象
        PdfTextReplacer textReplacer = new PdfTextReplacer(page);
        // 设置替换选项
        textReplacer.setOptions(textReplaceOptions);
        // 将所有目标文本实例替换为新文本
        textReplacer.replaceAllText("荷塘", "池塘");
        // 将文档保存到不同的PDF文件
        doc.saveToFile("out.pdf");
        // 释放资源
        doc.dispose();
    }
}替换整个 PDF 文档匹配的文本
上面介绍了如何在单页中替换文本。要在整个 PDF 文档中将所有特定文本替换为新文本,只需遍历文档的每一页,具体实现如下:
- 创建一个 PdfDocument 对象。
- 加载指定路径的 PDF 文件。
- 创建一个 PdfTextReplaceOptions 对象,并使用对象的 setReplaceType() 方法指定替换选项。
- 遍历文档中的所有页面,基于页面创建一个 PdfTextReplacer 对象,并使用 setOptions() 方法应用替换选项。
- 使用 PdfTextReplacer.replaceAllText() 方法将所有目标文本替换为新文本。
- 将文档保存到不同的 PDF 文件中。
- Java
import com.spire.pdf.PdfDocument;
import com.spire.pdf.PdfPageBase;
import com.spire.pdf.texts.PdfTextReplaceOptions;
import com.spire.pdf.texts.PdfTextReplacer;
import com.spire.pdf.texts.ReplaceActionType;
import java.util.EnumSet;
public class ReplaceTextInDocument 
{
     public static void main(String[] args) 
     {
    // 创建一个PdfDocument对象
    PdfDocument doc = new PdfDocument();
    // 加载一个PDF文件
    doc.loadFromFile("in.pdf");
    // 创建一个PdfTextReplaceOptions对象
    PdfTextReplaceOptions textReplaceOptions = new PdfTextReplaceOptions();
    // 指定文本替换的选项
    textReplaceOptions.setReplaceType(EnumSet.of(ReplaceActionType.IgnoreCase));
    textReplaceOptions.setReplaceType(EnumSet.of(ReplaceActionType.WholeWord));
    //遍历PDF文档所有页面
    for (int i = 0; i < doc.getPages().getCount(); i++)
        {
            PdfPageBase page = doc.getPages().get(i);
      // 根据页面创建一个PdfTextReplacer对象
      PdfTextReplacer textReplacer = new PdfTextReplacer(page);
      // 设置替换选项
      textReplacer.setOptions(textReplaceOptions);
      // 将所有目标文本实例替换为新文本
      textReplacer.replaceAllText("荷塘", "池塘");
        }
    // 将文档保存到不同的PDF文件
    doc.saveToFile("out.pdf");
    // 释放资源
    doc.dispose();
    }
}
替换第一个匹配的文本
在 Java 中替换 PDF 第一个匹配的目标文本,使用 PdfTextReplacer 类的 replaceText() 方法。具体参考以下步骤:
- 创建一个 PdfDocument 对象。
- 加载指定路径的 PDF 文件。
- 从文档中获取特定页面,创建一个 PdfTextReplaceOptions 对象,并使用对象的 replaceType() 方法指定替换选项。
- 创建一个 PdfTextReplacer 对象,并使用 setOptions() 方法应用替换选项。
- 使用 PdfTextReplacer.replaceText() 方法将页面中第一个目标文本替换为新文本。
- 将文档保存到另一个 PDF 文件中。
- Java
import com.spire.pdf.PdfDocument;
import com.spire.pdf.PdfPageBase;
import com.spire.pdf.texts.PdfTextReplaceOptions;
import com.spire.pdf.texts.PdfTextReplacer;
import com.spire.pdf.texts.ReplaceActionType;
import java.util.EnumSet;
public class ReplaceFirstInstance {
    public static void main(String[] args)
    {
    // 创建一个PdfDocument对象
    PdfDocument doc = new PdfDocument();
    // 加载一个PDF文件
    doc.loadFromFile("in.pdf");
    // 创建一个PdfTextReplaceOptions对象
    PdfTextReplaceOptions textReplaceOptions = new PdfTextReplaceOptions();
    // 指定文本替换的选项
    textReplaceOptions.setReplaceType(EnumSet.of(ReplaceActionType.IgnoreCase));
        textReplaceOptions.setReplaceType(EnumSet.of(ReplaceActionType.WholeWord));
    // 获取特定页面
    PdfPageBase page = doc.getPages().get(0);
    // 根据页面创建一个PdfTextReplacer对象
    PdfTextReplacer textReplacer = new PdfTextReplacer(page);
    // 设置替换选项
    textReplacer.setOptions(textReplaceOptions);
        // 将目标文本的第一个实例替换为新文本
    textReplacer.replaceText("荷塘", "池塘");
    // 将文档保存到不同的PDF文件
    doc.saveToFile("out.pdf");
    // 释放资源
    doc.dispose();
    }
}
基于正则表达式替换文本
正则表达式是一种非常强大和灵活的模式,通常用于匹配文本。在 Spire.PDF for Java 中,同样可以利用正则表达式在 PDF 文档页面中匹配特定文本并替换为新文本,步骤如下:
- 创建一个 PdfDocument 对象。
- 加载指定路径的 PDF 文件。
- 从文档中获取特定页面,创建一个 PdfTextReplaceOptions 对象。 使用 PdfTextReplaceOptions.setReplaceType() 方法将替换类型指定为 Regex。
- 创建一个 PdfTextReplacer 对象,并使用 setOptions() 方法应用替换选项。
- 使用 PdfTextReplacer.replaceAllText() 方法指定正则表达式匹配匹配目标文本并替换为新文本。
- 将文档保存到不同的 PDF 文件中。
- Java
import com.spire.pdf.PdfDocument;
import com.spire.pdf.PdfPageBase;
import com.spire.pdf.texts.PdfTextReplaceOptions;
import com.spire.pdf.texts.PdfTextReplacer;
import com.spire.pdf.texts.ReplaceActionType;
import java.util.EnumSet;
public class ReplaceBasedOnRegularExpression {
    public static void main(String[] args) {
    // 创建一个PdfDocument对象
    PdfDocument doc = new PdfDocument();
    // 加载一个PDF文件
    doc.loadFromFile("in.pdf");
    // 创建一个PdfTextReplaceOptions对象
    PdfTextReplaceOptions textReplaceOptions = new PdfTextReplaceOptions();
        // 将替换类型设置为Regex
        textReplaceOptions.setReplaceType(EnumSet.of(ReplaceActionType.Regex));
    // 获取特定页面
    PdfPageBase page = doc.getPages().get(0);
    // 根据页面创建一个PdfTextReplacer对象
    PdfTextReplacer textReplacer = new PdfTextReplacer(page);
    // 设置替换选项
    textReplacer.setOptions(textReplaceOptions);
    // 指定正则表达式
    String regularExpression = "荷.月";
    // 将所有匹配正则表达式的目标文本替换为新文本
    textReplacer.replaceAllText(regularExpression, "池塘花");
    // 将文档保存到不同的PDF文件
    doc.saveToFile("out.pdf");
    // 释放资源
    doc.dispose();
    }
}
申请临时 License
如果您希望删除结果文档中的评估消息,或者摆脱功能限制,请该Email地址已收到反垃圾邮件插件保护。要显示它您需要在浏览器中启用JavaScript。获取有效期 30 天的临时许可证。
 



 
					



