package org.jeecg.modules.ai.vo;
|
|
import com.itextpdf.text.Rectangle;
|
import com.itextpdf.text.pdf.parser.ImageRenderInfo;
|
import com.itextpdf.text.pdf.parser.TextExtractionStrategy;
|
import com.itextpdf.text.pdf.parser.TextRenderInfo;
|
import com.itextpdf.text.pdf.parser.Vector;
|
|
import java.util.List;
|
|
/**
|
* @author clown
|
* * @date 2024/7/23
|
* 记录所有位置+字体信息,这种方式获取坐标信息和字体信息方便一点
|
*
|
*/
|
public class MyTextExtractionStrategy implements TextExtractionStrategy {
|
private List<ItemPosition> positions;
|
private Integer page;
|
|
public MyTextExtractionStrategy() {}
|
|
public MyTextExtractionStrategy(List<ItemPosition> positions, Integer page) {
|
this.positions = positions;
|
this.page = page;
|
}
|
@Override
|
public void beginTextBlock() {
|
// TODO Auto-generated method stub
|
|
}
|
|
@Override
|
public void renderText(TextRenderInfo renderInfo) {
|
ItemPosition ItemPosition = new ItemPosition();
|
Vector bottomLeftPoint = renderInfo.getDescentLine().getStartPoint();
|
Vector topRightPoint = renderInfo.getAscentLine().getEndPoint();
|
//记录矩形坐标
|
Rectangle rectangle = new Rectangle(bottomLeftPoint.get(Vector.I1), bottomLeftPoint.get(Vector.I2),
|
topRightPoint.get(Vector.I1), topRightPoint.get(Vector.I2));
|
ItemPosition.setPage(page);
|
ItemPosition.setRectangle(rectangle);
|
ItemPosition.setText(renderInfo.getText());
|
positions.add(ItemPosition);
|
}
|
|
@Override
|
public void endTextBlock() {
|
// TODO Auto-generated method stub
|
|
}
|
|
@Override
|
public void renderImage(ImageRenderInfo renderInfo) {
|
// TODO Auto-generated method stub
|
|
}
|
|
@Override
|
public String getResultantText() {
|
// TODO Auto-generated method stub
|
return null;
|
}
|
}
|