本文介绍通过spire.pdf for java批量替换pdf中的指定文本内容。
import com.spire.pdf.*;
import com.spire.pdf.general.find.pdftextfind;
import com.spire.pdf.general.find.pdftextfindcollection;
import com.spire.pdf.graphics.pdfbrushes;
import com.spire.pdf.graphics.pdfrgbcolor;
import com.spire.pdf.graphics.pdfsolidbrush;
import com.spire.pdf.graphics.pdftruetypefont;
import java.awt.*;
import java.awt.geom.rectangle2d;
public class findandreplacetext {
public static void main(string[] args) {
//加载示例pdf文档
pdfdocument pdf = new pdfdocument();
pdf.loadfromfile("咖啡豆.pdf");
//遍历文档每一页
for (int i = 0; i < pdf.getpages().getcount(); i )
{
//获取所有页面
pdfpagebase page = pdf.getpages().get(i);
//查找指定文本
pdftextfindcollection textfindcollection;
textfindcollection = page.findtext("咖啡",false);
//创建画刷、字体
pdfsolidbrush brush1 = new pdfsolidbrush(new pdfrgbcolor(color.red));
pdftruetypefont font1= new pdftruetypefont(new font("宋体",font.plain,9),true);
//用新的文本字符替换原有文本
rectangle2d rec;
for(pdftextfind find: textfindcollection.getfinds())
{
rec = find.getbounds();
page.getcanvas().drawrectangle(pdfbrushes.getwhite(), rec);
page.getcanvas().drawstring("coffee", font1, brush1, rec);
}
}
//保存文档
pdf.savetofile("findandreplacetext.pdf");
pdf.close();
}
}
文本替换前后效果如图: