I put some images to a PDF file. And Now, I want to get this images from PDF file use itext7. How to get images from PDF?
Asked
Active
Viewed 1,509 times
1
-
1*"I put some images to a PDF file."* - how? Have you added them as file attachments? If yes, at document level or at page level? Or have you added them to some page content? Or some annotation content? – mkl Jul 03 '18 at 04:18
-
Check this link https://stackoverflow.com/questions/37809019/itext7-pdf-to-image – Gagan V Jul 03 '18 at 04:46
-
@GaganV That answer is specifically about using a pdf page as an image. Which does not seem to be what the user ultimately wants. – Joris Schellekens Jul 06 '18 at 11:41
1 Answers
4
The idea would be to use IEventListener
to process each page, and have the IEventListener
implementation do something whenever it encounters an image.
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
}
Of course, you would still need to write ImageExtractor to process the incoming page.
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; }
}

Joris Schellekens
- 8,483
- 2
- 23
- 54