如何从PDF文件获取图像?

时间:2018-07-03 01:58:00

标签: itext7

我将一些图像放入PDF文件。现在,我想使用itext7从PDF文件中获取此图像。如何从PDF获取图像?

1 个答案:

答案 0 :(得分:3)

想法是使用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 
}

当然,您仍然需要编写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; }

}