private void initNextItem(boolean advance) {
        if (this.endOfPage) {
            nextBlock = null;
            return;
        }
        
        if (advance) {
            if (!iterator.next(Level.BLOCK)) {
                this.endOfPage = true;
                return;
            }
        }

        try {
            BoundingBox box = iterator.getBoundingBox(Level.BLOCK);
            if (box == null) {
                initNextItem(true);
            }
            
            nextBlock = new PageBlock(iterator.getBlockType(), iterator.getOrientation(), box);
        } catch (Exception te) {
            LOGGER.error("Could not initialize iterator.", te);
            this.nextBlock = null;
        }
    }