Revision: 72669
                            
                                                            
                                    
                                        
Initial Code
                                    
                                    
                                                            
                                    
                                        
Initial URL
                                    
                                    
                                
                                                            
                                    
                                        
Initial Description
                                    
                                    
                                                            
                                    
                                        
Initial Title
                                    
                                    
                                                            
                                    
                                        
Initial Tags
                                    
                                    
                                
                                                            
                                    
                                        
Initial Language
                                    
                                    
                                                    
                        at October 13, 2017 01:30 by markt22
                            
                            Initial Code
/**
 * @param args the command line arguments
 * @throws java.io.IOException
 */
public static void main(String[] args) throws IOException {
    PDDocument document = PDDocument.load(new File(""));
    int numImages = 0;
    for (int i = 0; i < document.getNumberOfPages(); i++)
    {
        PDPage page = document.getPage(i);
        CountImages countImages = new CountImages(page);
        countImages.processPage(page);
        numImages += countImages.numImages;
    }
    System.out.println(numImages);
}
static class CountImages extends PDFGraphicsStreamEngine {
    public int numImages = 0;
    private final Set<COSStream> duplicates = new HashSet<>();
    protected CountImages(PDPage page) throws IOException
    {
        super(page);
    }
    @Override
    public void appendRectangle(Point2D pd, Point2D pd1, Point2D pd2, Point2D pd3) throws IOException {
    }
    @Override
    public void drawImage(PDImage pdImage) throws IOException {
        if (pdImage instanceof PDImageXObject) {
            PDImageXObject xobject = (PDImageXObject)pdImage;
            if (duplicates.contains(xobject.getCOSObject()) == false) {
                numImages++;
                duplicates.add(xobject.getCOSObject());
            }
        } else {
            numImages++; //means its an inline image
        }
    }
    @Override
    public void clip(int i) throws IOException {
    }
    @Override
    public void moveTo(float f, float f1) throws IOException {
    }
    @Override
    public void lineTo(float f, float f1) throws IOException {
    }
    @Override
    public void curveTo(float f, float f1, float f2, float f3, float f4, float f5) throws IOException {
    }
    @Override
    public Point2D getCurrentPoint() throws IOException {
        return new Point2D.Float(0, 0);
    }
    @Override
    public void closePath() throws IOException {
    }
    @Override
    public void endPath() throws IOException {
    }
    @Override
    public void strokePath() throws IOException {
    }
    @Override
    public void fillPath(int i) throws IOException {
    }
    @Override
    public void fillAndStrokePath(int i) throws IOException {
    }
    @Override
    public void shadingFill(COSName cosn) throws IOException {
    }
}
                                Initial URL
Initial Description
Opens a PDF document and counts the number of images used on all pages.
Initial Title
PDFBox: Counting the number of images in a document
Initial Tags
Initial Language
Java