以下内容介绍如何在Java后端程序中查找并高亮PDF文档中的跨行文本。本次测试环境如下:
- 源文档:PDF
- 编译工具:IntelliJ IDEA2018
- JDK:1.8.0
- PDF类库:free spire.Pdf.jar 4.3.0
如图1:
(图1)
Java程序代码
import com.spire.pdf.*;
import com.spire.pdf.general.find.PdfTextFind;
import com.spire.pdf.general.find.TextFindParameter;
import java.awt.*;
import java.util.EnumSet;
public class HighlightCrosslineText {
public static void main(String[] args) throws Exception {
//加载PDF源文档
PdfDocument pdf = new PdfDocument();
pdf.loadFromFile("test.pdf");
PdfTextFind[] result1;
for (Object pageObj : pdf.getPages()) {
PdfPageBase page =(PdfPageBase)pageObj;
// 查找跨行文本
result1 = page.findText("电子邮件", EnumSet.of(TextFindParameter.CrossLine)).getFinds();
for (PdfTextFind find : result1) {
//高亮文本
find.applyHighLight(Color.pink);//指定高亮颜色
find.getBounds();
}
}
PdfTextFind[] result2;
for (Object pageObj : pdf.getPages()) {
PdfPageBase page =(PdfPageBase)pageObj;
// 查找跨行文本
result2 = page.findText("心智模型中内在的隐喻", EnumSet.of(TextFindParameter.CrossLine)).getFinds();
for (PdfTextFind find : result2) {
//高亮文本
find.applyHighLight(Color.GREEN);//指定高亮颜色
find.getBounds();
}
}
//保存文档
pdf.saveToFile("output.pdf", FileFormat.PDF);
pdf.dispose();
}
}
高亮结果:
原创内容,如需转载,请务必注明出处!