这个想法是用来IEventListener处理每个页面,并让IEventListener实现在遇到图像时执行某些操作。
PdfDocument pdfDocument = new PdfDocument(new PdfReader(inputFle));
ImageExtractor imgs = new ImageExtractor();
PdfCanvasProcessor pdfCanvasProcessor = new PdfCanvasProcessor(imgs);
pdfCanvasProcessor.processPageContent(pdfDocument.getPage(1));
pdfDocument.close();
for(BufferedImage bi : imgs.getImages()){
// TODO : enter your image handling code here
}
Run Code Online (Sandbox Code Playgroud)
当然,您仍然需要编写 ImageExtractor 来处理传入的页面。
class ImageExtractor implements IEventListener{
private List<BufferedImage> imgs = new ArrayList<>();
@Override
public void eventOccurred(IEventData data, EventType type) {
if(type != EventType.RENDER_IMAGE)
return;
ImageRenderInfo img = (ImageRenderInfo) data;
try {
imgs.add(img.getImage().getBufferedImage());
} catch (IOException e) {}
}
public List<BufferedImage> getImages(){ return imgs; }
@Override
public Set<EventType> getSupportedEvents() { return null; }
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1659 次 |
| 最近记录: |