java确定pdf中关键字的坐标
最近需要定位pdf中关键字的坐标,用来进行电子签章。折腾了好久,找出了一个方法
import com.itextpdf.awt.geom.Rectangle2D.Float;
import com.itextpdf.text.pdf.PdfDictionary;
import com.itextpdf.text.pdf.PdfName;
import com.itextpdf.text.pdf.PdfReader;
import com.itextpdf.text.pdf.parser.*;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
/**
*
*标题:
*
*@Author
@create 2019/12/27 17:53
/
public class pdfTest {
public static void main(String[] args) throws IOException {
//1.给定文件
File pdfFile = new File(“D://110212_005428.pdf”);
//2.定义一个byte数组,长度为文件的长度
byte[] pdfData = new byte[(int) pdfFile.length()];
//3.IO流读取文件内容到byte数组
FileInputStream inputStream = null;
try {
inputStream = new FileInputStream(pdfFile);
inputStream.read(pdfData);
} catch (IOException e) {
throw e;
} finally {
if (inputStream != null) {
try {
inputStream.close();
} catch (IOException e) {
}
}
}
//4.指定关键字
String keyword = “XXX”;
//5.调用方法,给定关键字和文件
List<float[]> positions = findKeywordPostions(pdfData, keyword);
//6.返回值类型是 List<float[]> 每个list元素代表一个匹配的位置,分别为 float[0]所在页码 float[1]所在x轴 float[2]所在y轴
System.out.println(“total:” + positions.size());
if (positions != null && positions.size() > 0) {
for (float[] p