Как я могу получить изображения из файла PDF? - PullRequest
0 голосов
/ 03 июля 2018

Я положил некоторые изображения в файл PDF. А теперь я хочу получить эти изображения из PDF-файла, используя itext7. Как получить изображения из PDF?

1 Ответ

0 голосов
/ 06 июля 2018

Идея состоит в том, чтобы использовать 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; }

}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...