protected Rectangle getCropRect (Node contNode) throws ParseException {
        logger.entering(getClass().getName(), "getCropRect", contNode);
        Rectangle cropRect = null;
        String strValue = getProcessingInstructionValue(contNode, "crop-rect");
        if (strValue != null) {
            String[] s = strValue.split(" ");
            if (s.length == 4) {
                int bottom = Integer.parseInt(s[0]);
                int left = Integer.parseInt(s[1]);
                int top = Integer.parseInt(s[2]);
                int right = Integer.parseInt(s[3]);
                logger.finer("bottom=" + bottom + ", left=" + left + ", top=" + top + ", right=" + right);
                cropRect = new Rectangle(left, top, right - left, bottom - top);
            } else {
                logger.warning("Invalid crop data found in processing instruction.");
            }            
        }
        logger.exiting(getClass().getName(), "getCropRect", cropRect);
        return cropRect;
    }